1

2 つの境界条件を持つニュートン法 (Jacobian N+1 * N+1) を使用して、高次元 (i=0,N) の非線形方程式の 2 次システムを解くコードを作成しました。

この N 次元の問題で二分法を実装することが可能かどうか、お尋ねしたいと思います。残念ながら、ニュートン収束は、私の問題の一部の領域では機能しません。

このソースによると: http://ursa.as.arizona.edu/~rad/phys305/root_finding/node4.html

改善された根発見スキームは、二分法とニュートン ラフソン法を組み合わせることです。二分法は根 (または特異点) を保証し、線形仮定が不十分な場合にニュートン ラフソン法によって推定される位置の変化を制限するために使用されます。ただし、ニュートン ラフソン ステップは、収束を高速化するために、ほぼ線形の領域で実行されます。

言い換えれば、2 つの境界点の間にルートがあることがわかっている場合、最初にニュートン ラフソン ステップを検討します。それがブラケット範囲外の次の点を予測する場合、次の点となる範囲の中間点を選択することにより、代わりに二等分ステップを実行します。次に、次の点で関数を評価し、その評価の符号に応じて、境界点の 1 つを新しい点に置き換えます。これにより、根括弧が保持され、ニュートンラフソンの速度を利用できます。"

... N次元の問題でPythonでそれを行うことは可能ですか?

n次元のFORTRANのRtsafeモジュールはこれを行うことができ、Matlabには同様のモジュールがあるかもしれません...

4

1 に答える 1

0

一種の宿題でない限り、 のソルバーをscipy使用する方がはるかに優れています。多次元の問題については、fsolve(修正されたニュートン ラフソン法を使用する) を参照してください。

于 2013-05-12T16:01:24.463 に答える