24小时热门版块排行榜    

查看: 2840  |  回复: 7

飞鸿印雪jay

银虫 (小有名气)

[求助] 请问这个算是反应动力学方程吗?怎么求得k值?

自己建的数学模型,反应速率方程算不算反应动力学方程?怎么用matlab求解参数k呢?假设浓度C可以试验测定。
请问这个算是反应动力学方程吗?怎么求得k值?
OE%JHWBEA]D{_`_H1%%8ZI8.jpg
回复此楼

» 收录本帖的淘帖专辑推荐

动力学拟合

» 猜你喜欢

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

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

dingd

铁杆木虫 (职业作家)

【答案】应助回帖

感谢参与,应助指数 +1
微分方程拟合问题,用1stOpt很好解决,搜一下有很多例子。
2楼2013-11-07 18:39:26
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

飞鸿印雪jay

银虫 (小有名气)

引用回帖:
2楼: Originally posted by dingd at 2013-11-07 18:39:26
微分方程拟合问题,用1stOpt很好解决,搜一下有很多例子。

请问怎么具体求解啊?现在参数k比方程的数目多,不知道怎么求解啊?想用matlab
3楼2013-11-09 21:16:29
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

feixiaolin

荣誉版主 (文坛精英)

优秀版主

可采用逐步线性回归方法。
4楼2013-11-09 21:47:10
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

月只蓝

主管区长 (职业作家)

【答案】应助回帖

★ ★ ★ ★ ★
感谢参与,应助指数 +1
飞鸿印雪jay: 金币+5, ★★★很有帮助 2014-01-08 23:58:45
以下是MATLAB拟合含2个方程的常微分方程组的实例:
http://muchong.com/bbs/viewthread.php?tid=6425538&authorid=1122189

你的是包含5个方程的,程序可类比。
MATLAB、MS小问题、普通问题请发帖求助!时间精力有限,恕不接受无偿私信求助。
5楼2013-11-10 09:46:19
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

飞鸿印雪jay

银虫 (小有名气)

引用回帖:
5楼: Originally posted by 月只蓝 at 2013-11-10 09:46:19
以下是MATLAB拟合含2个方程的常微分方程组的实例:
http://muchong.com/bbs/viewthread.php?tid=6425538&authorid=1122189

你的是包含5个方程的,程序可类比。

function k1k2k3
format long
clear all
clc
tspan = [0  30  50  80 140 170 200 230 260 290 320 360 400 460 520 580 600];
x0 = [9;0;0;0;0];
k0 = [1  0  0  0  0  0  0  0  0  0];   
lb = [0  0  0  0  0  0  0  0  0  0];
ub = [1  1  1  1  1  1  1  1  1  1];

data=[30        7.939        1.458     7.939        1.458     7.939      
      50        7.687        1.535     7.687        1.535     7.687
      80        7.289        1.602     7.289        1.602     7.289
      140        6.658        1.717    6.658        1.717     6.658
      170        6.531        1.722    6.531        1.722     6.531
      200        6.218        1.671    6.218        1.671     6.218
      230        5.979        1.620    5.979        1.620     5.979
      260        5.591        1.550    5.591        1.550     5.591
      290        5.414        1.488    5.414        1.488     5.414
      320        4.968        1.433    4.968        1.433     4.968
      360        4.692        1.350    4.692        1.350     4.692  
      400        4.438        1.319    4.438        1.319     4.438
      460        4.144        1.294    4.144        1.294     4.144
      520        4.041        1.294    4.041        1.294     4.041
      580        4.052        1.287    4.052        1.287     4.052     
      600        4.052        1.287    4.052        1.287     4.052      
      ];
yexp = data(:,2:6);

[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 = %.9f ± %.9f\n',k(1),ci(1,2)-k(1))
fprintf('\tk2 = %.9f ± %.9f\n',k(2),ci(2,2)-k(2))
fprintf('\tk3 = %.9f ± %.9f\n',k(3),ci(3,2)-k(3))
fprintf('\tk3 = %.9f ± %.9f\n',k(4),ci(3,2)-k(4))
fprintf('\tk3 = %.9f ± %.9f\n',k(5),ci(3,2)-k(5))
fprintf('\tk3 = %.9f ± %.9f\n',k(6),ci(3,2)-k(6))
fprintf('\tk3 = %.9f ± %.9f\n',k(7),ci(3,2)-k(7))
fprintf('\tk3 = %.9f ± %.9f\n',k(8),ci(3,2)-k(8))
fprintf('\tk3 = %.9f ± %.9f\n',k(9),ci(3,2)-k(9))
fprintf('\tk3 = %.9f ± %.9f\n',k(10),ci(3,2)-k(10))
fprintf('  The sum of the squares is: %.9e\n\n',resnorm)

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

size(ysim(:,1));
size(ysim(:,2));
size(yexp(:,1));
size(yexp(:,2));

f = [(ysim(:,1)-yexp(:,1)) (ysim(:,2)-yexp(:,2))];

function dCdt = KineticsEqs(t,C,k)              % ODE模型方程
dCAdt = (k(1)+k(5)+k(6)+k(7))*C(1);
dCBdt = k(1)*C(1)-(k(2)+k(8)+k(9))*C(2);
dCCdt = k(5)*C(1)+k(2)*C(2)-(k(3)+k(10))*C(3);
dCDdt = k(6)*C(1)+k(9)*C(2)+k(3)*C(3)-k(4)*C(4);
dCEdt = k(7)*C(1)+k(8)*C(2)+k(10)*C(3)+k(4)*C(4);
dCdt = [dCAdt; dCBdt;dCCdt;dCDdt;dCEdt];
大神帮忙改一下啊
6楼2013-11-10 21:30:32
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

278647873

新虫 (小有名气)

十个参数这么多,你得做多少次试验啊,你是没找到关键的地方吧,即使拟合出来也不会准确吧
7楼2013-11-12 11:01:39
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zj34331197

木虫 (正式写手)

木虫

引用回帖:
3楼: Originally posted by 飞鸿印雪jay at 2013-11-09 21:16:29
请问怎么具体求解啊?现在参数k比方程的数目多,不知道怎么求解啊?想用matlab...

不知道问题解决没有,如果以反应进度表示动力学方程,可能要简单明了的多。
路漫漫其修远兮
8楼2015-06-28 20:01:34
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 飞鸿印雪jay 的主题更新
信息提示
请填处理意见