huzhaolin 发表于 2006-12-22 22:53

一道微分方程的难题!

x''+a*y''+c*x'+d*(x*x+y*y)+e=0;
y''+k*x''+f*y'+g*y+h=0;
用四阶Runge-Kutta法解此微分方程组,matlab程序如何表示该方程组?我令u1=x,u2=y,u3=x',u4=y',来表示方程不行.大家有什么好的方法来解决这个问题吗?
u=;
du=;
du=[u3;
      u4;
        ....;(不知怎么表示啊)
       ....;
   ]

flybaly 发表于 2006-12-23 12:16

建议斑主置顶帖中加入下面一条提示:
先自己在论坛里面查找类似的问题与解答,再发问。

huzhaolin 发表于 2006-12-23 13:05

楼上的兄弟提出了一些方法,可是我用到这个方程组里还是不能解决这个问题,所以就只好再问了,不过依然谢谢!不知你有什么好的建议?

flybaly 发表于 2006-12-23 20:09

原帖由 huzhaolin 于 2006-12-23 13:05 发表
楼上的兄弟提出了一些方法,可是我用到这个方程组里还是不能解决这个问题,所以就只好再问了,不过依然谢谢!不知你有什么好的建议?
举例:
x''+x'+x*x=0
y''+x''+y*x=0

u=
质量阵:
M=[1 0 0 0
0 1 0 0
0 0 1 0
0 1 0 1]
K=[0 1 0 0
x 1 0 0
0 0 0 1
y 0 0 0]

M*du=K*u
即:du=inv(M)*K*u
这样就可以编制相应的ode45了

哎,我可是在此文中已经求了一次了,不知道是我写得不清楚,还是我的想法有错误。
请指正!
http://forum.vibunion.com/thread-35208-1-1.html

gghhjj 发表于 2007-1-3 06:27

实在不行就自己把方程一个个写出来
你这个方程又不复杂

homage79 发表于 2007-3-25 19:40

如果用Fortran求解大家有没有用过,因为matlab求解速度比较慢,我用Fortran求解二阶微分方程组经常出现发散的情况,不知道各位可曾经遇到?

suffer 发表于 2007-3-26 11:04

原帖由 homage79 于 2007-3-25 19:40 发表
如果用Fortran求解大家有没有用过,因为matlab求解速度比较慢,我用Fortran求解二阶微分方程组经常出现发散的情况,不知道各位可曾经遇到?

你选用的是什么算法?
fortran库中有不少方法可以求解

当然对于很多问题还是要自己编程的,库中的算法适用性一般

gghhjj 发表于 2007-3-30 03:24

原帖由 homage79 于 2007-3-25 19:40 发表
如果用Fortran求解大家有没有用过,因为matlab求解速度比较慢,我用Fortran求解二阶微分方程组经常出现发散的情况,不知道各位可曾经遇到?

原因很多,须要看具体方程而定
页: [1]
查看完整版本: 一道微分方程的难题!