matlab解方程

来源:百度知道 编辑:UC知道 时间:2024/05/15 00:17:55
在使用解析法解微分方程时遇到错误!请问其解决方法?
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)=100,N2(0)=100')

错误代码是:??? Error using ==> dsolve
There are more ODEs than variables.
请高人帮忙解决!!谢谢

那就用数值解法吧。

function hahaha
[t,N] = ODE23t(@myfun,[0 1000],[100 100])
plot(t,N)
function dN=myfun(t,N)
r1=0.01,r2=0.05,K1=1000,K2=1000,m=9e-6,n=4e-5;
dN1=(r1*(1-N(1)/K1)-m*N(2))*N(1);
dN2=(r2*(1-N(2)/K2)-n*N(1))*N(2);
dN=[dN1;dN2]

运行结果:
t =

1.0e+003 *

0
0.0008
0.0025
0.0041
0.0062
0.0119
0.0175
0.0262
0.0334
0.0407
0.0479
0.0552
0.0624
0.0697
0.0770
0.0870
0.1021
0.1127
0.1232
0.1338
0.1444
0.1575
0.1706
0.1887
0.2068
0.2344
0.2692
0.3208
0.3978
0.4978
0.5978
0.6978
0.7978
0.8978
1.0000

N =

100.0000 100.0000
100.6680 103.4749
102.0064 110.6275