回 帖 发 新 帖 刷新版面

主题:用matlb解决一阶微分方程组的问题

现在遇到一阶方程组的问题
dx/dt=x*(r-my)
dy/dt=y*(-d+ux)
怎么用matlab实现
求取对应的x,y值
现在急需
谢谢了

回复列表 (共5个回复)

沙发

>> syms r m d u t
>> dsolve('Dx=x*(r-m*y)','Dy=y*(-d+u*x)','t')

板凳

谢谢你了
你的syms我有点看不懂
还是很谢谢你了
我用另一种方法解决的
[t,m]=ode45(@ruorouqiangshi,[t0,tn],m0)
想问下
调用函数function  dm=ruorouqiangshi(t,m)
是不是不能把那些r,m,n等参数跟t,m作为输入参数阿
因为我的那两个式子中的参数要从外面输入
所以要把他们作为输入参量


3 楼

符号求解,和数值求解两种方法。

4 楼

[quote]谢谢你了
你的syms我有点看不懂
还是很谢谢你了
我用另一种方法解决的
[t,m]=ode45(@ruorouqiangshi,[t0,tn],m0)
想问下
调用函数function  dm=ruorouqiangshi(t,m)
是不是不能把那些r,m,n等参数跟t,m作为输入参数阿
因为我的那两个式子中的参数要从外面输入
所以要把他们作为输入参量


[/quote]
你给的式子中,r m n t 未赋值,syms 将之定义,syms 是一基本而重要的函数,必须掌握
其他问题要具体问题具体分析!

5 楼


问题已经解决了
也就是可以在ode45('','',m0,[],p,q..) 
而在弱肉强食函数中加入以参数flag就行了
即ruorouqiangshi(t,m,flag,p,q)
在这里不得不说
dsolve()不一定能解除所有的解析解 
可能会空数组
当然还有Euler折线法、Runge-Kutta 
大家可以试试的
谢谢了

我来回复

您尚未登录,请登录后再回复。点此登录或注册