目前在做反应动力学拟合,可是实验室无人会,只能自己摸索,目前知道了动力学方程和一些数据,想拟合出参数,求各位大佬帮忙matlab或1stop拟合一下,有搞动力学的同学可以一起讨论一下,真是太难了,麻烦各位了!!!下面是我初步写的1stopt程序,结果跑出来的数据根本不能用,想请教下大家拟合度低究竟是模型参数太多的原因还是算法有问题,请大神帮帮忙!!
Parameters k(1:10),k1=[0,],k2=[0,],k3=[0,],k4=[0,],k5=[0,],k6=[0,],k7=[0,],k8=[0,],k9=[0,],k10=[0,];
variables t,c(1:5);
ODEFunction
c1'=k1*c2*(c2+c3+c4)/(1+k2*(c2*(c2+c3+c4))^0.5+k3*c2+k4*c3+k5*c4+k6*c5)^2+k7*(c2*(c2+c3+c3))^0.5/(1+k2*(c2*(c2+c3+c3))^0.5+k3*c2+k4*c3+k5*c4+k6*c5)/(1+k8)^2;
c2'=k1*c2*(c2+c3+c4)/(1+k2*(c2*(c2+c3+c3))^0.5+k3*c2+k4*c3+k5*c4+k6*c5)^2-k9*c2/(1+k2*(c2*(c2+c3+c3))^0.5+k3*c2+k4*c3+k5*c4+k6*c5)/(1+k8)^2;
c3'=(k9*c2-k10*c3)/(1+k2*(c2*(c2+c3+c3))^0.5+k3*c2+k4*c3+k5*c4+k6*c5)/(1+k8)^2;
c4'=k10*c3/(1+k2*(c2*(c2+c3+c3))^0.5+k3*c2+k4*c3+k5*c4+k6*c5)/(1+k8)^2;
c5'=k7*(c2*(c2+c3+c3))^0.5/(1+k2*(c2*(c2+c3+c3))^0.5+k3*c2+k4*c3+k5*c4+k6*c5)/(1+k8)^2;
data;//
//t c1 c2 c3 c4 c5
10 5.0249 0.0000 0.9794 0.0000 0.0000
20 4.8894 0.0000 1.3043 0.0000 0.0000
30 4.7004 0.0000 1.5203 0.0000 0.0000
45 4.4588 0.0000 1.7503 0.0000 0.0000
60 4.3103 0.0000 1.7336 0.0000 0.0000
75 4.2412 0.0000 1.7511 0.0000 0.0000
90 4.0658 0.0000 1.7148 0.0000 0.0000
105 3.9587 0.0000 1.7531 0.0000 0.0000
125 3.7984 0.1646 1.7507 0.1039 0.0000
140 3.5823 0.2002 1.6003 0.1406 0.0000
160 3.2773 0.2529 1.4905 0.2211 0.0000
175 2.9786 0.3404 1.4087 0.3433 0.0000
190 2.6945 0.4994 1.3894 0.6631 0.0000
210 2.3301 0.7709 0.9335 0.8718 0.0000
230 2.0823 0.8962 0.7938 1.1992 0.0000
250 1.3216 1.0824 0.3107 1.3042 0.0448
280 0.5662 1.7420 0.1108 1.4905 0.1773
300 0.2618 1.8755 0.0000 1.4112 0.3343
320 0.0000 2.1430 0.0000 0.7001 0.6788
340 0.0000 2.1758 0.0000 0.6303 1.3191 |
|