matlab中的ode45

ode45 求解非刚性微分方程,中阶方法。

  1. [TOUT,YOUT] = ode45(ODEFUN,TSPAN,Y0), 其中TSPAN = [T0 TFINAL]
  • 对初始条件为Y0的y'= f(t,y)微分方程系统从时间T0到TFINAL进行积分。
  • ODEFUN是一个函数句柄。 对于标量T和向量Y,ODEFUN(T,Y)必须返回对应于f(t,y)的列向量。
  • 答案数组YOUT中的每一行对应于列向量TOUT中返回的时间。
  • 要在特定时间T0,T1,…,TFINAL(全部增加或全部减少)获得解,请使用TSPAN = [T0 T1 … TFINAL]。
  1. [TOUT,YOUT] = ode45(ODEFUN,TSPAN,Y0,OPTIONS) 如上所述解决,
  • 默认积分属性由OPTIONS中的值替换,OPTIONS是使用ODESET函数创建的参数。

  • 有关详细信息,请参阅ODESET。 常用选项是标量相对误差容限’RelTol’(默认为1e-3)和绝对误差容限矢量’AbsTol’(默认情况下为所有组件1e-6)。

  • 如果解决方案的某些组件必须是非负的,请使用ODESET将“NonNegative”属性设置为这些组件的索引。

ode45可以解决问题M(t,y)*y' = f(t,y) ,质量矩阵M是非奇异的。

  • 如果MASS(T,Y)返回质量矩阵的值,则使用ODESET将“Mass”属性设置为函数句柄MASS。
  • 如果质量矩阵是常数,则矩阵可以用作“Mass”选项的值。
  • 如果质量矩阵不依赖于状态变量Y并且使用一个输入参数T调用函数MASS,则将’MStateDependence’设置为’none’。
  • ODE15S和ODE23T可以解决奇异质量矩阵的问题。

Example

 [t,y]=ode45(@vdp1,[0 20],[2 0]);   
 plot(t,y(:,1));

解决系统y' = vdp1(t,y)
使用默认的相对误差容差1e-3和每个组件的默认绝对容差1e-6,并绘制解决方案的第一个组件。

    原文作者:博士伦2014
    原文地址: https://www.jianshu.com/p/9c0fde0647de
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞