如何用matlab求解二阶微分方程,以及程序实例

如何用matlab求解二阶微分方程,以及程序实例,第1张

1、对于求数值解的微分方程,你可以用ode45()函数求解。如求下列微分方程

func。m   %自定义微分方程的函数

function z = func(t,y)

z =[y(2)(1-y(1)^2)*y(2)-y(1)]

main。m  %主程序

clear allclose allclc

y0 = [0.250]

h = 0.1

a = 0

b = 20

[t1 y1] = ode45(@func,y0,h,a,b)

2、对于求解析解的微分方程,你可以用dsolve()函数求解。如求微分方程x*y''+x﹡(y'宴脊行野改)^2-y'晌哗=0的解析解,可以下列步骤计算

>>syms y(x)

>>Dy = diff(y);D2y = diff(y, 2);

>>dsolve(x*D2y+x*(Dy)^2-Dy==0,'x')

给定的微分方程组,可以用matlab的ode()函数求解。求解方法:

1、根据方程,自定义微分方程组函数。

2、根据已经条件以及初始条件(因问题没有给出具体数值,本例自行设定),用ode45()函数命令求得其数值解。

3、用plot函数绘制X(t)—t、Y(t)—t、φ(t)—t的曲线图。

4、按照上述方法,山梁编程巧陪后运行可以得到如下图形。

数值解

5、代码

z0=[0.02,0.01,0.03,2,1,2]

t0=0tf=10

tspan=t0:0.1:tf

options = odeset('RelTol',1e-3,'AbsTol',1e-4)

[t,z]=ode45(@myfun,tspan,z0,options)

disp('  逗宽运          t        x(t)          y(t)          φ(t)')

A=[t z(:,1) z(:,2) z(:,3)]

disp(A)

figure(1)

plot(t,z(:,1),t,z(:,2),t,z(:,3),'-')

legend('x(t)','y(t)','φ(t)')


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12433610.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-25
下一篇 2023-05-25

发表评论

登录后才能评论

评论列表(0条)

保存