24小时热门版块排行榜    

查看: 1016  |  回复: 2

apollosun9283

金虫 (小有名气)

剑桥公爵

[求助] 常微分方程组初值问题的参数确定

方程如附件的图1和图2所示。

--------------------定义方程组---------------------------------------------------
function dydt=tangbin(t,y)
global k1 k2 k3 k4 k5 k6 k7
f1=3*k1*y(1)-k2*y(1)*y(2)-k3*y(1)*y(3)-k4*y(1)*y(4)-...
    k5*y(1)*y(5)-k6*y(1)*y(6)-k7*y(1);
f2=-1/3*k2*76/90*y(1)*y(2);
f3=1/3*k2*106/90*y(1)*y(2)-1/3*k3*106/90*y(1)*y(3);
f4=1/3*k3*136/90*y(1)*y(3)-1/3*k4*136/90*y(1)*y(4);
f5=1/3*k4*166/90*y(1)*y(4)-1/3*k5*166/90*y(1)*y(5);
f6=1/3*k5*196/90*y(1)*y(5)-1/3*k6*196/90*y(1)*y(6);
f7=1/3*k6*226/90*y(1)*y(6)-1/3*k7*226/90*y(1);
f8=1/3*k7*256/90*y(1);
dydt=[f1;f2;f3;f4;f5;f6;f7;f8];

--------------------------以k值的猜测值计算y-----------------------------
clear all;clc
global k1 k2 k3 k4 k5 k6 k7
k1=5;
k2=900;
k3=500;
k4=500;
k5=500;
k6=700;
k7=3;
y0=[0.25 0.75 0 0 0 0 0 0];
[t,y]=ode45(@tangbin,[1/30 1/24 1/18 1/12],y0);
yexp=0.01*[2.21 62.89 19.04 6.86 2.34 0.80 0.27 0.02;...
    1.82 59.76 20.23 8.07 2.97 1.02 0.33 0.05;...
    1.15 55.64 22.27 9.48 3.73 1.34 0.47 0.12;
    1.06 55.13 21.85 9.69 3.99 1.59 0.62 0.22];
s=sum(sum((y-yexp).^2))

-------------------------------------------------------------------------------
现在我遇到的问题是,下一步如何调整k值,使得s=sum(sum((y-yexp).^2))尽可能的小。我设想过给k构建一个循环语句来调整k,但是如何调整,没有思路。

请高手帮帮忙!

1.jpg



2.jpg
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

倚楼听风雨,淡看江湖路
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

gyctju

金虫 (著名写手)

直接手动求极值不行吗?应该不是很复杂啊?
2楼2012-10-12 23:10:08
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

月只蓝

主管区长 (职业作家)

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ...
感谢参与,应助指数 +1
apollosun9283: 金币+150, ★★★★★最佳答案, 十分感谢! 2012-10-13 09:06:40
xiegangmai: 金币+3 2012-10-14 08:23:29
参考实用计算机模拟书,程序如下,做出来问题,至于效果的话,请楼主调一下k初值:

function canshinihe
clear all;clc
tspan=[0 1/30 1/24 1/18 1/12];
y0=[0.25;0.75;0;0;0;0;0;0];
k0=[1 1 1 1 1 1 1]*0.1;
lb=[0 0 0 0 0 0 0];
ub=[1 1 1 1 1 1 1]*10^5;                                                                                
yexp=0.01*[2.21 62.89 19.04 6.86 2.34 0.80 0.27 0.02;...
    1.82 59.76 20.23 8.07 2.97 1.02 0.33 0.05;...
    1.15 55.64 22.27 9.48 3.73 1.34 0.47 0.12;
    1.06 55.13 21.85 9.69 3.99 1.59 0.62 0.22];


% 使用函数lsqnonlin()进行参数估计
[k,resnorm,residual,exitflag,output,lambda,jacobian] = ...
    lsqnonlin(@ObjFunc,k0,lb,ub,[],tspan,y0,yexp);
ci = nlparci(k,residual,jacobian);
fprintf('\n\n使用函数lsqnonlin()估计得到的参数值为:\n')
fprintf('\tk1 = %.4f ± %.4f\n',k(1),ci(1,2)-k(1))
fprintf('\tk2 = %.4f ± %.4f\n',k(2),ci(2,2)-k(2))
fprintf('\tk3 = %.4f ± %.4f\n',k(3),ci(3,2)-k(3))
fprintf('\tk4 = %.4f ± %.4f\n',k(4),ci(4,2)-k(4))
fprintf('\tk5 = %.4f ± %.4f\n',k(5),ci(5,2)-k(5))
fprintf('\tk6 = %.4f ± %.4f\n',k(6),ci(6,2)-k(6))
fprintf('\tk7 = %.4f ± %.4f\n',k(7),ci(7,2)-k(7))
fprintf('  The sum of the squares is: %.1e\n\n',resnorm)

%---------------------------------------------------------
function f = ObjFunc(k,tspan,y0,yexp)           % 目标函数
[t Xsim] = ode45(@KineticsEqs,tspan,y0,[],k);   
ysim(:,1) = Xsim(2:end,1);
ysim(:,2) = Xsim(2:end,2);
ysim(:,3) = Xsim(2:end,3);
ysim(:,4) = Xsim(2:end,4);
ysim(:,5) = Xsim(2:end,5);
ysim(:,6) = Xsim(2:end,6);
ysim(:,7) = Xsim(2:end,7);
ysim(:,8) = Xsim(2:end,8);
f =[ysim(:,1)-yexp(:,1); ysim(:,2)-yexp(:,2); ysim(:,3)-yexp(:,3);...
   ysim(:,4)-yexp(:,4); ysim(:,5)-yexp(:,5);  ysim(:,6)-yexp(:,6);...
     ysim(:,7)-yexp(:,7); ysim(:,8)-yexp(:,8)];
%----------------------------------------------------------

function dydt = KineticsEqs(t,y,k)
f1=3*k(1)*y(1)-k(2)*y(1)*y(2)-k(3)*y(1)*y(3)-k(4)*y(1)*y(4)-...
    k(5)*y(1)*y(5)-k(6)*y(1)*y(6)-k(7)*y(1);
f2=-1/3*k(2)*76/90*y(1)*y(2);
f3=1/3*k(2)*106/90*y(1)*y(2)-1/3*k(3)*106/90*y(1)*y(3);
f4=1/3*k(3)*136/90*y(1)*y(3)-1/3*k(4)*136/90*y(1)*y(4);
f5=1/3*k(4)*166/90*y(1)*y(4)-1/3*k(5)*166/90*y(1)*y(5);
f6=1/3*k(5)*196/90*y(1)*y(5)-1/3*k(6)*196/90*y(1)*y(6);
f7=1/3*k(6)*226/90*y(1)*y(6)-1/3*k(7)*226/90*y(1);
f8=1/3*k(7)*256/90*y(1);
dydt=[f1;f2;f3;f4;f5;f6;f7;f8];
MATLAB、MS小问题、普通问题请发帖求助!时间精力有限,恕不接受无偿私信求助。
3楼2012-10-13 07:13:09
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 apollosun9283 的主题更新
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[找工作] 售SCI一区T0P文章,我:8.O.55.1.O.5.4,科目全,可+急 +5 QUjhNVAcOSff 2026-09-13 6/300 2026-09-14 15:21 by Aj1rhIDL5ixY
[考博] 售SCI文章,我:8O5.5.1.O.54,科目齐全,可+急 +4 QUjhNVAcOSff 2026-09-13 4/200 2026-09-14 15:13 by Aj1rhIDL5ixY
[硕博家园] 售SCI一区T0P文章,我:8.O.55.1.O54,科目全,可伽急 +3 QUjhNVAcOSff 2026-09-13 3/150 2026-09-14 15:09 by Aj1rhIDL5ixY
[博后之家] 售SCI一区T0P文章,我:8O.55.1.O.54,科目全,可伽急 +3 QUjhNVAcOSff 2026-09-13 4/200 2026-09-14 15:01 by Aj1rhIDL5ixY
[公派出国] 售SCI一区T0P文章,我:8.O55.1.O.54,科目全,可十急 +4 QUjhNVAcOSff 2026-09-13 6/300 2026-09-14 15:00 by Aj1rhIDL5ixY
[考博] 售SCI一区文章,我:8O5.5.1.O5.4,科目全,可伽急 +3 s3fFTmArrBt6 2026-09-14 3/150 2026-09-14 12:35 by 40ms4Wlo4umh
[基金申请] 求教各位大神:2026教育部人文社科青年基金项目何时公示呀? +5 云宴山人 2026-09-10 7/350 2026-09-14 12:11 by ecnu2013
[找工作] 浙江师范大学是怎么坑我的 +6 recruit123 2026-09-09 6/300 2026-09-14 12:00 by 萨仁其其格
[考研] 售SCI文章,我:8O5.5.1.O.54,科目齐全,可+急 +3 LwdutQ8HoqWP 2026-09-13 3/150 2026-09-14 11:13 by 23jxep3nCNZb
[找工作] 售SCI一区文章,我:8O5.5.1.O5.4,科目全,可伽急 +3 3n8v2C8RimXI 2026-09-13 3/150 2026-09-14 10:59 by 23jxep3nCNZb
[博后之家] 售SCI一区T0P文章,我:8.O55.1.O.54,科目全,可十急 +3 3n8v2C8RimXI 2026-09-13 3/150 2026-09-14 10:56 by 23jxep3nCNZb
[教师之家] 售SCI一区T0P文章,我:8.O.55.1.O.54,科目齐全,可+急 +3 3n8v2C8RimXI 2026-09-13 3/150 2026-09-14 10:44 by 23jxep3nCNZb
[考博] 售SCI文章,我:8O.5.5.1O.54,科目全,可十急 +3 3n8v2C8RimXI 2026-09-13 3/150 2026-09-14 10:32 by 23jxep3nCNZb
[博后之家] 售SCI一区T0P文章,我:8.O.55.1.O.5.4,科目全,可+急 +3 QUjhNVAcOSff 2026-09-13 3/150 2026-09-14 10:11 by 23jxep3nCNZb
[考研] 售SCI一区文章,我:8.O.551.O.5.4,科目全,可伽急 +3 QUjhNVAcOSff 2026-09-13 4/200 2026-09-14 10:01 by 23jxep3nCNZb
[考博] 西北工业大学材料学院电化学传感与催化课题组招收2027年推免研究生、博士生、博士后 +3 马方园 2026-09-10 4/200 2026-09-14 09:29 by Chem张zz
[考博] 27秋季材料博士申请求助 10+3 Cahal1 2026-09-11 4/200 2026-09-14 08:50 by 北京莱茵编辑
[教师之家] 浙江师范大学是怎么坑我的 +10 recruit123 2026-09-09 15/750 2026-09-13 10:45 by seaskyy
[基金申请] 面上有专家说实验设备不是我们单位的 +6 zj_muchong 2026-09-08 8/400 2026-09-11 06:56 by suifengdao
[有机交流] 科研求助 10+4 我吃一只鱼 2026-09-07 4/200 2026-09-10 08:32 by 0940628
信息提示
请填处理意见