主题:用matlb解决一阶微分方程组的问题
flei123
[专家分:0] 发布于 2008-01-11 21:05:00
现在遇到一阶方程组的问题
dx/dt=x*(r-my)
dy/dt=y*(-d+ux)
怎么用matlab实现
求取对应的x,y值
现在急需
谢谢了
回复列表 (共5个回复)
沙发
Guassfans [专家分:4090] 发布于 2008-01-12 11:52:00
>> syms r m d u t
>> dsolve('Dx=x*(r-m*y)','Dy=y*(-d+u*x)','t')
板凳
flei123 [专家分:0] 发布于 2008-01-12 16:55:00
谢谢你了
你的syms我有点看不懂
还是很谢谢你了
我用另一种方法解决的
[t,m]=ode45(@ruorouqiangshi,[t0,tn],m0)
想问下
调用函数function dm=ruorouqiangshi(t,m)
是不是不能把那些r,m,n等参数跟t,m作为输入参数阿
因为我的那两个式子中的参数要从外面输入
所以要把他们作为输入参量
3 楼
zhouxuewu11 [专家分:430] 发布于 2008-01-14 15:57:00
符号求解,和数值求解两种方法。
4 楼
Guassfans [专家分:4090] 发布于 2008-01-14 22:57:00
[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 楼
flei123 [专家分:0] 发布于 2008-01-17 12:46:00
问题已经解决了
也就是可以在ode45('','',m0,[],p,q..)
而在弱肉强食函数中加入以参数flag就行了
即ruorouqiangshi(t,m,flag,p,q)
在这里不得不说
dsolve()不一定能解除所有的解析解
可能会空数组
当然还有Euler折线法、Runge-Kutta
大家可以试试的
谢谢了
我来回复