24小时热门版块排行榜    

查看: 206  |  回复: 0
当前主题已经存档。
【有奖交流】积极回复本帖子,参与交流,就有机会分得作者 只做陌生人 的 40 个金币

只做陌生人

铁虫 (初入文坛)

[交流] 【求助】新手求帮助解答 动力学方程的参数估计方面的问题

小弟最近在做动力学方面的模拟,即用经验型的方程式,里面有8个参数需要估计,前阵子抢了有好多数据了,然后最近在急着写程序,由于是新手,做得比较慢,希望高手帮忙,话正题:
该动力学是两个反应,A+B=C,C+A=D,现在要得到A和B的反应速率,我在程序中是用f1和f2表示的,嗯,我附上我的程序吧,希望高手帮忙指导调试一下,不胜感谢啊。
function mykinetics
clc
global T,obj,g,w,x
g0=[300,30000,0.9,0.8,400,15000,0.6,0.86];
[g,obj]=fminsearch(wlq_obj,g0);
%Cc=0;
T=[438.1500  443.1500  448.1500  453.1500  458.1500  463.1500];
C_e1=[ 8.2209 0.4252
        8.2327 0.4370
        7.9779 0.1650
        8.1535 0.3579
        8.1660 0.3760
        8.1419 0.3528 ];
C_e2=[  8.4981 0.2077
        8.5034 0.2095
        8.5025 0.2060
        8.4996 0.2148
        8.5019 0.2275
        8.4710 0.1872 ];
C_e3=[  8.8011 0.1389
        8.7987 0.1389
        8.7816 0.1233
        8.7770 0.1158
        8.7783 0.1165
        8.7570 0.0959 ];
C_e4=[ 9.0110 0.0577
       8.9832 0.0319
       8.9843 0.0336
       8.9669 0.0189
       8.9732 0.0258
       8.9644 0.0186 ];
plot(T,Cc1,'*',T,C_e1,'+')
ru=1-(nansum((Cc1-C_e1).^2)+nansum((Cc2-C_e2).^2)+nansum((Cc3-C_e3).^2)+nansum((Cc4-C_e4).^2)+nansum((Cc5-C_e5).^2))/(nansum(C_e1.^2)+nansum(C_e2.^2)+nansum(C_e3.^2));
error1=nansum((C_e1-Cc1).^2);
s1=nansum(C_e1.^2)-error1;
error2=nansum((C_e2-Cc2).^2);
s2=nansum(C_e2.^2)-error2;
error3=nansum((C_e3-Cc3).^2);
s3=nansum(C_e3.^2)-error3;
error4=nansum((C_e4-Cc4).^2);
s4=nansum(C_e4.^2)-error4;
s=s1+s2+s3+s4;
error=error1+error2+error3+error4;
f=s*(24-8-1)/(error*8);
result
Cc1
C_e1
ru
s
error
f
%--------------------------------------------------------------------------
function obj=wlq_obj(g)
global T,obj,g
T=[438.1500  443.1500  448.1500  453.1500  458.1500  463.1500];
C_e1=[ 8.2209 0.4252
        8.2327 0.4370
        7.9779 0.1650
        8.1535 0.3579
        8.1660 0.3760
        8.1419 0.3528 ];
C_e2=[  8.4981 0.2077
        8.5034 0.2095
        8.5025 0.2060
        8.4996 0.2148
        8.5019 0.2275
        8.4710 0.1872 ];
C_e3=[  8.8011 0.1389
        8.7987 0.1389
        8.7816 0.1233
        8.7770 0.1158
        8.7783 0.1165
        8.7570 0.0959 ];
C_e4=[ 9.0110 0.0577
       8.9832 0.0319
       8.9843 0.0336
       8.9669 0.0189
       8.9732 0.0258
       8.9644 0.0186 ];
obj1=sum((C_e1-wlq_dynamic_equation1(T,g)).^2);
obj2=sum((C_e2-wlq_dynamic_equation2(T,g)).^2);
obj3=sum((C_e3-wlq_dynamic_equation3(T,g)).^2);
obj4=sum((C_e4-wlq_dynamic_equation4(T,g)).^2);
obj=obj1+obj2+obj3+obj4
%--------------------------------------------------------------------------
function C=wlq_dynamic_equation1(T,g)
global  k01,k02,E1,E2,m1,n1,m1,n2,w,x,Cc1
k01=g(1);
k02=g(5);
E1=g(2);
E2=g(6);
m1=g(3);
n1=g(4);
m2=g(7);
n2=g(8);
[w,x]=ode45(@wlq_f1,[0,0.222],[9.5074 1.9007]);
for i=1:length(T)
Cc1(i,=wlq_dynamic_equation1(T(i),result);
end
%--------------------------------------------------------------------------
function C=wlq_dynamic_equation2(T,g)
global  k01,k02,E1,E2,m1,n1,m1,n2,w,x,Cc2
k01=g(1);
k02=g(5);
E1=g(2);
E2=g(6);
m1=g(3);
n1=g(4);
m2=g(7);
n2=g(8);
[w,x]=ode45(@wlq_f2,[0,0.222],[9.7582 1.6262]);
for i=1:length(T)
Cc2(i,=wlq_dynamic_equation1(T(i),result);
end
%--------------------------------------------------------------------------
function C=wlq_dynamic_equation3(T,g)
global  k01,k02,E1,E2,m1,n1,m1,n2,w,x,Cc3
k01=g(1);
k02=g(5);
E1=g(2);
E2=g(6);
m1=g(3);
n1=g(4);
m2=g(7);
n2=g(8);
[w,x]=ode45(@wlq_f3,[0,0.222],[9.9463 1.4203]);
for i=1:length(T)
Cc3(i,=wlq_dynamic_equation1(T(i),result);
end
%--------------------------------------------------------------------------
function C=wlq_dynamic_equation4(T,g)
global  k01,k02,E1,E2,m1,n1,m1,n2,w,x,Cc4
k01=g(1);
k02=g(5);
E1=g(2);
E2=g(6);
m1=g(3);
n1=g(4);
m2=g(7);
n2=g(8);
[w,x]=ode45(@wlq_f4,[0,0.222],[10.0904 1.2625]);
for i=1:length(T)
Cc4(i,=wlq_dynamic_equation1(T(i),result);
end
%--------------------------------------------------------------------------
function f=wlq_f1(w,x)
global  k01,k02,E1,E2,m1,n1,m1,n2,k1,k2,x01,x02,R,f1,f2,x1,x2
%Cb=x1,Cpr=x2
R=8.314; % (单位J?mol-1?K-1)
x01=9.5074; % (单位mol?L-1)
x02=1.9007;% (单位mol?L-1)
k1=k01.*exp(-(E1./(R.*T)));
k2=k02.*exp(-(E2./(R.*T)));
f1=k1.*x1.^m1.*x2.^n1+k2.*(2*(x01-x1)-(x02-x2)).^m2.*x2.^n2;
f2=k1.*x1.^m1.*x2.^n1+2*k2.*(2*(x01-x1)-(x02-x2)).^m2.*x2.^n2;
%--------------------------------------------------------------------------
function f=wlq_f2(w,x)
global  k01,k02,E1,E2,m1,n1,m1,n2,k1,k2,x01,x02,R,f1,f2,x1,x2
%Cb=x1,Cpr=x2
R=8.314; % (单位J?mol-1?K-1)
x01=9.7582; % (单位mol?L-1)
x02=1.6262;% (单位mol?L-1)
k1=k01.*exp(-(E1./(R.*T)));
k2=k02.*exp(-(E2./(R.*T)));
f1=k1.*x1.^m1.*x2.^n1+k2.*(2*(x01-x1)-(x02-x2)).^m2.*x2.^n2;
f2=k1.*x1.^m1.*x2.^n1+2*k2.*(2*(x01-x1)-(x02-x2)).^m2.*x2.^n2;
%--------------------------------------------------------------------------
function f=wlq_f3(w,x)
global  k01,k02,E1,E2,m1,n1,m1,n2,k1,k2,x01,x02,R,f1,f2,x1,x2
%Cb=x1,Cpr=x2
R=8.314; % (单位J?mol-1?K-1)
x01=9.9463; % (单位mol?L-1)
x02=1.4203;% (单位mol?L-1)
k1=k01.*exp(-(E1./(R.*T)));
k2=k02.*exp(-(E2./(R.*T)));
f1=k1.*x1.^m1.*x2.^n1+k2.*(2*(x01-x1)-(x02-x2)).^m2.*x2.^n2;
f2=k1.*x1.^m1.*x2.^n1+2*k2.*(2*(x01-x1)-(x02-x2)).^m2.*x2.^n2;
%--------------------------------------------------------------------------
function f=wlq_f4(w,x)
global  k01,k02,E1,E2,m1,n1,m1,n2,k1,k2,x01,x02,R,f1,f2,x1,x2
%Cb=x1,Cpr=x2
R=8.314; % (单位J/mol-1/K-1)
x01=10.0904; % (单位mol/L-1)
x02=1.2625;% (单位mol/L-1)
k1=k01.*exp(-(E1./(R.*T)));
k2=k02.*exp(-(E2./(R.*T)));
f1=k1.*x1.^m1.*x2.^n1+k2.*(2*(x01-x1)-(x02-x2)).^m2.*x2.^n2;
f2=k1.*x1.^m1.*x2.^n1+2*k2.*(2*(x01-x1)-(x02-x2)).^m2.*x2.^n2;

我运行的时候,总提示我变量没有定义,但是前面明明已经定义过了的啊,不明白~~~

[ Last edited by kuhailangyu on 2010-3-24 at 21:48 ]
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 只做陌生人 的主题更新
普通表情 高级回复 (可上传附件)
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[论文投稿] 售SCI一区文章,我:8.O.551.O.5.4,科目全,可伽急 +3 gy1nBQXYQJqL 2026-08-29 3/150 2026-08-29 18:26 by 4FFAWE8HcgUD
[基金申请] 麻烦专家们看看评委们的意见(F口面上) +5 gdd2018 2026-08-28 10/500 2026-08-29 14:10 by Jacob678
[教师之家] 售SCI一区T0P文章,我:8.O.55.1.O54,科目全,可伽急 +4 ASdOkHsho7FD 2026-08-28 5/250 2026-08-29 11:49 by jCd0dEvKHShX
[考研] 售一区SCI文章T0P,我:8O.551.O54,科目全,可十急 +4 ASdOkHsho7FD 2026-08-28 6/300 2026-08-29 11:40 by jCd0dEvKHShX
[考研] 售SCI一区文章,我:8.O.55.1.O.54,科目齐全,可伽急 +6 ASdOkHsho7FD 2026-08-28 9/450 2026-08-29 11:18 by jCd0dEvKHShX
[基金申请] 中青基了要发朋友圈吗? +3 349506619 2026-08-28 3/150 2026-08-29 10:49 by 木风9012
[基金申请] 基金系统什么内容也没有 30+4 winsaint 2026-08-27 9/450 2026-08-28 11:06 by maolC
[基金申请] 哪位高人中了,把查询到的截图贴出来让我看看,让我长长见识 +5 yuleib84 2026-08-26 6/300 2026-08-28 00:02 by yudaoqian88
[基金申请] 面上合作单位盖章 +5 ssyjh 2026-08-27 5/250 2026-08-27 20:50 by gdfollow
[基金申请] 看板上这么多中的,有点像50人群里49个人都是骗子的那种感觉…… +5 a089 2026-08-26 6/300 2026-08-27 14:05 by jonewore
[基金申请] 怎么看青基中了没有啊 +5 叶九微 2026-08-26 5/250 2026-08-27 10:35 by l_zh2008
[基金申请] 2026年的国家社科基金项目通讯评审的新规则与新动向、新挑战 +7 process2012 2026-08-23 10/500 2026-08-26 19:23 by hmhminy
[基金申请] 出来了 +9 trojank 2026-08-26 9/450 2026-08-26 14:25 by 宝贝虫子
[基金申请] 为什么国自然不能直接公布 +4 bjdxyxy 2026-08-26 4/200 2026-08-26 13:12 by qingmu1201
[基金申请] 国际合作可查了,中了面上 (EPI+1)(金币+50) +18 Ldrop2023 2026-08-26 18/900 2026-08-26 11:15 by cmrandy
[基金申请] 系统进不去 +4 yanglien 2026-08-26 5/250 2026-08-26 11:10 by wenfengw83
[基金申请] 项目信息和经费信息在系统里都可以看到了 +6 wittyboy 2026-08-26 14/700 2026-08-26 10:55 by wittyboy
[基金申请] 今天务委会开完了,明天出结果吗 +19 angus9576 2026-08-25 23/1150 2026-08-26 10:03 by zp519
[基金申请] 国合现在查不到了吗? +10 chengyan1220 2026-08-24 20/1000 2026-08-26 08:57 by peasantsprig
[基金申请] 如果此刻你正在为国基感到焦虑,不妨来听听这首《基金之外》 +8 scalable 2026-08-24 8/400 2026-08-25 12:52 by jnhyjjm
信息提示
请填处理意见