24小时热门版块排行榜    

查看: 474  |  回复: 4
当前主题已经存档。

jesschen

铜虫 (小有名气)

[交流] 【求助】请高手帮忙修改一个动力学的程序,多谢

由于时间紧迫,来不及去从头学习matlab了。所以希望各位高手帮帮忙编一下程序。需要金币的话可以相送。
我的动力学方程式子是:2A——>B+C,是个可逆反应,正反应速率常数为k1,逆反应为k2。现在知道A,B,C各个时间的浓度,不过C的似乎有些问题,不过不要紧的。目前没有做到平衡,所以不能由平衡时的数值来算常数。
我想用的是采用定步长的龙格库塔方数值积分和Powell发来估算模型的参数k1,和k2。
希望高手帮忙编一下程序,我自己仿照例子编了半天,不是这里有问题就是那里有问题。我自己编的如下:
数据是随便写的
function KineticsEst1_int

% 动力学方程为rA=dCA/dt=-k1*CA^2+k2*CB*CC
clear all;
clc
global CAm CBm CCm
t=[0 10 30 60 90 150 210 270 330];
CAm=[10 9 8 7 6 5 4 3 2];
CBm=[0 0.5 1.5 2 2.5 3 3.5 4 4.5]
CCm = [有问题,不列了];

% 非线性拟合
beta0=[0.0000053 10];
tspan = [0 10 30 60 90 150 210 270 330];
CA0 = 9.672;
CB0 = 0;
CC0 = 0;
[beta,resnorm,resid,exitflag,output,lambda,jacobian] = ...
    lsqnonlin(@OptObjFunc,beta0,[0 0],[],[],tspan,[CA0 CB0 CC0])
ci = nlparci(beta,resid,jacobian)

% 拟合效果图(实验与拟合的比较)
[t4plot CA4plot] = ode45(@KineticsEqs,[tspan(1)  tspan(end)],[CA0 CB0 CC0],[],beta);
plot(tspan,CAm,'bo',t4plot,CA4plot,'k-')
legend('Exp','Model')
xlabel('时间t, min')
ylabel('浓度C_A, mol/L')

%残差关于拟合值的残差图
[t Y]=ode45(@KineticsEqs,tspan,CA0,[],beta);
Figure, plot(CAc,resid, '*')
xlabel('浓度拟合值(mol/L)'), ylabel('残差R(mol/L)'), refline(0,0)

% 参数辨识结果
fprintf('Estimated Parameters:\n'),
fprintf('\tk1 = %.4f ± %.4f\n',beta(1),ci(1,2)-beta(1))
fprintf('\tk2 = %.4f ± %.4f\n',beta(2),ci(2,2)-beta(2))
% ------------------------------------------------------------------
function f = OptObjFunc(beta,tspan,CA0,CAm)
global CAm CBm CCm
[t Y] = ode45(@KineticsEqs,tspan,CA0,[],beta);
if length(t)==length(tspan)
    f = Y - [CAm CBm CCm];
else
    f=100000;
end
% ------------------------------------------------------------------
function dy = KineticsEqs(t,Y,beta)    这个地方一直看不懂例子为什么这么编
CA=Y(1);
CB=Y(2);
CC=Y(3);
dCAdt = -beta(1)*CA^2 +beta(2)*CB*CC;            % k1= beta(1), k2= beta(2)
dCBdt = beta(1)*CA*CB-beta(2)*CC;
dCCdt = beta(2)*CC;
dy=[dCAdt;dCBdt;dCCdt];
多谢各位。

[ Last edited by jesschen on 2009-6-19 at 18:19 ]
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

youol

金虫 (小有名气)

sunxiao(金币+0,VIP+0):此话怎讲?请解释,以免误会,呵呵 6-10 04:53
kuhailangyu(金币+0,VIP+0):是楼主有点为难人吧? 6-10 16:23
版主有点为男人呢!
2010,该丰收的一年!
2楼2009-06-01 18:13:40
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

ljling

木虫 (小有名气)


小木虫(金币+0.5):给个红包,谢谢回帖交流
我也想学格,一起想想办法。。。。
3楼2009-06-08 16:57:44
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

youol

金虫 (小有名气)


小木虫(金币+0.5):给个红包,谢谢回帖交流
是有点难的意思!打字打错了!sorry!
2010,该丰收的一年!
4楼2009-06-10 10:27:41
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

youol

金虫 (小有名气)


sunxiao(金币+1,VIP+0):谢谢,原来是这个意思,呵呵,那应该是楼主吧,而不应该是版主,嘿嘿 6-11 04:58
呵呵  就是这个意思!
2010,该丰收的一年!
5楼2009-06-10 22:57:49
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 jesschen 的主题更新
普通表情 高级回复 (可上传附件)
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[基金申请] filecode +8 documentary 2026-08-10 8/400 2026-08-10 19:20 by loufangrui
[基金申请] 帮忙看看fileCode +3 wwncly 2026-08-10 5/250 2026-08-10 19:06 by 2000zf36392
[基金申请] 为什么网上很多人说本周 12号出结果 +3 瞬息宇宙 2026-08-10 3/150 2026-08-10 18:27 by Tide man
[基金申请] 国自然结果 +4 Vierhys 2026-08-10 8/400 2026-08-10 15:06 by Vierhys
[基金申请] 应该是93bebmhtak前后十一个字符比较关键 +14 Lanmanbaby 2026-08-09 22/1100 2026-08-10 14:57 by wwncly
[基金申请] 8月时间戳变的,举个手。玩一下,释放压力 +11 archvillain 2026-08-04 13/650 2026-08-10 14:41 by seekfind
[基金申请] 据悉今年马上要出结果了 +7 瞬息宇宙 2026-08-10 8/400 2026-08-10 12:42 by Vivilian
[基金申请] 2026国自然放榜时间 +9 布布和一二 2026-08-08 9/450 2026-08-10 11:22 by xxxx2020
[基金申请] 这样的filecode谁见过 +11 布布和一二 2026-08-08 22/1100 2026-08-10 11:10 by wmfsnow
[基金申请] 面上项目filecode邪修 +5 西山十月 2026-08-09 7/350 2026-08-10 07:32 by 仁砚薪传
[基金申请] filecode与中标关系的预测 +5 布布和一二 2026-08-07 5/250 2026-08-09 16:15 by 袁向阳007
[基金申请] fileCode有新解读? +10 Tide man 2026-08-08 18/900 2026-08-09 12:55 by 仁砚薪传
[基金申请] 关于豆爷回答的JTJC与%2F数量 +5 yang182083 2026-08-06 7/350 2026-08-08 18:29 by zhanghaozhu
[基金申请] 国基金的申报应该改成非等额制,评价高的钱多评价低的钱少,但是增加资助率 +7 a089 2026-08-07 7/350 2026-08-08 18:05 by gltch
[基金申请] 基金中了 +14 laoda193707 2026-08-06 14/700 2026-08-08 00:23 by 实验小白ha
[基金申请] 关于filecode +4 布布和一二 2026-08-07 7/350 2026-08-07 22:55 by zhanghaozhu
[基金申请] 娱乐 +6 Tide man 2026-08-03 6/300 2026-08-07 22:40 by 铁帽子农民
[基金申请] 求各位大神看下 100+6 hpkpkpkp 2026-08-05 33/1650 2026-08-06 14:49 by zhiyanjiang
[基金申请] 好消息?这个有何含义??? +8 Tide man 2026-08-05 10/500 2026-08-05 16:14 by xmuxiaoyu
[基金申请] 纯娱乐,不喜欢勿喷 +7 Tide man 2026-08-04 10/500 2026-08-04 15:10 by loufangrui
信息提示
请填处理意见