24小时热门版块排行榜    

查看: 304  |  回复: 1

805592836_01

铁虫 (初入文坛)

[求助] 跪求matlab大神帮忙 已有1人参与

matlab拟合动力学模型:
r0=dCA/dt=(k1*KA*KB*CA0*CB0^3)/(1+KA*CA0+KB^(1/3)*CB)^4
动力学数据(其中的三组):
CB0为定值0.4
一、
t=0,2,5,7,10,15,20,30,40
CA=1.686,1.530,1.428,1.424,1.326,1.203,1.017,0.910,0.775
二、
t=0,2,3,5,10,15,20,30,40
CA=,1.742,1.444,1.371,1.276,1.123,0.991,0.888,0.665,0.521
三、
t=0,5,10,15,20,30,40,50
CA=,1.745,1.563,1.298,1.219,1.126,0.885,0.736,0.634
回复此楼

» 猜你喜欢

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

加油加油加油……
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

月只蓝

主管区长 (职业作家)

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★ ★ ★
感谢参与,应助指数 +1
805592836_01: 金币+10, ★★★很有帮助, 救人一命 2014-02-24 09:35:43
原方程式:dCA/dt=(k1*KA*KB*CA0*CB0^3)/(1+KA*CA0+KB^(1/3)*CB)^4中,没有给出CB和CA的关系,在定义方程式时默认CB=CA。对于第一组数据,代码如下,结果见附图。
推荐你找版主用1stopt软件帮你跑一下,MATLAB求解初值不好给出,结果一定是最优。
CODE:
function ode_fit33333333333
clear all;clc

format long

tspan=[0,2,5,7,10,15,20,30,40];
t1=length(tspan)
yexp=[1.530,1.428,1.424,1.326,1.203,1.017,0.910,0.775]';
t2=length(yexp)



y0=1.686;

k0=[5 -10 100];
lb=[-1 -1 -1]*1e9;
ub=[1 1 1]*1e9;        

yy=[y0 yexp'];
options = optimset('MaxFunEvals',1000);
[k,resnorm,residual,exitflag,output,lambda,jacobian] = ...
    lsqnonlin(@ObjFunc,k0,lb,ub,options,tspan,y0,yexp);
ci = nlparci(k,residual,jacobian);
fprintf('\n\n使用函数lsqnonlin()估计得到的参数值为:\n')
fprintf('\t反应速率常数 k1 = %.4f\n',k(1))
fprintf('\t反应速率常数 KA = %.4f\n',k(2))
fprintf('\t反应速率常数 KB = %.4f\n',k(3))
ts=0:1:max(tspan);

[ts ys]=ode45(@KineticsEqs,ts,y0,[],k);
[ttt XXsim] = ode45(@KineticsEqs,tspan,y0,[],k);
y=XXsim(2:end);
xexp=yexp;
R2=1-sum((xexp-y).^2)./sum((xexp-mean(y)).^2);
fprintf('\n\t相关系数之平方R^2 = %.6f',R2);
plot(ts,ys,'b',tspan,yy,'or'),legend('计算值','实验值','Location','best'),


%---------------------------------------------------------
function f = ObjFunc(k,tspan,y0,yexp)           % 目标函数
[t Xsim] = ode45(@KineticsEqs,tspan,y0,[],k) ;
Xsim;
ysim = Xsim(2:end);
f=ysim-yexp;
%----------------------------------------------------------

function dydt = KineticsEqs(t,y,k)
y0=1.686;
CB=y;
CB0=0.4;
CA0=y0;
k1=k(1);
KA=k(2);
KB=k(3);
dydt=(k1*KA*KB*CA0*CB0^3)./(1+KA*CA0+KB.^(1/3)*CB).^4;

跪求matlab大神帮忙
附图.jpg

MATLAB、MS小问题、普通问题请发帖求助!时间精力有限,恕不接受无偿私信求助。
2楼2014-02-24 09:16:40
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 805592836_01 的主题更新
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[基金申请] 欢迎发来filecode的Mz6后的代码验证其规律 +34 医学老男孩 2026-08-13 81/4050 2026-08-17 16:20 by yudaoqian88
[基金申请] 感觉是下周放榜了 +4 angus9576 2026-08-17 7/350 2026-08-17 16:11 by Vivilian
[基金申请] 时间戳变了,能看出什么问题? +4 基诺咪客 2026-08-17 4/200 2026-08-17 16:10 by Vivilian
[基金申请] filecode=后面第一个是大写字母 +7 wangze12014 2026-08-14 9/450 2026-08-17 14:59 by wangze12014
[考研] 售SCI文章,我:8O5.5.1.O.54,科目齐全,可+急 +3 EWi2p09MOOv8 2026-08-16 6/300 2026-08-17 14:02 by EYK67XJMj64E
[基金申请] 今天系统多次维护,明天很可能放榜! +8 zju2000 2026-08-16 9/450 2026-08-17 12:20 by lmz0216
[硕博家园] 售SCI一区T0P文章,我:8O.55.1.O.5.4,科目齐全,可+急 +3 i7NFEVbjQMM5 2026-08-16 4/200 2026-08-17 12:10 by 4GBAYCdVQoK3
[教师之家] 售SCI一区T0P文章,我:8.O.55.1.O.5.4,科目全,可+急 +3 6GojgJvkDudM 2026-08-16 3/150 2026-08-17 09:49 by xLVPIRuSvCUe
[基金申请] 时间戳又变了8-15 +13 archvillain 2026-08-15 25/1250 2026-08-16 20:13 by zhaosm1982
[基金申请] 2027广东省杰青 +3 奶牛小黑 2026-08-15 6/300 2026-08-16 20:07 by 奶牛小黑
[基金申请] 快农历七夕节了,轻松一下,男人悄悄话,女施主请不要进来。 +3 Tide man 2026-08-14 3/150 2026-08-16 17:47 by jurkat.1640
[基金申请] 咱们一起用铁证分析2026国家社科基金中标与否 +7 启萌科技 2026-08-12 26/1300 2026-08-16 12:35 by 启萌科技
[基金申请] 各位道友,我要去昆明玩几天,回来见。 +7 Tide man 2026-08-14 8/400 2026-08-15 01:11 by arzu_hma
[基金申请] 是这周出结果还是下周出结果? +4 yuleib84 2026-08-11 4/200 2026-08-14 23:05 by lfy8008
[基金申请] 重要来源:本周末出结果 +10 瞬息宇宙 2026-08-12 10/500 2026-08-13 15:46 by likettle
[基金申请] 不应该看fileCode +7 且听虎啸 2026-08-12 9/450 2026-08-13 14:27 by flydreamws
[基金申请] Filecode 又变了,巨变 +3 WH3796 2026-08-12 4/200 2026-08-13 14:13 by 小木虫6752397
[基金申请] 分享一下我之前已中青C的计划书的filecode +4 布布和一二 2026-08-11 5/250 2026-08-13 12:56 by cratir
[基金申请] 2019年青年基金涵评意见,大家看看几个A,几个B? +11 Tide man 2026-08-11 11/550 2026-08-13 07:35 by 撸猫猫
[基金申请] 什么时候出结果,有咨询渠道??? +3 Tide man 2026-08-11 3/150 2026-08-11 17:54 by kudofaye
信息提示
请填处理意见