この記事では、C言語で二分法により方程式の解を解を求めるプログラムについてソースコード付きで解説します。
二分法
二分法は、方程式を解くアルゴリズムの1つです。
具体的には、解を含む区間の中間点を求める操作を何度も繰り返すことで解を求めます。
方程式が連続関数で、関数値の符号が異なる初期条件を与えると、必ず収束して解を導出できます。
関数が単調増加・減少の場合は、区間上限を十分大きく、区間下限を十分小さくすることで適切な初期条件が得られます。
【詳細】二分法のアルゴリズム
今回は、このアルゴリズムをC言語で実装してみました。
ソースコード
サンプルプログラムのソースコードです。
■bisection(a, b, esp, &solution, &N)
入力値:区間a~b, 収束条件N
出力値:2分法により求めた解solution, 収束回数N
区間[a, b]は、f(a)f(b)<0を満たすように決めます。
■f(double x)
解を求めたい関数
【関連記事】
C言語で数値計算処理
C言語入門
コメント