24小时热门版块排行榜    

查看: 2200  |  回复: 9
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

最自私的女人

新虫 (初入文坛)

[求助] 动力学方程组参数求解问题 已有3人参与

本人动力学方程如下:
dx1/dt=k21x2+k31x3+k41x4+k51x5+k61x6+k71x7+k81x8
dx2/dt=-k21x2+k32x3+k42x4+k52x5+k62x6+k72x7+k82x8
dx3/dt=-k31x3-k32x3+k43x4+ k53x5+k63x6+k73x7+k83x8
dx4/dt=-k41x4-k42x4-k43x4+ k54x5+k64x6+k74x7+k84x8
dx5/dt=-k51x5-k52x5-k53x5-k54x5-k56x52-k57x52+k65x6+k75x7+k85x8
dx6/dt=-k61x6-k62x6-k63x6-k64x6-k65x6-k67x62+k56x52+k76x7+k86x8
dx7/dt=-k71x7-k72x7-k73x7-k74x7-k75x7-k76x7-k78x72+k57x52+k67x62+k87x8
dx8/dt=-k81x8-k82x8-k83x8-k84x8-k85x8-k86x8-k87x8-k89x82+k78x72
dx9/dt=k89x82
方程中有多个缩合反应为表观二级(即平方),已上传图片供参考
k为动力学参数,k大于0,共33个
x为质量分数,x>0,九个x之和为1
已知数据如下:
温度        时间                    x1            x2           x3                   x4                     x5               x6             x7            x8            x9
430        0.00         0.0192         0.0236         0.1006         0.3284         0.1647         0.1327         0.1981         0.0319         0.0008
430        20.00         0.0287         0.0503         0.1313         0.3156         0.1391         0.1206         0.1755         0.0366         0.0022
430        40.00         0.0349         0.0858         0.1827         0.3058         0.1203         0.0805         0.1476         0.0384         0.0039
430        60.00         0.0423         0.1250         0.2086         0.2950         0.1005         0.0624         0.1180         0.0428         0.0053
本人想编写一个MATLAB程序实现以下功能:
设k初值均为0,求解方程中的33个参数,将求得的参数代入方程中,根据t=0min的数据求得t=20、40、60min的x计算值,将x计算值与x实验值比较,如果误差<5%,得到的参数就是最终参数,如果误差大于5%,就将得到的参数最为初值        循环上述计算,直到        误差<5%。       
哪位大侠能帮忙编写一下,小女子不胜感激呢~

动力学方程组参数求解问题
动力学方程组.jpg
回复此楼

» 猜你喜欢

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

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

最自私的女人

新虫 (初入文坛)

引用回帖:
2楼: Originally posted by 月只蓝 at 2014-09-02 14:26:53
参数估计问题或者叫常微分方程组参数拟合。参数太多,MATLAB求解估计困难不小,而且数据仅有4组。
建议你找有高版本1stOpt软件的专家帮你做一下,推荐本版块的专家dingd。

你好,能麻烦你帮我看一下我的下面这个程序为什么运行不了嘛?
function fourLumpK_VR440
clc;
clear all;
format long;
fourLumpData=[...
0        69.33        21.33        7.66        1.76
15        52.96        26.45        17.84        3.18
30        49.9        27.61        18.29        3.92
45        39.03        28.51        27.93        5
60        33.45        25.4        34.49        7.1
90        25.76        24.99        42.38        7.48
];
% vector of yields/%
Xexp=fourLumpData(2:6,2:5);
% oil residence time,unit: min
time= fourLumpData(2:6,1)';  

% initiate parameter for optimization
X0=fourLumpData(1,2:5);
%      k1      k2     k3      k4     k5  
K0 =[0.0014 0.0012 0.0005 0.0020 0.0013];
lb=0;
ub=inf;

%计时开始拟合
tic;

K=lsqnonlin(@objFun,K0,lb,ub,[],X0,Xexp,time);
% 拟合结果显示
disp(K)
% 计时结束
disp('耗时:');
toc;
% 保存拟合结果
save fourLumpK_VR440;

% 检验-----------------------------------------------
tf=max(time);
tspan=[0:1:tf];
[nr,nc]=size(Xexp);
XcalFinal=zeros(nr,nc);
for i=1:nr
        [t,Xcal]=ode45(@modelEquation,tspan,X0,[],K,tf);
    n=find(t>=time(i));
        m=n(1);
        %线性内插
        Xc=Xcal(m,-(Xcal(m,-Xcal(m-1,)/(t(m)-t(m-1))*(t(m)-time(i));
        XcalFinal(i,=Xc;
    save XcalFinal
end
objX = abs((XcalFinal - Xexp)./100).^2;
F=sum(sum(objX))^0.5;
error=(XcalFinal - Xexp)
avrError=sum(abs(error))/nr
relatError=(XcalFinal - Xexp)./Xexp*100
avrRelError=sum(abs(relatError))/nr

rou_2=1-sum((XcalFinal - Xexp).^2)./sum(Xexp.^2)
Fc_11=(sum(XcalFinal.^2)-sum((XcalFinal - Xexp).^2))/5./(sum((XcalFinal - Xexp).^2)/(5*4-5))

% 残差图-----------------------------------------------------------
figure(1);
clf;
hold on;
plot(XcalFinal(:,1),Xexp(:,1),'m*');
plot(XcalFinal(:,2),Xexp(:,2),'r*');
plot(XcalFinal(:,3),Xexp(:,3),'b*');
plot(XcalFinal(:,4),Xexp(:,4),'k*');
legend('尾油','蜡油','轻油','气+焦'); % 图形注解
xlabel('Xcal,%'); % x轴注解
ylabel('Xexp,%'); % y轴注解
% title('Xexp-Xcal'); % 图形标题
hold on;
x=0:0.1:80;
plot(x,x,'k-');

% y-t图形显示
figure(2);
clf;
hold on;
tf=max(time);
tspan=[0:1:tf];
[t,XcalFinal]=ode45(@modelEquation,tspan,X0,[],K,tf);
plot(t,XcalFinal(:,1),'m');
plot(t,XcalFinal(:,2),'r');
plot(t,XcalFinal(:,3),'b');
plot(t,XcalFinal(:,4),'k');
legend('尾油','蜡油','轻油','气+焦'); % 图形注解
xlabel('t/min'); % x轴注解
ylabel('X/%'); % y轴注解
% title('X--t'); % 图形标题
hold;

%绘制试验点
figure(2);
hold on;
plot(fourLumpData(:,1)',fourLumpData(:,2),'m*');
plot(fourLumpData(:,1)',fourLumpData(:,3),'r*');
plot(fourLumpData(:,1)',fourLumpData(:,4),'b*');
plot(fourLumpData(:,1)',fourLumpData(:,5),'k*');

% -----------------------------------------------------------------
function F = objFun(K,X0,Xexp,time)
tf=max(time);
tspan=[0:1:tf];
[nr,nc]=size(Xexp);
XcalFinal=zeros(nr,nc);
for i=1:nr
        [t,Xcal]=ode45(@modelEquation,tspan,X0,[],K,tf);
    n=find(t>=time(i));
        m=n(1);
        %线性内插
        Xc=Xcal(m,-(Xcal(m,-Xcal(m-1,)/(t(m)-t(m-1))*(t(m)-time(i));
        XcalFinal(i,=Xc;
end
objX = abs((XcalFinal - Xexp)./100).^2;
F=sum(sum(objX))^0.5;
error=(XcalFinal - Xexp)
avrError=sum(abs(error))/nr
avrErr=sum(avrError)/nc
relatError=(XcalFinal - Xexp)./Xexp*100
avrRelError=sum(abs(relatError))/nr
avrRelErr=sum(avrRelError)/nc
K

function dxdt = modelEquation(t,X,K,tf)
f1=-(K(1)+K(2)+K(3))*X(1);
f2= K(1)*X(1)-(K(4)+K(5))*X(2);
f3= K(2)*X(1)+K(4)*X(2);
f4= K(3)*X(1)+K(5)*X(2);
dxdt = [f1;f2;f3;f4];
8楼2014-09-04 20:20:33
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 10 个回答

月只蓝

主管区长 (职业作家)

【答案】应助回帖

感谢参与,应助指数 +1
参数估计问题或者叫常微分方程组参数拟合。参数太多,MATLAB求解估计困难不小,而且数据仅有4组。
建议你找有高版本1stOpt软件的专家帮你做一下,推荐本版块的专家dingd。
MATLAB、MS小问题、普通问题请发帖求助!时间精力有限,恕不接受无偿私信求助。
2楼2014-09-02 14:26:53
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

Cle_key

铁虫 (小有名气)

【答案】应助回帖

感谢参与,应助指数 +1
虽然楼主自称小女子。。。但肯定不帮

[ 发自手机版 http://muchong.com/3g ]
坚持就能成功
3楼2014-09-02 17:38:33
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

polypro

木虫 (正式写手)

【答案】应助回帖

感谢参与,应助指数 +1
按自由约束条件,具有唯一解的情况是 自由变量数=组分数-平衡相数+2,LZ的当前数据应该有很多不定解
泉涸,鱼相与处于陆,相呴以湿,相濡以沫,不如相忘于江湖。
4楼2014-09-03 08:20:26
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 318求调剂 +3 Yanyali 2026-03-15 3/150 2026-03-16 16:41 by houyaoxu
[考研] 070300化学学硕求调剂 +6 太想进步了0608 2026-03-16 6/300 2026-03-16 16:13 by kykm678
[考研] 285求调剂 +6 ytter 2026-03-12 6/300 2026-03-16 15:05 by njzyff
[考研] 326求调剂 +4 上岸的小葡 2026-03-15 5/250 2026-03-16 08:39 by Linda Hu
[考研] 26考研一志愿中国石油大学(华东)305分求调剂 +3 嘉年新程 2026-03-15 3/150 2026-03-15 13:58 by 哈哈哈哈嘿嘿嘿
[考研] 289求调剂 +5 步川酷紫123 2026-03-11 5/250 2026-03-15 00:45 by kruisytel
[考研] 265求调剂 +4 威化饼07 2026-03-12 4/200 2026-03-14 17:23 by userper
[考研] 一志愿哈工大材料324分求调剂 +5 闫旭东 2026-03-14 5/250 2026-03-14 14:53 by 木瓜膏
[考研] 211本,11408一志愿中科院277分,曾在中科院自动化所实习 +3 Losir 2026-03-12 3/150 2026-03-14 12:11 by 热情沙漠
[考研] 环境调剂 +6 晓看天暮看云 2026-03-09 6/300 2026-03-14 01:16 by JourneyLucky
[考研] 一志愿湖师大化学289求调剂 +6 XMCMM3.14159 2026-03-10 6/300 2026-03-14 00:28 by JourneyLucky
[考研] 279求调剂 +3 抓着星星的女孩 2026-03-10 3/150 2026-03-13 23:47 by userper
[考研] 材料工程调剂 +9 咪咪空空 2026-03-12 9/450 2026-03-13 22:05 by 星空星月
[考研] 求材料调剂 +5 隔壁陈先生 2026-03-12 5/250 2026-03-13 22:03 by 星空星月
[考研] 26调剂/材料/英一数二/总分289/已过A区线 +6 步川酷紫123 2026-03-13 6/300 2026-03-13 21:59 by 星空星月
[考研] (081700)化学工程与技术-298分求调剂 +12 11啦啦啦 2026-03-11 35/1750 2026-03-13 21:25 by JourneyLucky
[考研] 085600材料与化工 309分请求调剂 +7 dtdxzxx 2026-03-12 8/400 2026-03-13 14:43 by jxchenghu
[考研] 0856化工原理 +6 z2839474511 2026-03-10 6/300 2026-03-13 10:41 by houyaoxu
[考研] 08食品或轻工求调剂,本科发表3篇sci一区top论文,一志愿南师大食品科学与工程 +3 我是一个兵, 2026-03-10 3/150 2026-03-13 10:21 by Yuyi.
[考研] 085600 材料与化工 295 求调剂 +10 dream…… 2026-03-10 12/600 2026-03-12 13:46 by dream……
信息提示
请填处理意见