求教如何用matlab拟合出一个复杂反应体系的动力学参数

% t x1 x2 x3 x4 x5 x6 x70 0.026667 0 0 0 0 0 01 0.02112 0.003787 0.00016 0.000894 0.000844 8.33E-05 0.0001742 0.0172 0.006867 0.000347 0.001833 0.001822 0.000229167 0.0013 0.01312 0.00824 0.000493 0.002539 0.003156 0.000604167 0.0020434 0.011853 0.00836 0.000627 0.002706 0.004178 0.000875 0.0029135 0.01092 0.007853 0.000653 0.002583 0.005222 0.000979167 0.0037396 0.009573 0.007347 0.0006 0.002328 0.0058 0.001208333 0.0042617 0.008907 0.006507 0.000507 0.001994 0.006111 0.001333333 0.0045658 0.006667 0.0054 0.000413 0.001689 0.007289 0.001833333 0.0050879 0.005827 0.004747 0.000347 0.001461 0.008289 0.002145833 0.00552210 0.004253 0.00336 0.000293 0.001139 0.009822 0.002729167 0.00595711 0.00304 0.00236 0.000253 0.000839 0.010644 0.003041667 0.006261

复杂反应体系的动力学方程参数实际上是反常微分方程组系数拟合问题。可以按下列步骤进行:

1、根据动力学方程,定义关于微分方程组的自定义函数。

2、构造其数据误差目标函数为最小,即

    min F(ki)=Σ[S(ti)-Si]²

3、然后最小二乘法求出系数ki

4、ode45函数求出x1,x2,x3,。。。拟合值

5、计算实验值与拟合值的相关系数R²是否接近于1

通过编程计算,得到如下结果:

k1=0.17701;k2=0.013736;k3=0.013395;k4=0.078272;k5=0.0098657;k6=0.15358;k7=0.45656; k8=0.00072802;k9=0.076499;k10=0.27148;k11=0.026889;k12=0.010795;k13=0.27413; k14=0.055203;k_1=0.16205;


追问

谢谢,大神的鼎力相助。

温馨提示:答案为网友推荐,仅供参考
相似回答