MATLAB 用於求解常微分方程式(Ordinary Differential Equations,簡稱 ODE)的指令可以列表如下:
指令 方法 適用ODE類別 ode45 Explicit Runge-Kutta (4, 5) pair of Dormand-Prince Nonstiff ODE ode23 Explicit Runge-Kutta (2, 3) pair of Bogacki and Shampine Nonstiff ODE ode113 Variable order Adams-Bashforth-Moulton PECE solver Nonstiff ODE ode15s Numerical differentiation formulas (NDFS) Stiff ODE ode23s Modified Rosenbrock formula of order 2 Stiff ODE ode23t Trapezoidal rule with a “free” interpolant Stiff ODE ode23tb Implicit Runge-Kutta formula with a backward differentiation formula of order two Stiff ODE 上表列出的指令項目繁多,但最主要可分兩大類,即適用於 Nonstiff 系統及 Stiff 系統的指令。一般的常微分方程式都是 Nonstiff 系統,所以可以直接選用 ode45、ode23 或 ode113 來求解。Stiff 系統的特性是它的速率(即微分值)差異相常大,因此若使用一般的 ode45、ode23 或 ode113 來求解,可能會使得積分的步長(Step Sizes)變得很小,以便降低積分誤差至可容忍範圍以內,但如此一來,會導致計算時間過長。因此,欲解決此類 Stiff 系統問題,只要選用專門對付 Stiff 系統的指令,例如 ode15s、ode23s、ode23t 及 ode 23tb,即可迎刃而解。
以下將說明 ODE 指令的基本用法及相關範例。
MATLAB程式設計:進階篇