Pythonでd yの 1次ODEを解くために、4次のRunge-Kuttaメソッドを実装しようとしています。。私はこの方法の仕組みを理解していますが、f(x、y)の計算回数を最小限に抑える効率的なアルゴリズムを作成しようとしています。これは非常にコストがかかるためです。以前に計算されたデータポイントは、ステップを進めるごとに再利用できるが、その方法はわからない、と言われました。誰もこれを行う方法を知っていますか、それは不可能ですか?
Pythonでd yの 1次ODEを解くために、4次のRunge-Kuttaメソッドを実装しようとしています。。私はこの方法の仕組みを理解していますが、f(x、y)の計算回数を最小限に抑える効率的なアルゴリズムを作成しようとしています。これは非常にコストがかかるためです。以前に計算されたデータポイントは、ステップを進めるごとに再利用できるが、その方法はわからない、と言われました。誰もこれを行う方法を知っていますか、それは不可能ですか?
回答:
過去の関数評価を再利用する場合は、Adams-Bashforthのようなマルチステップメソッドを使用する必要があります。
いずれの場合も、各戦略に対して支払います。シングルステップメソッドは、最大数の関数評価を必要としますが、マルチステップメソッドは最大のメモリ要件を持ちます。
編集:修正。私の声明は、明示的なメソッドにのみ当てはまります。ステージの数は関数評価の数に直接変換されないため、暗黙的なメソッドの状況はそれほど明確ではありません。
f(x,y)
結果をメモするために、簡単に「ラップ」できます。