MATLAB爱好者论坛-LabFans.com

MATLAB爱好者论坛-LabFans.com (https://www.labfans.com/bbs/index.php)
-   MATLAB论坛 (https://www.labfans.com/bbs/forumdisplay.php?f=6)
-   -   [MATLAB数学相关] 求助:ode45数值积分的问题 (https://www.labfans.com/bbs/showthread.php?t=8071)

liushuiwuxin 2009-05-04 11:36

求助:ode45数值积分的问题
 
各位大侠,我在用ode45解常微分方程的时候遇到了这样一个问题,一直没想到解决的办法,还敬请各位高手能够帮帮忙,指点一二,看能不能把这个问题解决掉。小弟在此先行拜谢啦!!
问题是这样的:我要求解的微分方程方程是类似这样的
q=[a b c d e f g h k ]经过一些符号计算后得出
dx2=2*cos(a)-sin(c)+cos(b)*sin(g)-k (其中q是以时间t为变量的。dx2也是关于时间t的微分形式。)当然是有九个未知数,有九个方程了,形式都差不多。现在我想用ode45来进行数值积分求解,可是想ode45只能解类似这样的dX3=2*cos(q(1))-sin(q(3))+cos(q(2))*sin(q(6))-q(9)形式的方程。请问可以怎么办啊?由于dx2=2*cos(a)-sin(c)+cos(b)*sin(g)-k 是同过前面的符号计算得出的结果,所以不能自己重新编写。请问有什么方式可以把dx2的形式换成dX3的形式吗?或有其他的什么方法可以解决这个问题吗?再次拜谢各位了!!

laosam280 2009-05-04 12:27

回复: 求助:ode45数值积分的问题
 
你就把9个未知数写成x=(x(1) x(2) x(3) x(4) x(5) x(6) x(7) x(8) x(9))
写进M文件里
然后调用[x,t]=ode45('your_function','time initiation','x initiation',...)

liushuiwuxin 2009-05-04 15:56

回复: 求助:ode45数值积分的问题
 
非常感谢楼上的热心帮助。这样解决我当然也是有想过。可是关键问题是dx2=2*cos(a)-sin(c)+cos(b)*sin(g)-k 是我通过前面的符号计算的得到了。所以也就不能“把9个未知数写成x=(x(1) x(2) x(3) x(4) x(5) x(6) x(7) x(8) x(9))写进M文件里”。也因此才一直没找到好的方法解决。不知还有没有其他的方法解决呢?


所有时间均为北京时间。现在的时间是 12:17

Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.