• [x,y]=solver(‘f’,ts,x0,options)
  • f表示由待解的微分方程编写的m函数文件名,要将微分方程写成标准形式
  • solver 代表求解函数,常见函数有7种
  • ts=[t0,tfinal]是求解区间
  • x0表示函数的初始值
  • options=odeset(‘reltol’,rt,’abstol’,at),rt at分别为设定的相对误差和绝对误差,默认为10-3``和10-6

image.png
image.png

例1 一阶微分方程

  • 求方程Matlab求微分方程的数值解 - 图3的数值解,初始值Matlab求微分方程的数值解 - 图4Matlab求微分方程的数值解 - 图5范围是[0,2]

    1. df=@(x,y) y-2*x;
    2. %[x,y]=ode45(df,[0,2],3)
    3. sol=ode45(df,[0,2],3)
    4. y=deval(sol,x)

    例2 高阶微分方程

  • 考虑初值问题Matlab求微分方程的数值解 - 图6

高阶常微分方程必须做变量替换,化成一阶微分方程组。
Matlab求微分方程的数值解 - 图7,则有
Matlab求微分方程的数值解 - 图8
把初值问题写成Matlab求微分方程的数值解 - 图9,其中Matlab求微分方程的数值解 - 图10

  1. function dy=F(t,y)
  2. dy=[y(2);y(3);3*y(3)+y(2)*y(3)];
  3. end
  4. [T,Y]=ode45(@F,[0,1],[0;1;-1])