作业帮 > 综合 > 作业

Matlab求解一个微分方程并画图

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/14 05:08:44
Matlab求解一个微分方程并画图

谢啦,另外这个方程要离散应该怎么离散啊~


由于方程比较复杂,解析解不能用初等函数表示
只是要获得图像的话,用数值计算的办法可能更方便

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,
函数趋向于保持恒定值,所以后续的振荡是不合理的
取一定的区间如上图,已经可以很好地得到函数的变化趋势了