24小时热门版块排行榜    

查看: 1335  |  回复: 5
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

898766282

新虫 (正式写手)

[求助] matlab lsqnonlin函数进行非线性动力学参数拟合,求高手指点. 已有1人参与

function kinetics1
clear all
clc
a0=[10^11 81 0.3];
lb=[0 0 0];ub=[+inf +inf +inf];
c0=[0.0525564 100];
c16exp=...
    [0.0525564        100
    0.0403533        73.3083
    0.0267938        50.3759
    0.015037        42.1053
    0.0082474        24.812
    0.00415801        13.9098
    0.00278195        11.6541
    0.00185881        10.1504
    0.00183435        9.77444
    0.0015879        9.77444];
c14exp=...
    [0.0525564        100
    0.0493758        89.8496
    0.0441658        81.203
    0.0378303        72.9323
    0.0357841        67.6692
    0.0337337        61.6541
    0.0276196        54.8872
    0.0239832        47.7444
    0.018766        40.6015
    0.0160359        35.7143
    0.0153455        34.5865];
c12exp=...
    [0.0526        100
     0.0516        98.1203
     0.0507        94.7368
     0.0484        93.2331
     0.0464        89.8496
     0.0439        80.4511
     0.0429        80.8271
     0.0407        77.8195
     0.0393        76.3158
     0.0381        75.5639
     0.0365        72.1805];

[a,resnorm,residual,exitflag,output,lambda,jacobian]=lsqnonlin(@objlm,a0,lb,ub,[],c0,c16exp,c14exp,c12exp);
ci=nlparci(a,residual,jacobian);
fprintf('\n\n使用函数lsqnonlin()估计得到的参数值为:\n'),a

function f=objlm(a,c0,c16exp,c14exp,c12exp)

%160度
tspan1=[0    0.1005    0.2143    0.3360    0.4365    0.5661    0.6667    0.7593    0.8677    0.9603];
[t,c16]=ode45(@kinetic16,tspan1,c0,[],a);
f1=c16(:,1)-c16exp(:,1);
f2=c16(:,2)-c16exp(:,2);

%140度
tspan2=[0    0.1005    0.1984    0.2857    0.3571    0.4471    0.5529    0.6746    0.8042    0.9074    0.9683];
[t,c14]=ode45(@kinetic14,tspan2,c0,[],a);
f3=c14(:,1)-c14exp(:,1);
f4=c14(:,2)-c14exp(:,2);

%120度
tspan3=[0    0.1005    0.2011    0.2937    0.4021    0.5000    0.5979    0.7090    0.8069    0.8862    0.9894];
[t,c12]=ode45(@kinetic12,tspan3,c0,[],a);
f5=c12(:,1)-c12exp(:,1);
f6=c12(:,2)-c12exp(:,2);

f=[f1;f2;f3;f4;f5;f6];    %构造目标函数

function dc16dt=kinetic16(t,c16,a)   %160度
T1=433.15;R=0.008314;
dc16dt=...
    [-(a(1).*exp(-a(2)./(R.*T1)).*((c16(2)./100).^(a(3))).*c16(1).*0.943)
    -(7.*a(1).*exp(-a(2)./(R.*T1)).*((c16(2)./100).^(a(3))).*c16(1).*0.943)];

function dc14dt=kinetic14(t,c14,a)   %140度
T2=413.15;R=0.008314;
dc14dt=...
    [-(a(1).*exp(-a(2)./(R.*T2)).*((c14(2)./100).^(a(3))).*c14(1).*0.926)
    -(7.*a(1).*exp(-a(2)./(R.*T2)).*((c14(2)./100).^(a(3))).*c14(1).*0.926)];

function dc12dt=kinetic12(t,c12,a)   %120度
T3=393.15;R=0.008314;
dc12dt=...
    [-(a(1).*exp(-a(2)./(R.*T3)).*((c12(2)./100).^(a(3))).*c12(1).*0.907)
    -(7.*a(1).*exp(-a(2)./(R.*T3)).*((c12(2)./100).^(a(3))).*c12(1).*0.907)];
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

898766282

新虫 (正式写手)

请问怎样调整lsqnonlin函数优化的参数,我计算得出的残差平方和并不是最小的就停止了,是需要调整什么参数吗?我的初值是根据已有文献报道来选择的应该没有问题。
4楼2016-01-13 14:04:11
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 6 个回答

Mr__Right

专家顾问 (著名写手)

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★
感谢参与,应助指数 +1
898766282: 金币+5, ★有帮助 2016-01-12 14:02:40
898766282: 金币+5, ★有帮助 2016-01-12 16:41:14
898766282: 金币+10, ★有帮助 2016-01-13 13:59:33
这类问题“尝试”的工作量大。只给一点提示:
1。拟合问题最终数值上都是“最优化”问题,这个是相对复杂的非线性非凸优化问题
2。这类优化问题的求解,常用的迭代方法或基于牛顿法延伸出来的方法,通常无法找到好的最优解
理论上,这类问题,只有唯一的全局最优解的情况下,没有数值算法能够确保必然收敛到这个点
现在通用的方法是:
先用全局优化算法(differential-evolution差分演化,最常用,粒子群PSO)作初步筛查,然后再用nonlincon,fmincon之类函数自带的局部优化算法

通常要多算几次做比较,可能还要调整优化的参数,直到找到最佳结果
文章乃身外之物,要多考虑编辑、审稿人和读者的感受。
2楼2016-01-12 13:03:33
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

898766282

新虫 (正式写手)

引用回帖:
2楼: Originally posted by Mr__Right at 2016-01-12 13:03:33
这类问题“尝试”的工作量大。只给一点提示:
1。拟合问题最终数值上都是“最优化”问题,这个是相对复杂的非线性非凸优化问题
2。这类优化问题的求解,常用的迭代方法或基于牛顿法延伸出来的方法,通常无法找到好 ...

请问我用ode求解器求解时,初始值c0不一样,要怎么弄呢?
3楼2016-01-12 16:41:04
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

Mr__Right

专家顾问 (著名写手)

引用回帖:
4楼: Originally posted by 898766282 at 2016-01-13 14:04:11
请问怎样调整lsqnonlin函数优化的参数,我计算得出的残差平方和并不是最小的就停止了,是需要调整什么参数吗?我的初值是根据已有文献报道来选择的应该没有问题。

常微分方程组的参数拟合,您可以找精通1stOpt的同学帮忙试算。

文章乃身外之物,要多考虑编辑、审稿人和读者的感受。
5楼2016-01-13 19:12:34
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[职场人生] 40+中年人失业后,还能找到好工作吗? +11 xqy2009 2026-10-13 13/650 2026-10-15 21:32 by bear2007
[有机交流] 用NBS溴化时溶剂除了CCl4外还有什么 +3 18834002860 2026-10-12 6/300 2026-10-15 14:30 by 长沙摩尔信息科�
[基金申请] 申请科研项目纯靠实力能成功吗? 200+7 David1982 2026-10-13 11/550 2026-10-15 10:30 by zyqchem
[硕博家园] 极限拉扯,如何抉择 +11 Isak0320 2026-10-12 15/750 2026-10-14 21:55 by 猫鱼不是鱼
[论文投稿] 二审4个多月了还是Awaiting Reviewer Scores 10+3 纳斯达克ML 2026-10-11 4/200 2026-10-14 17:30 by babero
[有机交流] OpenAI又攻克数学难题了,离AI做有机合成还有多远? +8 wangyl_123 2026-10-10 13/650 2026-10-14 15:12 by zuesli
[教师之家] 课题组会帮你通过考核么? +4 好运来~9527 2026-10-10 7/350 2026-10-13 08:41 by xli1984
[公派出国] 售一区SCI文章T0P,我:8O.551.O54,科目全,可十急 +5 qR2AdCWTVtkw 2026-10-09 9/450 2026-10-11 22:34 by XQNyDCa1Tk5n
[找工作] 售SCI一区T0P文章,我:8.O55.1.O.54,科目全,可十急 +5 qR2AdCWTVtkw 2026-10-09 8/400 2026-10-11 22:26 by XQNyDCa1Tk5n
[考博] 售SCI一区T0P文章,我:8.O55.1.O.54,科目全,可十急 +5 qR2AdCWTVtkw 2026-10-09 9/450 2026-10-11 22:15 by XQNyDCa1Tk5n
[考博] 售SCI一区文章,我:8.O.55.1.O.54,科目齐全,可伽急 +3 qR2AdCWTVtkw 2026-10-09 7/350 2026-10-11 22:11 by XQNyDCa1Tk5n
[教师之家] 售SCI文章,我:8O5.5.1.O.54,科目齐全,可+急 (EPI+-1)(金币-50) +5 qR2AdCWTVtkw 2026-10-09 10/500 2026-10-11 22:06 by XQNyDCa1Tk5n
[教师之家] 售SCI一区T0P文章,我:8.O.55.1.O.5.4,科目全,可+急 (EPI+-1)(金币-50) +5 qR2AdCWTVtkw 2026-10-09 10/500 2026-10-11 14:25 by VOMexwnDzOFZ
[教师之家] 售SCI文章,我:8O.5.5.1O.54,科目全,可十急 (EPI+-1)(金币-50) +4 qR2AdCWTVtkw 2026-10-09 7/350 2026-10-11 14:05 by VOMexwnDzOFZ
[考研] 售SCI文章,我:8O.5.5.1O.54,科目全,可十急 +5 qR2AdCWTVtkw 2026-10-09 8/400 2026-10-11 13:51 by VOMexwnDzOFZ
[硕博家园] 售SCI-T0P文章,我:8O.5.5.1.O.54,科目齐全,可+急 +5 qR2AdCWTVtkw 2026-10-09 8/400 2026-10-11 13:45 by VOMexwnDzOFZ
[找工作] 售SCI一区T0P文章,我:8O.55.1.O.5.4,科目齐全,可+急 +3 qR2AdCWTVtkw 2026-10-09 7/350 2026-10-11 10:54 by VOMexwnDzOFZ
[找工作] 售SCI一区T0P文章,我:8O.55.1.O.5.4,科目齐全,可+急 +4 qR2AdCWTVtkw 2026-10-09 7/350 2026-10-11 10:34 by VOMexwnDzOFZ
[考博] 招收博士生一名 +3 mandolin 2026-10-10 3/150 2026-10-11 10:21 by 不是山谷!
[公派出国] 售SCI一区T0P文章,我:8O.55.1.O.54,科目全,可伽急 +4 qR2AdCWTVtkw 2026-10-09 4/200 2026-10-11 03:14 by M0zrYVSAnxpE
信息提示
请填处理意见