24小时热门版块排行榜    

CyRhmU.jpeg
查看: 3653  |  回复: 17
本帖产生 1 个 数学EPI ,点击这里进行查看
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

wodaifei

银虫 (小有名气)

[交流] 【求助】用matlab最优化方法进行参数拟合已有7人参与

各位学哥、学姐,大侠们!!
    小弟最近遇到一个难题:具体为 dyA/dt=-(k1+k2+k3+k4)yA
                                                         dyB/dt=k1yA-(k5+k6+k7)yB
                                                         dyC/dt=k2yA+k5yB-(k8+k9)yC
                                                         dyD/dt=k3yA+k6yB+k8yC
                                                         dyE/dt=k4yA+k7yB+k9yC
其中y为各组分的质量分率; k为反应速率常数
其中实验数据为:反应时间        A        B        C        D        E
                     0.833       0.0632     0.699       0.187    0.0256      0.0220
                             1.25        0.055        0.722        0.199    0.0305      0.0281
                            2.5         0.0502        0.769        0.201   0.0328        0.031
根据实验数据希望能用最优化法回归出其中的九个参数(最好能用matlab),小弟刚接触这方面的知识,遇到了困难,怎么也估计不出来,希望各位学哥、学姐,大侠们能给小弟指点一下!!跪谢!!!不胜感激!!!!!1真的把小弟难住了。。
回复此楼

» 本帖已获得的红花(最新10朵)

» 猜你喜欢

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

要想拥有一切,就要让自己变得足够优秀!!!
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

xiaohsu2006

木虫 (著名写手)


小木虫(金币+0.5):给个红包,谢谢回帖
引用回帖:
2楼: Originally posted by leedobb at 2011-03-21 15:36:02:
% 哦,你的题目是这个啊,
% 这只能依靠数值解,matlab肯定没有现成的程序吧。
%
% 你这样做吧。构造一个能量函数(其实就是最小二乘法啦)
%
% F =  (yA(t2)- YYA(t2,k1,k2,k3...,k9) ) ^ 2
% ..嗯, ...

你好,我也是类似的问题,我想问一下你这个算法的原理是什么,思路是怎么样的?构造能量函数我明白,目的是让它最小,那么开始是不先给k赋一组初值,那么接下来是怎么做的?
8楼2011-12-10 20:27:56
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

xiaohsu2006

木虫 (著名写手)

引用回帖:
7楼: Originally posted by dingd at 2011-12-05 10:57:31:
这种动力学微分方程拟合,1stOpt很简单好使啊!
[code]
Variable T, yA, yB, yC, yD, yE;
ODEFunction yA'=-(k1+k2+k3+k4)*yA;
            yB'=k1*yA-(k5+k6+k7)*yB;
            yC'=k2*yA+k5*yB-(k8+k9)* ...

你好,你这是用什么拟合的,matlab吗?拟合的算法是根据什么的?请赐教,不胜感激!
9楼2011-12-10 20:29:47
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

xiaohsu2006

木虫 (著名写手)


小木虫(金币+0.5):给个红包,谢谢回帖
引用回帖:
7楼: Originally posted by dingd at 2011-12-05 10:57:31:
这种动力学微分方程拟合,1stOpt很简单好使啊!
[code]
Variable T, yA, yB, yC, yD, yE;
ODEFunction yA'=-(k1+k2+k3+k4)*yA;
            yB'=k1*yA-(k5+k6+k7)*yB;
            yC'=k2*yA+k5*yB-(k8+k9)* ...

t/min        y1        y2        y3        y4
2.5                3.8                2.5                0.5                0.5
5                5.8                3.3                1.0                0.6
7.5                5.8                2.7                1.2                0.7
10                5.4                2.3                1.2                0.8
15                5.7                2.4                1.2                1.3
30                8.5                2.6                2.3                2.4
模型方程
Y1’=x*k4*y5*y7+k6*y5+k10*y2*y7-0.1942*k10*y1*y4;
Y2’=x*k3*y5*y7+k5*y5-k10*y2*y7+0.1942*k10*y1*y4-k11*y2*y4+2.7624E-6*k11*y3*y7;
Y3’=k7*y5+k11*y2*y4-2.7624E-6*k11*y3*y7;
Y4’=(x-z+y/2)*k3*y5*y7+(2x-z+y/2)*k4*y5*y7+k8*y5+k10*y2*y7-0.1942*k10*y1*y4-3*k11*y2*y4+8.2872E-6*k11*y3*y7;
Y5’=k2*y7-k3*y5*y7-k4*y5*y7-k9*y5;
Y6’=-k2*y6;
Y7’=-(2x-z)*k4*y5*y7-k10*y2*y7+0.1942*k10*y1*y4+k11*y2*y4-2.7624E-6*k11*y3*y7;
其中,自变量为t,因变量为y1,y2,y3,y4,y5,y6,y7,参数为x,y,z,k2,k3,k4,k5,k6,k7,k8,k9,k10,k11
想回归出其中的模型参数,为什么我的在1stopt上运行不出结果啊,能帮试一下吗?非常感谢!下面是我的程序:
Parameter x,y,z,k2,k3,k4,k5,k6,k7,k8,k9,k10,k11;
SharedModel;
Variable t,y(1:7);
Function   Y1'=x*k4*y5*y7+k6*y5+k10*y2*y7-0.1942*k10*y1*y4;
Y2'=x*k3*y5*y7+k5*y5-k10*y2*y7+0.1942*k10*y1*y4-k11*y2*y4+2.7624E-6*k11*y3*y7;
Y3'=k7*y5+k11*y2*y4-2.7624E-6*k11*y3*y7;
Y4'=(x-z+y/2)*k3*y5*y7+(2x-z+y/2)*k4*y5*y7+k8*y5+k10*y2*y7-0.1942*k10*y1*y4-3*k11*y2*y4+8.2872E-6*k11*y3*y7;
Y5'=k2*y7-k3*y5*y7-k4*y5*y7-k9*y5;
Y6'=-k2*y6;
Y7'=-(2x-z)*k4*y5*y7-k10*y2*y7+0.1942*k10*y1*y4+k11*y2*y4-2.7624E-6*k11*y3*y7;
Data;
//t, y1, y2, y3, y4
2.5                3.8                2.5                0.5                0.5
5                5.8                3.3                1.0                0.6
7.5                5.8                2.7                1.2                0.7
10                5.4                2.3                1.2                0.8
15                5.7                2.4                1.2                1.3
30                8.5                2.6                2.3                2.4

[ Last edited by xiaohsu2006 on 2011-12-12 at 20:14 ]
11楼2011-12-12 20:04:19
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

xiaohsu2006

木虫 (著名写手)


小木虫(金币+0.5):给个红包,谢谢回帖
引用回帖:
12楼: Originally posted by dingd at 2011-12-12 21:21:52:
下面是正确代码,待求参数数目比数据行数还多,解估计不是唯一的,你自己用1stOpt慢慢跑下吧:
[code]
Parameter x,y,z,k2,k3,k4,k5,k6,k7,k8,k9,k10,k11;
Variable t,y(1:4);
ODEFunction   Y1'=x*k4*y5*y7+ ...

迭代数: 0
计算用时(时:分:秒:微秒): 21:14:09:533
均方差(RMSE): 1.23760521438246
残差平方和(SSE): 9.19
相关系数(R): 0
相关系数之平方(R^2): 0
决定系数(DC): -2.56893203883495
卡方系数(Chi-Square): 6.3
F统计(F-Statistic): 0

参数        最佳估算
----------        ---------
我的结果显示这样,R显示0,这是不没运行完,要那么久吗?太谢谢你了。
我用的破解版的,能算吗?

[ Last edited by xiaohsu2006 on 2011-12-12 at 21:49 ]
13楼2011-12-12 21:47:21
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

xiaohsu2006

木虫 (著名写手)


小木虫(金币+0.5):给个红包,谢谢回帖
内容已删除
15楼2011-12-12 22:03:00
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 wodaifei 的主题更新
普通表情 高级回复(可上传附件)
信息提示
请填处理意见