24小时热门版块排行榜    

Znn3bq.jpeg
查看: 2152  |  回复: 13

justin534

新虫 (初入文坛)

???????:
10?: Originally posted by ????? at 2014-03-29 15:11:44
?????????????????????????????????
?????????????dingd ??1stopt???????????????????...

???????,???!????????}??!??????????????????W?,?F????????3??,??6??k1 k2 k3 k4 k5 k6!
R1=k(1)*DEC*PA-(k(1)/k(2))*EPC*EA
R2=k(3)*EPC*PA-(k(3)/k(4))*DPC*EA
R3=k(5)*EPC.^2-(k(5)/k(6))*DPC*DEC
???????????????a!???????RUN,??????????!


function ODE_parafit2
%-------data
yexp=[5.14  12.76  45.41  21.52  3.31;
5.36  13.20  46.94  20.90  3.17;
5.51  13.47  48.68  20.01  3.08;
5.78  14.03  48.16  19.34  3.04;
6.07  14.33  47.80  18.65  2.94]';
x0=[93.7 6.3 0 0 0];
k0 = [1 1 1 1 1 1];
lb = [0 0 0 0 0 0];
ub = [1 1 1 1 1 1]*1e5;
tspan = [0 38.46 50 62.5 100 166.666 250 500];
%-----------------
[k,fval,flag] =fmincon(@ObjFuncFmincon,k0,[],[],[],[],lb,ub,[],[],tspan,x0,yexp);
fprintf('\n\n??ú???fmincon()?????????????:\n')
fprintf('\tk1 = %.16f \n',k(1))
fprintf('\tk2 = %.16f \n',k(2))
fprintf('\tk3 = %.16f \n',k(3))
fprintf('\tk4 = %.16f \n',k(4))
fprintf('\tk5 = %.16f \n',k(5))
fprintf('\tk6 = %16f \n',k(6))
fprintf('The sum of squares is: %.16f \n\n',fval)

[k,resnorm,residual,exitflag,output,lambda,jacobian] =lsqnonlin(@ObjFunc,k0,lb,ub,[],tspan,x0,yexp);
ci = nlparci(k,residual,jacobian);
fprintf('\n\n??ú???lsqnonlin()?????????????:\n')
fprintf('\tk1 = %.16f \n',k(1))
fprintf('\tk2 = %.16f \n',k(2))
fprintf('\tk3 = %.16f \n',k(3))
fprintf('\tk4 = %.16f \n',k(4))
fprintf('\tk5 = %.16f \n',k(5))
fprintf('\tk6 = %16f \n',k(6))
fprintf('The sum of squares is: %.16f \n\n',resnorm)

%%  plot figure
tspan = [0 38.46 50 62.5 100 166.666 250 500];
for i=1:5
[t x] = ode45(@KineticsEqs,tspan,x0,[],k);   
fy(i,=x(end,;
end
Ypre=fy(;
Yexp=yexp(;
plot(Ypre,'or',Yexp,'b.')
legend('prediction','experiment')
%----------fmincon fun-------------------
function f = ObjFuncFmincon(k,x0,yexp)
tspan = [0 38.46 50 62.5 100 166.666 250 500];
for i=1:5
[t x] = ode45(@KineticsEqs,tspan,x0,[],k);   
fy(i)=sum((yexp(i,-x(end,).^2);
end
f =  sum(fy) ;
% -------------------lsqnonlin fun-------------------
function f = ObjFunc(k,x0,yexp)
tspan = [0 38.46 50 62.5 100 166.666];
for i=1:5
[t x] = ode45(@KineticsEqs,tspan,x0,[],k);   
fy(i,=yexp(i,-x(end,;
end
f =fy(;
%-----------odefun--------------------------------
function dYdt = KineticsEqs(t,y,k)
k1=k(1);k2=k(2);k3=k(3);k4=k(4);k5=k(5);k6=k(6);
DEC=y(1);PA=y(2);DPC=y(3);EA=y(4);EPC=y(5);
R1=k(1)*DEC*PA-(k(1)/k(2))*EPC*EA;
R2=k(3)*EPC*PA-(k(3)/k(4))*DPC*EA;
R3=k(5)*EPC.^2-(k(5)/k(6))*DPC*DEC;
dy1dt=-R1+R3;
dy2dt=-R1-R2;
dy3dt=R2+R3;
dy4dt=R1+R2;
dy5dt=R1-R2-R3;
dYdt=[dy1dt;dy2dt;dy3dt;dy4dt;dy5dt];
11楼2014-04-24 14:50:42
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

justin534

新虫 (初入文坛)

引用回帖:
10楼: Originally posted by 月只蓝 at 2014-03-29 15:11:44
可能是方程的问题,也可能是实验数据的问题。
你可以请实习版主dingd 用1stopt软件做一下,来验证一下。...

sorry,剛剛的編碼有誤,這個是OK的編碼!還有data是隨意打的,所以只是請你幫我看可不可以RUN!

function ODE_parafit2
%-------data
yexp=[5.14  12.76  45.41  21.52  3.31 1 1;
5.36  13.20  46.94  20.90  3.17 1 1;
5.51  13.47  48.68  20.01  3.08 1 1;
5.78  14.03  48.16  19.34  3.04 1 1;
6.07  14.33  47.80  18.65  2.94 1 1]';
x0=[93.7 6.3 0 0 0];
k0 = [1 1 1 1 1 1];
lb = [0 0 0 0 0 0];
ub = [1 1 1 1 1 1]*1e5;
tspan = [0 38.46 50 62.5 100 166.666 250 500];
%-----------------
[k,fval,flag] =fmincon(@ObjFuncFmincon,k0,[],[],[],[],lb,ub,[],[],tspan,x0,yexp);
fprintf('\n\n使用函数fmincon()估计得到的参数值为:\n')
fprintf('\tk1 = %.16f \n',k(1))
fprintf('\tk2 = %.16f \n',k(2))
fprintf('\tk3 = %.16f \n',k(3))
fprintf('\tk4 = %.16f \n',k(4))
fprintf('\tk5 = %.16f \n',k(5))
fprintf('\tk6 = %16f \n',k(6))
fprintf('The sum of squares is: %.16f \n\n',fval)

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

%%  plot figure
tspan = [0 38.46 50 62.5 100 166.666 250 500];
for i=1:8
[t x] = ode45(@KineticsEqs,tspan,x0,[],k);   
fy(i,=x(end,;
end
Ypre=fy(;
Yexp=yexp(;
plot(Ypre,'or',Yexp,'b.')
legend('prediction','experiment')
%----------fmincon fun-------------------
function f = ObjFuncFmincon(k,x0,yexp)
tspan = [0 38.46 50 62.5 100 166.666 250 500];
for i=1:8
[t x] = ode45(@KineticsEqs,tspan,x0,[],k);   
fy(i)=sum((yexp(i,-x(end,).^2);
end
f =  sum(fy) ;
% -------------------lsqnonlin fun-------------------
function f = ObjFunc(k,x0,yexp)
tspan = [0 38.46 50 62.5 100 166.666];
for i=1:8
[t x] = ode45(@KineticsEqs,tspan,x0,[],k);   
fy(i,=yexp(i,-x(end,;
end
f =fy(;
%-----------odefun--------------------------------

function dydt = KineticsEqs(t,y,k)
k1=k(1);k2=k(2);k3=k(3);k4=k(4);k5=k(5);k6=k(6);
DEC=y(1);PA=y(2);DPC=y(3);EA=y(4);EPC=y(5);
R1=k(1)*DEC*PA-(k(1)/k(2))*EPC*EA;
R2=k(3)*EPC*PA-(k(3)/k(4))*DPC*EA;
R3=k(5)*EPC.^2-(k(5)/k(6))*DPC*DEC;
dy1dt=-R1+R3;
dy2dt=-R1-R2;
dy3dt=R2+R3;
dy4dt=R1+R2;
dy5dt=R1-R2-R3;
dydt=[dy1dt;dy2dt;dy3dt;dy4dt;dy5dt];
12楼2014-04-24 15:11:47
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

WULONGLOVE

铁虫 (初入文坛)

引用回帖:
2楼: Originally posted by 月只蓝 at 2014-03-26 20:00:43
比较粗糙的办法是求数值导数,根据t CA的数据即可求出,如果需要MATLAB代码参见:http://muchong.com/bbs/viewthread.php?tid=7020495;
精确点的方法是先拟合出动力学方程中的各参数,以第一组数据(即T=325.15K这组 ...

大神, lsqnonlin(@ObjFunc,k0,lb,ub,[],tspan,y0,yexp); 中的y0代表啥意思啊
13楼2014-12-03 17:15:12
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

月只蓝

主管区长 (职业作家)

引用回帖:
13楼: Originally posted by WULONGLOVE at 2014-12-03 17:15:12
大神, lsqnonlin(@ObjFunc,k0,lb,ub,[],tspan,y0,yexp); 中的y0代表啥意思啊...

预估的初值
MATLAB、MS小问题、普通问题请发帖求助!时间精力有限,恕不接受无偿私信求助。
14楼2014-12-03 18:09:47
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 liqianmelody 的主题更新
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 087100初试311求调剂 +3 任雅琴 2026-04-09 3/150 2026-04-09 22:42 by lbsjt
[考研] 080100力学316求调剂 +4 L_Hairui 2026-04-07 4/200 2026-04-09 21:17 by wutongshun
[考研] 本科郑州大学,一志愿华东师范大学282求调剂 +23 熊哥xtk 2026-04-07 26/1300 2026-04-09 17:17 by 18446523
[考研] 085600材料与化工专硕329 求调剂 +24 额cc 2026-04-06 25/1250 2026-04-09 16:01 by wp06
[考研] 22408 270分 +9 sanjin020722 2026-04-08 10/500 2026-04-09 14:11 by 诗与自由
[考研] 求调剂 +13 柒luck 2026-04-07 13/650 2026-04-08 22:46 by 猪会飞
[考研] 324求调剂 +17 想上学求调 2026-04-03 17/850 2026-04-08 20:04 by 我减肥1
[考博] 博士申请 +3 IQwQl 2026-04-05 3/150 2026-04-07 20:31 by greychen00
[考研] 372分材料与化工(085600)英二数二求调剂 +4 蓝笺片 2026-04-06 4/200 2026-04-07 12:30 by dongzh2009
[考研] 277工科求调剂 +10 1915668 2026-04-04 11/550 2026-04-06 23:53 by 心媛意北
[考研] 071000生物学调剂 +7 拉提桃 2026-04-06 7/350 2026-04-06 18:55 by 52305043001
[考研] 285求调剂 +5 mapmath 2026-04-06 6/300 2026-04-06 17:18 by 蓝云思雨
[考研] 考研生物学考A区211,初试322,科目生化和生物综合,求调剂 +6 。。。54 2026-04-03 6/300 2026-04-05 14:54 by JOKER0401
[考研] 081200-11408-276学硕求调剂 +4 崔wj 2026-04-04 5/250 2026-04-05 14:06 by imissbao
[考研] 272求调剂 +4 电气李 2026-04-05 4/200 2026-04-05 10:41 by lbsjt
[考研] 一志愿西北农林畜牧专硕336分求调剂 +3 5ourr 2026-04-03 3/150 2026-04-05 10:40 by JOKER0401
[考研] 11408,335分,本科211,求调剂,可转专业 +5 鳄梨大鳄鱼 2026-04-03 5/250 2026-04-04 22:49 by chongya
[考研] 266求调剂 +8 学员97LZgn 2026-04-03 8/400 2026-04-04 09:02 by 20021109
[考研] 本科985,专业0812分336求调剂 +4 莫莫很行 2026-04-03 4/200 2026-04-03 21:31 by zhq0425
[考研] 求材料调剂 一志愿南昌大学 328分 +5 yyy..... 2026-04-03 5/250 2026-04-03 13:46 by 百灵童888
信息提示
请填处理意见