24小时热门版块排行榜    

CyRhmU.jpeg
查看: 1786  |  回复: 7

yupeifeng

金虫 (小有名气)

[求助] matlab Rung-kutta算法

由于做论文,做动力学这一块,有动力学模型,有几组浓度随时间变化的曲线数据,来求动力学模型里的参数,进而得到动力学方程。
数据是:(c,t)=(0,0.75)(2,0.7)(3,0.65)(4,0.64)(5,0.62)
动力学模型是:-dc/dt=k(c-c‘),c'指平衡浓度也就是t=5时的值0.62,采用rung-kutta算法在matlab中求出k进而得到此方程。希望得到高手的指点,不胜感激!我的邮箱是yan.feng21@163.com
回复此楼

» 本帖附件资源列表

  • 欢迎监督和反馈:小木虫仅提供交流平台,不对该内容负责。
    本内容由用户自主发布,如果其内容涉及到知识产权问题,其责任在于用户本人,如对版权有异议,请联系邮箱:xiaomuchong@tal.com
  • 附件 1 : matlab.docx
  • 2012-06-18 21:28:46, 134.98 K

» 猜你喜欢

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

憧憬未来
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
2楼2012-06-18 21:57:24
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

ymh900423

木虫 (正式写手)

资料不错资料不错资料不错资料不错
胜利就在前方
3楼2012-06-18 22:12:57
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

dingd

铁杆木虫 (职业作家)

【答案】应助回帖

感谢参与,应助指数 +1
1stOpt求解:
CODE:
Variable t,c;
ODEFunction c'=-k*(c-0.62);
Data;
0,0.75
2,0.7
3,0.65
4,0.64
5,0.62

参数                  最佳估算
--------------------        -------------
k        0.414791664003293
4楼2012-06-19 08:44:43
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

yupeifeng

金虫 (小有名气)

引用回帖:
4楼: Originally posted by dingd at 2012-06-19 08:44:43
1stOpt求解:

Variable t,c;
ODEFunction c'=-k*(c-0.62);
Data;
0,0.75
2,0.7
3,0.65
4,0.64
5,0.62


参数                  最佳估算
--------------------        -------------
k        0.414791664003293...

最好能用Rung-kutta算法来求,谢谢啦!
憧憬未来
5楼2012-06-19 09:34:18
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

z萝莉

银虫 (小有名气)

【答案】应助回帖

★ ★
感谢参与,应助指数 +1
yupeifeng: 金币+2, 有帮助 2012-06-19 11:16:23
Sample TextSample Text
我是这么算的,先把公式化成-1*d(c-c')/dt=k(c-c');d(c-c')/(c-c')=-1*k*dt;
ln(c-c')=-k*t;c=exp(-k*t)+c';然后利用matlab非线性最小二乘法进行拟合,方法如下先建立一个名为jack的函数,内容
function  c=jack(k,t)
c=exp(-k*t)+0.62;
然后在matlab主窗口中输入t=[0,2,3,4,5];
c=[0.75,0.7,0.65,0.64,0.62];
[xx,res]=lsqcurvefit(@jack,[0],t,c)
结果为xx=1.2359
res=0.7571
我把拟合的函数与原数据进行对比发现t=0的点不太符合,其他的符合的非常好,误差虽然是0.7571但是主要是t=0点处的误差。下图是对比图其中红色是拟合出来的图。


做好自己该做的事
6楼2012-06-19 10:00:56
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

csgt0

荣誉版主 (著名写手)

彩色挂图

【答案】应助回帖

感谢参与,应助指数 +1
function Untitled10
t0=[0 2 3 4 5];
c0=[0.75 0.7 0.65 0.64 0.62];
[a,b]=ode45(@kfcn,t0,0.75)
polytool(c0,b)
corrcoef(c0,b)
end

function dc=kfcn(t,c)
dc=-(c-0.62);
end

计算得到斜率为0.68左右,相关系数0.8879
showmethemoney
7楼2012-06-19 11:50:09
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

flingbaby

铁杆木虫 (著名写手)

小虫子

这个问题解决了吗?好像前面那些解决方法有些不妥啊 ,不是RungKutta法啊
让我早点毕业吧!!
8楼2014-09-28 16:37:20
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 yupeifeng 的主题更新
信息提示
请填处理意见