python来拟合Langmuir非线性方程

python来拟合Langmuir非线性方程``

简介

以前都是用origin来进行拟合,但是参数初值需要猜测,有时候不一定能够得到正确结果。后来用过MATLAB的工具箱,可以拟合,但电脑要安装MATLAB还是占挺大空间的。花了一下午了解了一下用Python来拟合已有的函数,感觉还不错,分享出来给大家。初学Python,大神们多多包涵。

代码

import pandas as pd

import numpy as np

import matplotlib.pyplot as plt

from scipy.optimize import curve_fit



df1 = pd.read_excel('F:/langmuir.xls',header=None,usecols="A") #导入数据,A列为x轴备用

df2 = pd.read_excel('F:/langmuir.xls',header=None,usecols="B") #导入数据,B列为y轴备用

Ce0 = np.array(df1) #dataframe转数组,此时为单列数组,需要转置为单行

Ce = Ce0[:,0]  #转置

print(Ce)

qe0 = np.array(df2) #dataframe转数组,此时为单列数组,需要转置为单行

qe = qe0[:,0] #转置

print(qe)



# 这里的函数可以自定义任意形式。

def func(Ce, qm, Ka):

     return qm*Ka*Ce/(1+Ka*Ce)



# popt返回的是给定模型的最优参数。我们可以使用pcov的值检测拟合的质量,其对角线元素值代表着每个参数的方差。

param_bounds=([0,0],[np.inf,np.inf]) #参数上下限,第一个方括号为所有参数下限,第二个为所有参数上限

popt, pcov = curve_fit(func, Ce, qe, bounds=param_bounds) #拟合函数

qm = popt[0] 

Ka = popt[1]

qe_pre = func(Ce,qm,Ka) #拟合y值

plot1 = plt.plot(Ce, qe, 's',label='original values')

plot2 = plt.plot(Ce, qe_pre, 'r',label='polyfit values')

plt.xlabel('Ce')

plt.ylabel('qe')

plt.legend(loc=4) #右下角画图例



SSE = ((qe_pre-qe)**2).sum()



chi_square = ((qe-qe_pre)**2/qe_pre).sum()





#计算R平方

from sklearn.metrics import r2_score

r2 = r2_score(qe, qe_pre)

print('qm=',qm)

print('Ka=',Ka)

print('拟合R方为:',r2)

print('SSE =',SSE)

print('chi_square =',chi_square)

本文首发哔哩哔哩
https://www.bilibili.com/read/cv8512063

在这里插入图片描述
最终运行结果

  • 3
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
### 回答1: Langmuir模型是描述吸附现象的经典理论模型之一,它是由Irving Langmuir在1916年提出的。该模型假设吸附在表面上的分子是单层分子,吸附分子之间不作用,吸附过程是可逆的。 Langmuir模型的基本假设是吸附分子之间的作用力很小,因此可以将单个分子吸附视为独立事件。在此基础上,Langmuir模型假设吸附分子与表面上的空位之间存在一种吸附平衡,即吸附分子与表面上的空位之间的吸附和解吸速率相等。这种吸附平衡可以用下列方程表示: θ = Kp/(1 + Kp) 其中,θ为表面覆盖度,即表面上吸附分子的分数;Kp为Langmuir常数,表示吸附分子与表面之间的吸附平衡常数。Kp越大,表明吸附分子与表面之间的相互作用越强,表面吸附的分子数量也就越多。 Langmuir模型的优点是简单、易于理解和应用,但它的局限性也很明显。首先,该模型假设吸附分子之间不作用,忽略了多层分子吸附的可能性。其次,Langmuir模型只适用于理想吸附情况下的描述,而实际吸附往往受到多种因素的影响,如表面缺陷、温度、压力等。因此,在实际应用中,需要根据具体情况选择适当的吸附模型。 ### 回答2: Langmuir模型是一种用于描述气体吸附在固体表面上的模型。它是由美国化学家Irving Langmuir于1918年提出的。这个模型基于以下几个假设: 首先,假设气体分子吸附在固体表面上时是以单层的形式存在的,即一个固体表面只能同时吸附一层气体分子。这一层吸附的分子会通过静电相互作用和范德华力与固体表面产生相互作用。 其次,根据Langmuir模型,吸附速率正比于吸附空位的分数和气体分子在这些空位上的概率。一旦所有的空位都被占满,吸附过程就停止,形成一个平衡状态。 Langmuir模型可以用一个公式来表示,即Langmuir方程: θ = (Kp * P) / (1 + Kp * P) 其中,θ表示吸附覆盖度,即吸附层的面积与固体表面总面积的比值。Kp是一个吸附常数,表示吸附分子与表面之间的相互作用强度。P是气体的压力。 Langmuir模型的应用广泛,可以用来研究气体吸附的热力学和动力学性质,以及估计吸附物质在固体上的表面积和孔隙度。此外,该模型还常用于催化剂的设计和优化,有助于理解气体吸附的机制,并提高吸附材料的性能。 总之,Langmuir模型通过适当的假设和数学描述,提供了一种简单而有效的方法来解释气体在固体表面上的吸附行为,并在科学研究和工程应用中发挥着重要的作用。 ### 回答3: Langmuir模型是一种用于描述气体吸附在表面上的物理模型。它基于以下原理:气体分子在与固体表面发生相互作用后,可以被吸附在表面上形成吸附层。吸附分子与表面之间存在一定的键合力,使得分子在表面上停留。 Langmuir模型以单分子层为基础,假设吸附分子在表面上的位置是固定的,并且吸附只发生在表面上的特定位置,这些位置称为吸附位。此外,模型还假设吸附分子之间没有相互作用。 根据Langmuir模型,吸附的速率受到两个因素的影响:吸附分子与表面的碰撞概率和吸附分子离开表面的脱附速率。吸附速率与表面上的活性位点数和吸附分子的浓度有关。 Langmuir模型可以用Langmuir吸附等温方程来描述,该方程表示吸附的平衡。该方程可以用来计算平衡吸附量和表征吸附系统的吸附性能。 Langmuir模型的应用非常广泛,如在环境科学中用于研究气体吸附到大气颗粒上的过程、在表面科学中用于研究吸附反应、在催化领域中用于优化催化剂的设计等。它对于理解和描述吸附现象提供了一种简洁而有力的数学模型,并为实际应用提供了便捷的计算方法。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值