Scipyで偏微分方程式を解く solve_ivpについて

Scipyで偏微分を解くと調べるとodeやodeintで解いているがリファレンスによるとOldAPIに分類されているらしく、solve_ivpに移行させる必要があるらしい。

下記のようなodeintによる実装を置き換えると

from scipy.integrate import odeint
(中略)
solution = odeint(func, u0, times, args)

odeintとsolve_ivpでは関数の引数順序が異なり、定数を引数とできなくなっているため、ラムダ式で書き直す必要がある。

from scipy.integrate import solve_ivp
(中略)
sol = solve_ivp(fun=lambda t, y: func(y, t, tau, freq, paramA, chi), t_span=[0, taudev], y0=u0, t_eval=times)
solution = sol.y

 

Leave a Reply

Your email address will not be published. Required fields are marked *