注册 登录
编程论坛 Matlab

求助:龙格库塔法解微分方程组

redbird 发布于 2007-11-20 11:05, 14174 次点击
请问如何用龙格库塔法求解下面的微分方程组:
dx1/dt=3*x1*x2+x1
dx2/dt=8*x2*x1+x2
t的范围从0-6
初值:x2(6)=0.6*x1(6)
x1(0)=0.8*x2(0)
可以通过龙哥库塔方法求数值解吗,可以的话如何解,不可以的话有什么别的方法吗?
谢谢了!
8 回复
#2
seidel2007-11-20 22:03

可以使用ode45()函数来求解,应用这个函数解这类微分方程很简单。
ode45是4-5阶龙格库塔法,ode23是2-3阶龙格库塔法。

#3
redbird2007-11-21 09:52

非常感谢!
我知道用ode45,但是ode45对初值的要求应该是给个具体的数值吧,而方程里的初值是一个边界条件,我就是不明白怎么去用初值。

#4
huruigege2007-11-22 09:14
你的这个方程能解吗?怀疑啊。
你那种方程的解都可能不存在或者多解。

寻求数学方法求解吧。
#5
huruigege2007-11-26 14:26
可以通过循环求解得到,如果不想手动解该方程的话。

假设x1(0)=1,得到x(2)的值,从而得到初值,将初值代入方程求解得到x1(6)和x2(6),将两者相除,看是否为0.6。一直搜索,直到找到满足该条件的初值,从而得到该条件下的方程的数值解。
#6
槛外人_2372008-04-08 14:32
回复 1# 的帖子
你这不是微分方程的初值问题,不能用龙格库塔法,是边界值问题,应该用打靶法或差分法
#7
同同2008-05-20 16:10
可以使用ode45()函数来求解,应用这个函数解这类微分方程很简单。ode45是4-5阶龙格库塔法,ode23是2-3阶龙格库塔法。
#8
syb666262011-06-19 16:54
我也遇到了这种情况,不知道怎么解决。我准备用离散循环的办法去做,但是方程太多,不知道行不行,等待楼主的消息!
1