matlab 二阶微分方程 求解

如题所述

1、建立微分方程的自定义函数,odefun(容x,y)

2、当a=10、θ=π/6时,执行下列代码

theta=pi/6;

[x,y]= ode45(@odefun,[0,0.18],[0.5,theta])

plot(x,y),grid on

legend('y (x)','y’(x)')

xlabel('x'),ylabel('y (x),y’(x)') 

figure(2)

plot(y(:,1),y(:,2)),grid on

xlabel('y (x)'),ylabel('y’(x)')

title('y (x)—y’(x)的相平面图'); 

扩展资料:

升阶法:

设y''+p(x)y'+q(x)y=f(x),当f(x)为多项式时,设f(x)=a0x^n+a1x^(n-1)+…+a(n-1)x+an,此时,方程两边同时对x求导n次,得

y'''+p(x)y''+q(x)y'=a0x^n+a1x^(n-1)+…+a(n-1)x+an……

y^(n+1)+py^(n)+qy^(n-1)=a0n!x+a1(n-1)!

y^(n+2)+py^(n+1)+qy^(n)=a0n!

令y^n=a0n!/q(q≠0),此时,y^(n+2)=y^(n+1)=0。由y^(n+1)与y^n通过倒数第二个方程可得y^(n-1),依次升阶,一直推到方程y''+p(x)y'+q(x)y=f(x),可得到方程的一个特解y(x)。

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