python拟合NRTL方程
时间: 2023-06-29 07:15:07 浏览: 65
在Python中,可以使用Scipy库中的optimize.curve_fit()函数来拟合NRTL方程。以下是一个简单的例子:
```python
import numpy as np
from scipy.optimize import curve_fit
# NRTL方程
def nrtl(x, alpha, A, B, C, D):
tau = np.zeros((len(x), len(x)))
G = np.zeros(len(x))
for i in range(len(x)):
for j in range(len(x)):
tau[i,j] = A[i,j] + B[i,j] / x[j] + C[i,j] * x[j] + D[i,j] * x[j]**2
G[i] += x[j] * alpha[j] * tau[j,i] / np.sum(x * alpha * tau[:,i])
return G
# 实验数据
x = np.array([0.2, 0.3, 0.5, 0.7, 0.8])
y = np.array([0.35, 0.38, 0.44, 0.48, 0.50])
# 初始参数值
alpha = np.array([0.1, 0.2, 0.3, 0.4, 0.5])
A = np.array([[0, 0.2, 0.3, 0.4, 0.5],
[0.2, 0, 0.1, 0.2, 0.3],
[0.3, 0.1, 0, 0.1, 0.2],
[0.4, 0.2, 0.1, 0, 0.1],
[0.5, 0.3, 0.2, 0.1, 0]])
B = np.array([[0, 0.1, 0.2, 0.3, 0.4],
[0.1, 0, 0.1, 0.2, 0.3],
[0.2, 0.1, 0, 0.1, 0.2],
[0.3, 0.2, 0.1, 0, 0.1],
[0.4, 0.3, 0.2, 0.1, 0]])
C = np.array([[0, -0.1, -0.2, -0.3, -0.4],
[-0.1, 0, -0.1, -0.2, -0.3],
[-0.2, -0.1, 0, -0.1, -0.2],
[-0.3, -0.2, -0.1, 0, -0.1],
[-0.4, -0.3, -0.2, -0.1, 0]])
D = np.array([[0, 0.01, 0.02, 0.03, 0.04],
[0.01, 0, 0.01, 0.02, 0.03],
[0.02, 0.01, 0, 0.01, 0.02],
[0.03, 0.02, 0.01, 0, 0.01],
[0.04, 0.03, 0.02, 0.01, 0]])
# 拟合
popt, pcov = curve_fit(nrtl, x, y, p0=(alpha, A, B, C, D))
# 输出结果
print('alpha:', popt[0])
print('A:', popt[1])
print('B:', popt[2])
print('C:', popt[3])
print('D:', popt[4])
```
在这个例子中,我们通过optimize.curve_fit()函数来拟合NRTL方程。其中,nrtl()函数是我们自己定义的NRTL方程,x是摩尔分数,y是活度系数,alpha、A、B、C、D是NRTL方程中的参数。我们首先给出了实验数据,然后给出了初始的参数值,最后使用curve_fit()函数来拟合NRTL方程。拟合之后,我们可以得到最优的参数值。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)