Julia は Matlab、Python、R の微分方程式ソルバーを呼び出します

SciML チュートリアル シリーズ:

他の言語から翻訳されたソルバー

MATLAB/Python/R に精通しているプログラマの場合は、以下の表のソルバーを最初に使用できます。これらのソルバーはこれらの言語から翻訳されているためです。

ジュリア 翻訳 効率的な交換
ode23 BS3()
ode45/dopri5 DP5() チット5()
ode23s ローゼンブロック23() ロダス4()
ode113 VCABM() バーン7()
dop853 DP8() Vern7() の方が効率的です
ode15s/水 QNDF()
FBDF()
Rodas4()、KenCarp4()
TRBDF2() RadauIIA5()
ode23t 台形()
ode23tb TRBDF2()
ソーダ イソダ() AutoTsit5(Rosenbrock23())
AutoVern7(Rodas5())
ode15i IDA()/DFBDF() ロダス4()

このうち lsoda() は LSODA.jl に含まれており、剛体問題と非剛体問題を解決することができ、呼び出す際にインストールする必要があります。

]add LSODA
using LSODA

リパッケージ版

Julia にはこれらの関数の再パッケージ バージョンもあり、通常、再パッケージ バージョンは元の言語よりも 2 ~ 3 倍高速ですが、Julia が推奨する方法よりは 1,000 倍遅くなります。

呼び出しメソッド
マットラボ MATLABDiffEq.jl MATLABDiffEq を使用する
サイピー SciPyDiffEq.jl SciPyDiffEq を使用する
r-deSolve deSolveDiffEq.jl deSolveDiffEq を使用する

これら 3 つのパッケージは github にダウンロードしてインストールする必要があります

]add https://github.com/JuliaDiffEq/MATLABDiffEq.jl
]add https://github.com/JuliaDiffEq/SciPyDiffEq.jl
]add https://github.com/JuliaDiffEq/deSolveDiffEq.jl

その中で、MATLABDiffEq.jl は、Julia コードおよび MATLAB の ODE ソルバーと対話できるブリッジを提供します。主に常微分方程式と偏微分方程式を解くために使用されます。 MATLAB の ODE ソルバーを使用すると、最も基本的な方程式からより複雑な非線形システムに至るまで、ほぼすべての一般的な数学的問題を解くことができます。つまり、MATLAB には、ode23、ode45、ode113、ode23s、ode23t、ode23tb、ode15s、ode15i などのいくつかのソルバーが提供されます。

SciPyDiffEq.jl は、SciPy ライブラリの ode および odeint 関数に基づいて実装されています。Python の SciPy ライブラリと同様に、微分方程式を解く関数を Julia に実装できます。利用可能なメソッドには、RK45、RK23、Radau、BDF、LSODA が含まれます。

deSolveDiffEq.jl ユーティリティ: lsoda 、lsode 、lsodes 、lsodar 、vode 、daspk 、euler 、rk4 、ode23 、ode45 、radau 、bdf 、bdf_d 、adams 、impAdams 、impAdams_d。

おすすめ

転載: blog.csdn.net/m0_37816922/article/details/125032144
おすすめ