MATLAB提供了七個常微分方程的求解器,分別是ODE45、ODE23、ODE113、ODE15s、ODE23s、ODE23t和ODE23tb,其中前三個適用於求解非剛性問題,後四個適用於剛性問題。所謂的剛性問題,簡單來說就是系統包含許多子流程,這些子流程之間相互作用,但變化速度非常不同。
Ode45基於顯式4-5龍格-庫塔公式,其算法屬於壹步法。Ode15s是壹個可變階求解器,它使用多步法。
對於許多問題,可以使用這些求解器,盡管在效率和準確性方面可能存在壹些差異。
然而,這些解算器是不可互換的,它們適用於不同的精度要求和問題類型。也就是說,在任何情況下,沒有壹個求解器優於或劣於其他求解器。不然MATLAB也沒必要提供這麽多求解器。
很難徹底理解這些求解器的差異和適用範圍,需要對其背後的算法有壹定的了解。MATLAB給出了函數參考中算法的簡要說明,並給出了壹些參考文獻。有興趣的可以進壹步咨詢。
如果妳清楚問題的本質,知道什麽算法可能更有效,妳可以直接選擇合適的求解器。如果事先不知道問題是否嚴格,根據MATLAB的建議,ode45是大多數情況下應該嘗試的首選。如果ode45的解決方案失敗或效率較低,則第二選擇是ode15s。