4

私はPythonの初心者です。matlabにあるいくつかのプログラムを切り替えようとしています。入力がすべて行列である堅い常微分方程式を解く必要があります。matlabで私は使用します

[ttT,uT] = ode23s('SST',t,fT);
4

2 に答える 2

3

Matlabで行うほとんどのことは、PythonのNumPyモジュールを使用して行うことができます。ここで見つけることができます。

関連するモジュールSciPyも役立つかもしれません。

PyDSToolもあなたに関連があるかもしれません。これは、Radauソルバーのラッパーです。

次に、プロットにmatplotlibを試してみてください。これは、Matlabのプロットと非常によく似ています。

次のリンクも役立つ場合があります。

于 2012-01-05T10:42:07.767 に答える
0

微分方程式を見せていただければ、もう少しお役に立てますが、一般的に、硬い常微分方程式を解く良い方法は次の文を使用することです。

solution = scipy.integrate.solve_ivp(function, [t_0, t_f], y0, method='BDF', first_step =0.0001, dense_output=True)

ここで、関数は次のように事前に定義する必要があります:function(t、variable、parameters)

t_0 = initial value for time
t_f = final value for time
y0  = value of your variables at t_0

硬いODEシステムの場合は、「BDF」メソッドを使用することをお勧めします(通常、時間の重要性が大きく変化する可能性がある原子炉のマイクロキネティックシステムの解法で使用されます)

コードのオプションの詳細については、https ://docs.scipy.org/doc/scipy/reference/generated/scipy.integrate.solve_ivp.htmlをご覧ください。

于 2020-10-30T14:44:43.760 に答える