作业帮 > 数学 > 作业

matlab 微分方程求解作图

来源:学生作业帮 编辑:搜搜做题作业网作业帮 分类:数学作业 时间:2024/07/10 03:54:04
matlab 微分方程求解作图
这个方程怎么解,还有图象怎么出来~
dN1/dt=[r1*(1-N1/K1)-m*N2]*N1;
dN2/dt=[r2*(1-N2/K2)-n*N1]*N2;
其中r1=0.01,r2=0.05,K1=1000,K2=1000,m=9e-6,n=4e-5;
N1(0)=0,N2(0)=0.
matlab 微分方程求解作图
【1】用解析法
r1=0.01,r2=0.05,K1=1000,K2=1000,m=9e-6,n=4e-5
[N1,N2]=dsolve('DN1=(r1*(1-N1/K1)-m*N2)*N1','DN2=(r2*(1-N2/K2)-n*N1)*N2','N1,N2','N1(0)=0,N2(0)=0')
运行结果:
N1 =0
N2 =0
【2】数值法
function haha
clear all
clc
N0 = [0 0];%初值不为0时,图形有变化
[t,N] = ode45(@f,[0:0.2:1],N0)
plot(t,N)
function dNdt = f(t,N)
r1=0.01;r2=0.05;K1=1000;K2=1000;m=9e-6;n=4e-5;
dN1dt=(r1*(1-N(1)/K1)-m*N(2))*N(1);
dN2dt=(r2*(1-N(2)/K2)-n*N(1))*N(2);
dNdt = [dN1dt;dN2dt];
运行结果:
t =
0
0.2000
0.4000
0.6000
0.8000
1.0000
N =
0 0
0 0
0 0
0 0
0 0
0 0
再检查一下方程或初始条件吧,两种方法结果一样.
如果初值不为0,N的结果不是0.