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

问题描述:

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

1个回答

分类:

数学

2014-11-28

问题解答:

我来补答

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计算即可.

展开全文阅读

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值