matlab微分方程画图

求二阶微分方程:dy(2)+t*dy(1)-exp(t)*y=3*sin(2*t)t=0时,y=1,dy(1)=-1在t[0,2]时的数值图像具体函数怎么写?... 求二阶微分方程:
dy(2)+t*dy(1)-exp(t)*y=3*sin(2*t)
t=0时,y=1,dy(1)=-1
在t[0,2]时的数值图像
具体函数怎么写?
展开
 我来答
二中混过
2013-04-12 · TA获得超过1326个赞
知道小有建树答主
回答量:473
采纳率:50%
帮助的人:574万
展开全部

function zd0412

function dy=odefun(t,y)

dy=[y(2);

    3*sin(2*t)+exp(t)*y(1)-t*y(2)];

end

tspan=[0,2];

y0=[1;-1]

[t,y]=ode45(@odefun,tspan,y0);

plot(t,y(:,1))

end

dukinkin
2014-09-10 · TA获得超过1.3万个赞
知道大有可为答主
回答量:2444
采纳率:90%
帮助的人:921万
展开全部

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

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


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,

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

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

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式