Labfans是一个针对大学生、工程师和科研工作者的技术社区。 | 论坛首页 | 联系我们(Contact Us) |
![]() |
![]() |
#1 |
初级会员
注册日期: 2009-03-27
年龄: 38
帖子: 3
声望力: 0 ![]() |
![]()
各位大侠,我在用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的形式吗?或有其他的什么方法可以解决这个问题吗?再次拜谢各位了!! |
![]() |
![]() |
![]() |
#2 |
高级会员
注册日期: 2008-11-07
住址: 湖南长沙
帖子: 233
声望力: 21 ![]() |
![]()
你就把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',...)
__________________
坚持就是胜利,努力就有奇迹。 |
![]() |
![]() |
![]() |
#3 |
初级会员
注册日期: 2009-03-27
年龄: 38
帖子: 3
声望力: 0 ![]() |
![]()
非常感谢楼上的热心帮助。这样解决我当然也是有想过。可是关键问题是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文件里”。也因此才一直没找到好的方法解决。不知还有没有其他的方法解决呢?
|
![]() |
![]() |