12月25日はニュートンの誕生日なのでニュートン法のプログラムを書いた
12月25日はアイザック・ニュートンの誕生日🎉なのでニュートン法で3次方程式の解を求めるプログラムをC++で書きました
ニュートン法とは
与えられた方程式の解を数値的に求める手法です。を求めたいとすると、まず初期点を決め、つぎにその点での方程式の接線の方程式を求めます。のにおける接線の傾きはなので接線の方程式はとなります。これをとおいて変形するととなり、からを逐次求めていきます。プログラムではの値が設定した値より小さくなるか設定した回数求めることを繰り返すと終了するようにしています。
ここの説明が分かりやすいです
ソースコード
コード上ではの解を求めます。方程式をグラフにすると下のようになります。
青線を見ると初期値を変えることによって3つの解が求まることが分かると思います。
コード中の目的の関数f関数とfの導関数df関数を変えることで別の方程式の解を求めることができます
おわりに
簡単に方程式の解を求められ、多次元に拡張することも可能で使用する場面は多そうだと感じました。
このブログは12月24日の夜から12月25日にかけて書かれました