24小时热门版块排行榜    

查看: 2205  |  回复: 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的回帖

月只蓝

主管区长 (职业作家)

【答案】应助回帖

感谢参与,应助指数 +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的回帖

最自私的女人

新虫 (初入文坛)

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

因为论文需要得用MATLAB的,我也知道很难,有很多解,只是想得到个稍微好点的解,我就是不知道判断误差那一部分该怎么编写,我现在一个能稍微计算下的程序呢
5楼2014-09-03 10:16:34
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

最自私的女人

新虫 (初入文坛)

引用回帖:
3楼: Originally posted by Cle_key at 2014-09-02 17:38:33
虽然楼主自称小女子。。。但肯定不帮

赠人玫瑰,手有余香的亲
6楼2014-09-03 10:17:13
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

最自私的女人

新虫 (初入文坛)

引用回帖:
4楼: Originally posted by polypro at 2014-09-03 08:20:26
按自由约束条件,具有唯一解的情况是 自由变量数=组分数-平衡相数+2,LZ的当前数据应该有很多不定解

我也知道有很多不定解呢,我想在这些不定解中找到使得x计算值与x实验值相差最小的那一组,请问你会不会编写误差判断这一部分啊?我自己有个能计算的程序呢
7楼2014-09-03 10:18:51
已阅   回复此楼   关注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的回帖

最自私的女人

新虫 (初入文坛)

引用回帖:
8楼: Originally posted by 最自私的女人 at 2014-09-04 20:20:33
你好,能麻烦你帮我看一下我的下面这个程序为什么运行不了嘛?
function fourLumpK_VR440
clc;
clear all;
format long;
fourLumpData=;
% vector of yields/%
Xexp=fourLumpData(2:6,2:5);
% oil residen ...

发现有乱码哎,我上传个附件给你,麻烦你帮我看一下吧。

» 本帖附件资源列表

  • 欢迎监督和反馈:小木虫仅提供交流平台,不对该内容负责。
    本内容由用户自主发布,如果其内容涉及到知识产权问题,其责任在于用户本人,如对版权有异议,请联系邮箱:xiaomuchong@tal.com
  • 附件 1 : fourLumpK_VR440.m
  • 2014-09-04 20:22:37, 3.21 K
9楼2014-09-04 20:22:41
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

恋雨zz

新虫 (初入文坛)

有人解出了么
10楼2015-05-02 15:10:19
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 最自私的女人 的主题更新
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 材料专硕306英一数二 +4 z1z2z3879 2026-03-16 6/300 2026-03-16 19:38 by z1z2z3879
[考研] 化学调剂0703 +8 啊我我的 2026-03-11 8/400 2026-03-16 17:23 by 我的船我的海
[考研] 材料与化工求调剂 +3 为学666 2026-03-16 3/150 2026-03-16 15:09 by 加号+
[考研] 一志愿华中师范071000,325求调剂 +6 RuitingC 2026-03-12 6/300 2026-03-16 14:50 by 可淡不可忘
[考研] 304求调剂 +6 小熊joy 2026-03-14 6/300 2026-03-16 12:59 by Iveryant
[考研] 中科大材料专硕319求调剂 +3 孟鑫材料 2026-03-13 3/150 2026-03-14 18:10 by houyaoxu
[考研] 【0703化学调剂】-一志愿华中师范大学-六级475 +5 Becho359 2026-03-11 5/250 2026-03-14 11:35 by 哦哦123
[考研] 266求调剂 +4 学员97LZgn 2026-03-13 4/200 2026-03-14 08:37 by zhukairuo
[考研] 环境调剂 +6 晓看天暮看云 2026-03-09 6/300 2026-03-14 01:16 by JourneyLucky
[考研] 招收0805(材料)调剂 +3 18595523086 2026-03-13 3/150 2026-03-14 00:33 by 123%、
[考研] 26考研调剂 +3 ying123. 2026-03-10 3/150 2026-03-14 00:18 by JourneyLucky
[考研] 279求调剂 +3 Dizzy123@ 2026-03-10 3/150 2026-03-13 23:02 by JourneyLucky
[硕博家园] 085600 260分求调剂 +3 天空还下雨么 2026-03-13 5/250 2026-03-13 18:46 by 天空还下雨么
[考研] 材料专硕350 求调剂 +4 王金科 2026-03-12 4/200 2026-03-13 16:02 by ruiyingmiao
[考研] 一志愿山大07化学 332分 四六级已过 本科山东双非 求调剂! +3 不想理你 2026-03-12 3/150 2026-03-13 14:18 by JourneyLucky
[考研] 070303一志愿西北大学学硕310找调剂 +3 d如愿上岸 2026-03-13 3/150 2026-03-13 10:43 by houyaoxu
[考研] 材料专硕274一志愿陕西师范大学求调剂 +4 薛云鹏 2026-03-13 4/200 2026-03-13 10:40 by 学员8dgXkO
[考研] 290求调剂 +3 ADT 2026-03-13 3/150 2026-03-13 10:19 by peike
[考研] 化工学硕306求调剂 +9 42838695 2026-03-12 9/450 2026-03-13 10:16 by houyaoxu
[考研] 化工0817调剂 +8 灿若星晨 2026-03-10 8/400 2026-03-10 22:44 by 星空星月
信息提示
请填处理意见