MATLAB 用ode45解方程组?

作者&投稿:政竹 (若有异议请与网页底部的电邮联系)
matlab用ode45求解微分方程组~

这个方程要解出来还要初始条件吧
不妨设(x(0),y(0))=(A,B);
还有用ode45只能得到数值解,不能给出解析式表达
那么先建立一个函数文件
test_fun.m
function dx=tsst_fun(x,t)
dx(1)= c-b*x(1)-w*x(1)*x(2);
dx(2)=w*x(1)*x(2)-(b+m)*x(2);
那么调用ode45
x0=(0,0);
t0=0:0.01:10;
;%根据你所想要的求得值设定t0,间隔是任意的,与求解所用的步长无关,
[x,t]=ode45(@test_fun,t0,x0);
得到了
这样可以么?

建立myfun.m文件,把以下代码复制进去
function dx=myfun(t,x)dx=zeros(2,1);dx(1)=4*x(1)+x(2).^2;dx(2)=8*x(1)+2*x(2).^2+5*x(2);运行以下代码
t=[0 0.1];
x0=[1 1];
[tt,xx]=ode45('myfun',t,x0);
plot(tt,xx(:,1),'-',tt,xx(:,2),'-.')%画出两者图像

用ode45求解初值问题的常微分方程,可以按下列步骤编程计算。

1、建立已知的常微分方程的自定义函数

func=@y/x-2*y^2

2、确定初值,y0=0.0001

3、确定x变化范围,xspan=[0.0001,2.9999]

4、使用ode45函数求解,得到x,y的数值解

5、使用plot函数绘制该微分方程的数值解图形

6、运行结果