y=ax+b で定義される2直線をランダムに生成し、その2直線が交わる交点 (x,y) を求める例題です。
反復により一番誤差の少ない点を求める方法と、セカント法による方法を比較しています。
(逆行列を計算してと言う方法もありますが、ここでは単純な計算例ということで。。)
セカント法は、非線型方程式(f(x)=0)の解を求める手法ですが、f(x) の定義部に当たる nw_func() の定義を修正すれば直線方程式の解を求めることもできます。
例題では、両手法の反復回数、探索範囲を同じにしていますが、セカント法の方が誤差を小さく計算できていることが分かります。
実行結果
2011年5月15日日曜日
登録:
コメントの投稿 (Atom)
0 件のコメント:
コメントを投稿