1

私には大きな問題があります。C++ 関数またはクラスを使用して、3 つの変数で 3 つの方程式の非線形システムを解く必要があります。ニュートン・ラフソン法を使って解法を実行することを考えました。残念ながら、それを実行できるソース コードが見つかりませんでした。そのようなプログラムを知っている人がいるでしょうか?私はそれを自分で構築することを決定することに近づいています。ありがとう

4

3 に答える 3

2

3x3 システムは巨大ではありません。それは実際には非常に小さな問題です。人々は日常的に、数千 (およびそれ以上) の変数と制約を持つ非線形連立方程式を解いています。

あなたのシステムが 3x3 であり、おそらく厄介なシステムであるとすれば、より適切な方法の選択はライン検索方法です。このようにして、残差の局所的最小値への大域的な収束が得られます。ニュートン法を発散させるのはとても簡単です。

バックトラッキング ライン検索による最急降下は、考えられる最も単純なライン検索方法です。最初に実装してみるとよいでしょう。

于 2013-06-01T18:07:32.593 に答える
1

まず、関連する質問を参照してくださいC++ で非線形方程式系を解くための優れたライブラリは何ですか? およびhttps://stackoverflow.com/questions/4914967/could-you-explain-how-newton-raphson-for-a-set-of-equations-works-code-inside。また、boostを使用してみてください。

于 2013-06-02T04:53:37.677 に答える