请问老师这个题用matlab怎么做?

如题所述

题主给出的二阶微分方程组,用matlab求解其精确解和数值解,可以使用dsolve()函数得到其解析值,使用ode()函数得到其数值解。

一、使用dsolve()函数求解

第一步,对x(t)、y(t)进行声明变量,即

syms x(t) y(t) 

第二步,使用diff()函数分别对x(t)、y(t)进行导数计算

Dy=diff(y,t,1);D2y=diff(y,t,2);

Dx=diff(x,t,1);D2x=diff(x,t,2);

第三步,使用dsolve()函数,求其解析解

S=dsolve(D2y-D2x+Dx-y==exp(t)-2,2*D2y-D2x-2*Dy+x==-t,x(0)==0,Dx(0)==0,y(0)==0,Dy(0)==0);

x=S.x,y=S.y

第四步,使用plot()函数,绘出解析解的曲线图

plot(t,x,'r*',t,y,'kp')

二、使用ode45()函数求解

第一步,自定义微分方程组函数,odefun(t,x)

第二步,根据初始条件,确定x0的初始值,即

x0=[0;0;0;0];

第三步,确定时间t的范围,如

tspan=[0 5];

第四步,使用ode45求解其数值解

[t,x]=ode45(@odefun,tspan,x0);

第五步,使用plot()函数,绘出解析解的曲线图

plot(t,x(:,1),'b-',t,x(:,3),'m-')

完善代码后运行可以得到如下结果。

温馨提示:答案为网友推荐,仅供参考
相似回答