matlab用三种方法求解二阶微分方程x''+0.2x'=0.4x=0.2u(t),u(t)是单位阶跃函数,初始状态为0

回答得好我会再加50财富值。... 回答得好我会再加50财富值。 展开
 我来答
洒出自行车
2011-12-04
知道答主
回答量:5
采纳率:0%
帮助的人:7万
展开全部
x''+0.2x'-0.4x=0.2u(t), x(0)=x'(0)=0.
1.你用Laplace Transform 做吧。
L(x'')+0.2L(x')-0.4L(x)=0.2L(u(t))
(p^2)*X(p)-p*x(0)-x'(0)+0.2(p*X(p)-x(0))-0.4*X(p)=0.2/p,
(p^2+0.2*p-0.4)*X(p)=0.2/p,
X(p)=0.2/(p^3+0.2*(p^2)-0.4p)
然后,你查Laplace Transform 表即可。或者用MAtlab 求解,代码如下:

F=0.2/(s^3+0.2*s^2-0.4*s);
x(t)=ilaplace(F,s,t)

然后,x(t)的表达式就出来了。

2.令x1=x,x2=x1'=x',把原方程转化成微分方程组:
x1'=x2
x2'=0.4*x1-0.2*x2+0.2u(t),
(x1(0),x2(0))=(0,0).
根据上述一阶微分方程组编写M函数文件DyDt.m
function ydot=DyDt(t,y)
if t>0
u(t)=1
else
u(t)=0
end
ydot=[y(2);0.4*y(1)-0.2*y(2)+0.2*u(t)];
tspan=[0,30];%solution interval
y0=[0;0];
[tt,yy]=ode45(@DyDt,tspan,y0)

3.用差分法吧。
h=t/N, N是你给定的正整数,一般取20吧。ti=it/N.如果t>0
x''(ti)=(x(i+1)-2x(i)+x(i-1))/(h^2)
x'(ti)=(x(i+1)-x(i-1))/2h
x(ti)=x(i)
u(ti)=u(i)=1
然后你写出相对应的差分方程组:
(x(i+1)-2x(i)+x(i-1))/(h^2)+0.2*(x(i+1)-x(i-1))/2h-0.4*x(i)=0.2
化成矩阵式用MATLAB计算即可。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式