作业帮 > 综合 > 作业

请给出求解微分方程的MATLAB命令

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/26 08:47:38
请给出求解微分方程的MATLAB命令
y^(3) + t*y1*y2 + t^2*(y1)*y^2 =e^(-ty) ,y(0)=2 ,y1(0)=y2(0)=0
并且绘制出y(t)的曲线.
【上式中 ,y(3)中(3)的位置我从书上看处于幂的位置.但是为什么要加一个括号啊?所以我下不了手】
麻烦大家帮我个忙..
谢谢wacs5耐心解释.
y1 ,y2 书上没加括号的.只有y(3)加了括号的.
syms t y; %声明符号变量
dsolve('D3y+t*y1*y2+t^2*y1*y2^2=exp(-t*y)','y(0)=2','Dy(0)=0','D2y(0)=0')
figure;plot3(y(:,1),y(:,2),y(:,3))
由于我是新手,我是模仿书上一步一步来写的.望您指正.
那y1,y2呢?
那个在y(3)是y的三次导的意思.
上面所有的y1,y2我认为也是求导的意思(你有一些没有加括号)
Dsolve('D3y+t*Dy*D2y+t^2*Dy*y^2=exp(-t*y)','y(0)=2','Dy(0)=0','D2y(0)=0')
但是没有精确解.
你可以做数值解,
下面做数值
在Matlab下输入:edit zhidao_rk4_4.m,然后将下面两行百分号之间的内容,复制进去,保存
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
function dydt=zhidao_rk4_4(t,y)
%y,y的一阶导,二阶导变量分别用y(1),y(2),y(3)表示
dydt=[y(2);y(3);exp(-t*y(1))-t*y(2)*y(3)-t^2*y(2)*y(1)^2];
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
在Matlab下面输入:
t_end=10;
x0=[0;0;0];
[t,y]=ode45('zhidao_rk4_4',[0,t_end],x0);
plot(t,y(:,1));
xlabel('t');
ylabel('y');