24小时热门版块排行榜    

查看: 945  |  回复: 1
【悬赏金币】回答本帖问题,作者臣本布衣将赠送您 150 个金币

臣本布衣

新虫 (初入文坛)

[求助] 求助matlab进行反应动力学拟合,大神帮忙看看代码哪里有问题 已有1人参与

动力学方程如下:

(dC_A)/dt=-(k_1+k_2)*K_A*C_A/(1+K_A*C_A+K_B*C_B+K_C*C_C+K_D*C_D+K_E*C_E)
(dC_B)/dt=k_1*K_A*C_A/(1+K_A*C_A+K_B*C_B+K_C*C_C+K_D*C_D+K_E*C_E)
(dC_C)/dt=(k_2*K_A*C_A-(k_3+k_4)*K_C*C_C+k_5*K_E*C_E)/(1+K_A*C_A+K_B*C_B+K_C*C_C+K_D*C_D+K_E*C_E)
(dC_D)/dt=k_3*K_C*C_C/(1+K_A*C_A+K_B*C_B+K_C*C_C+K_D*C_D+K_E*C_E)
(dC_E)/dt=(k_4*K_C*C_C-k_5*K_E*C_E)/(1+K_A*C_A+K_B*C_B+K_C*C_C+K_D*C_D+K_E*C_E)

用matlab语言的ode45解算子求上述微分方程组,以各物质浓度计算值和实验值的残差平方和为目标函数,用lsqnonline解算子求解上述最优化问题。
代码如下:

function piadatfit
clc; clear all; close all;
%己烯异构化反应动力学数据拟合%输入实验数据
tspan=[0 30 36 45 60 90 180];
cexp=[0.84691 0 0 0 0;
    0.65164 0 0.10305 0.02491 0.00485;
     0.65409 0 0.11407 0.02995 0.00681;
     0.60309 0 0.14508 0.03510 0.00949;
      0.08397 0 0.65655 0.04303 0.01346;
      0.05952 0.00752 0.61224 0.05047 0.01814;
      0 0.05346 0.53471 0.06414 0.02753];
c0=[0.84691 0 0 0 0];
%输入参数初值及范围
k0=[0.1 2 0.05 0.05 0.05 0.3 0.3 0.3 0.1 0.1];
lb=[0 0 0 0 0 0 0 0 0 0];
ub=[10 10 10 10 10 10 10 10 10 10];
%非线性最小二乘拟合
options.algorithm = 'levenberg-marquardt';
[k,resnorm,residual,exitflag,output,lambda,jacobian]=lsqnonlin(@objpia,k0,lb,ub,options,cexp,tspan,c0)
%拟合结果标绘
[tplot,cplot]=ode45(@piakin,tspan,c0,[],k);
plot(tspan,cexp(:,1),'bx',tplot,cplot(:,1),'b-',tspan,cexp(:,2),'ko',tplot,cplot(:,2),'k-',tspan,cexp(:,3),'g*',tplot,cplot(:,3),'g-',tspan,cexp(:,4),'rs',tplot,cplot(:,4),'r-',tspan,cexp(:,5),'cd',tplot,cplot(:,5),'c-')
xlabel('time(min)')
ylabel('concentration(mol/l)')
legend('caexp','cacal','cbexp','cbcal','ccexp','cccal','cdexp','cdcal','ceexp','cecal')

function f=objpia(k0,cexp,tspan,c0)
%最小二乘拟合目标函数
[t,c]=ode45(@piakin,tspan,c0,[],k0);
f1=c(:,1)-cexp(:,1);
f2=c(:,2)-cexp(:,2);
f=[f1;f2];

function dcdt=piakin(t,c,k)
%反应动力学方程
r1=k(1)*k(6)*c(1)/(1+k(6)*c(1)+k(7)*c(2)+k(8)*c(3)+k(9)*c(4)+k(10)*c(5));
r2=k(2)*k(6)*c(1)/(1+k(6)*c(1)+k(7)*c(2)+k(8)*c(3)+k(9)*c(4)+k(10)*c(5));
r3=k(3)*k(8)*c(3)/(1+k(6)*c(1)+k(7)*c(2)+k(8)*c(3)+k(9)*c(4)+k(10)*c(5));
r4=k(4)*k(8)*c(3)/(1+k(6)*c(1)+k(7)*c(2)+k(8)*c(3)+k(9)*c(4)+k(10)*c(5));
r5=k(5)*k(10)*c(5)/(1+k(6)*c(1)+k(7)*c(2)+k(8)*c(3)+k(9)*c(4)+k(10)*c(5));
dcdt(1)=-r1-r2;
dcdt(2)=r1;
dcdt(3)=r2-r3-r4+r5;
dcdt(4)=r3;
dcdt(5)=r4-r5;
dcdt=dcdt';

matlab小白,程序是模仿教材写的,应该存在不少问题,请大神帮忙修改一下!
回复此楼
爱拼才会赢
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

dingd

铁杆木虫 (职业作家)

【答案】应助回帖

感谢参与,应助指数 +1
微分方程拟合问题,1stOpt试试,更简单、方便:

Sum Squared Error (SSE): 0.257211769123463
Root of Mean Square Error (RMSE): 0.0925944147205909
Correlation Coef. (R): 0.867645804757432
R-Square: 0.752809242513172

Parameter        Best Estimate      
---------        -------------      
k1               0.00075219124176959
k2               0.0093680714188618  
k3               0.0883840107805217  
k4               9.99999999961713   
k5               9.99999999989503   
k6               9.99999999999999   
k7               4.61483024965692E-14
k8               0.0268675102514994  
k9               5.40027468998149E-19
k10              0.307240694154773
2楼2022-08-13 12:58:37
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 臣本布衣 的主题更新
不应助 确定回帖应助 (注意:应助才可能被奖励,但不允许灌水,必须填写15个字符以上)
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[公派出国] 售SCI-T0P文章,我:8O.5.5.1.O.54,科目齐全,可+急 +3 zSbvVX9JFl9J 2026-11-09 3/150 2026-11-10 01:40 by FChKX8meu1ds
[考博] 售SCI一区文章,我:8.O.55.1.O.54,科目齐全,可伽急 +3 zSbvVX9JFl9J 2026-11-09 4/200 2026-11-10 01:29 by FChKX8meu1ds
[考博] 27博士申请 +3 白白白ly 2026-11-09 3/150 2026-11-09 21:39 by szq0819
[文学芳草园] 厉娜 +3 张丹枫1991 2026-11-09 5/250 2026-11-09 16:53 by 张丹枫1991
[考博] 售SCI一区T0P文章,我:8.O.55.1.O54,科目全,可伽急 +5 kvewwGtKktqB 2026-11-04 12/600 2026-11-09 13:26 by Equinoxhua
[考研] 售SCI-T0P文章,我:8O.5.5.1.O.54,科目齐全,可+急 +5 ttH3f1oA6ace 2026-11-04 15/750 2026-11-09 13:19 by Equinoxhua
[考研] 售SCI文章,我:8O.5.5.1O.54,科目全,可十急 +6 5sJFDKp2kwuI 2026-11-06 14/700 2026-11-09 11:52 by GwrQVVR6Oenx
[硕博家园] 售SCI一区T0P文章,我:8O.55.1.O.54,科目全,可伽急 +5 5sJFDKp2kwuI 2026-11-06 16/800 2026-11-09 11:47 by GwrQVVR6Oenx
[考博] 售SCI文章,我:8O.5.5.1O.54,科目全,可十急 +5 5sJFDKp2kwuI 2026-11-06 15/750 2026-11-09 11:41 by GwrQVVR6Oenx
[硕博家园] 售SCI一区文章,我:8O5.5.1.O5.4,科目全,可伽急 +4 5sJFDKp2kwuI 2026-11-06 10/500 2026-11-09 08:00 by IhnEQauGmT3K
[教师之家] 售SCI一区T0P文章,我:8.O.55.1.O.54,科目齐全,可+急 +4 5sJFDKp2kwuI 2026-11-06 8/400 2026-11-08 23:01 by l48hFd8Nwae2
[教师之家] 售SCI一区T0P文章,我:8.O.55.1.O.5.4,科目全,可+急 +5 5sJFDKp2kwuI 2026-11-06 9/450 2026-11-08 22:46 by l48hFd8Nwae2
[教师之家] 延安大学回应“副教授留绝笔信”:确已离世,正核实举报内容 +3 yexuqing 2026-11-04 5/250 2026-11-07 13:22 by 苏东坡二世
[硕博家园] 售SCI一区文章,我:8O5.5.1.O5.4,科目全,可伽急 +4 ttH3f1oA6ace 2026-11-04 11/550 2026-11-06 16:10 by 5sJFDKp2kwuI
[公派出国] 售SCI一区文章,我:8.O.551.O.5.4,科目全,可伽急 +6 ttH3f1oA6ace 2026-11-04 12/600 2026-11-06 16:10 by 5sJFDKp2kwuI
[公派出国] 售SCI一区T0P文章,我:8.O.55.1.O54,科目全,可伽急 +5 kvewwGtKktqB 2026-11-04 14/700 2026-11-06 05:10 by qL1cU46YIdK0
[硕博家园] 售SCI一区T0P文章,我:8O.55.1.O.5.4,科目齐全,可+急 +6 kvewwGtKktqB 2026-11-04 16/800 2026-11-06 05:00 by qL1cU46YIdK0
[考研] 售SCI一区T0P文章,我:8.O55.1.O.54,科目全,可十急 +4 ttH3f1oA6ace 2026-11-04 10/500 2026-11-06 02:04 by qL1cU46YIdK0
[硕博家园] 售SCI-T0P文章,我:8O.5.5.1.O.54,科目齐全,可+急 +3 ttH3f1oA6ace 2026-11-04 9/450 2026-11-06 02:02 by qL1cU46YIdK0
[硕博家园] 售SCI一区T0P文章,我:8.O55.1.O.54,科目全,可十急 +4 hNpp4Y2CGvSC 2026-11-04 12/600 2026-11-06 01:53 by qL1cU46YIdK0
信息提示
请填处理意见