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

 我来答
lhmhz
高粉答主

2021-01-01 · 专注matlab等在各领域中的应用。
lhmhz
采纳数:7264 获赞数:17013

向TA提问 私信TA
展开全部

题主给出的二阶微分方程组,用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-')

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

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式