MATLAB求微分方程组 并作图

dx/dt=a*b*c(1-c/y)
dy/dt=d*m(1-n*x/y+p)
其中,a,b,c,d,m,n,p都为常数。
且,a,b,c,d,m都是正整数,0<=n和p<=1;
a=?时可以使两式相等?

由于方程比较复羡腔杂,解析解不能用初等函数表示

只是要获得图像的话,用数值计算的办法可能更方便


fun=@(t,y) 1.44*(10^9)*(1-y).*exp(-109170./(8.314*t));

[T,Y] = ode23t(fun,500:600,0);

DY=fun(T,Y);

AX=plotyy(T,Y,T,DY);

set(get(AX(1),'Xlabel'),'String','T');

set(get(AX(1),'Ylabel'),'String','\alpha');

set(get(AX(2),'Ylabel'),'String','d\alpha/dT');


T是自变量,Y是变量也就是alpha

DY是,Y对T的导数

得到得到结果如下图



从图像看出,在T=500时,alpha=0

大概在T=600时,d(alpha)/dT趋向于0,alpha趋向于1不变

但是由于是数值解,在T不断增加的时候,d(alpha)/dT会在0附近振荡

所以T的取值不宜取得太大,这里取500到600之间

而采用ode23t函数,减少振荡


实际上,当T增大到一定值的时候,d(alpha)/dT趋向于0,

函数趋向于保持恒定值,所以后续的兄哪衫振荡是不合缓庆理的

取一定的区间如上图,已经可以很好地得到函数的变化趋势了


你是要顷州画图还是求a=?时可以使两式相等?另外你说两式相等是说x(t) = y(t)还是dx/dt = dy/dt?
dsolve可以解微分方简乎如程组,ode45可以数值地解微分方程组,你需要数值解还是拦启解析解?