C#で非線形方程式を解く (ベイリー法)
非線形方程式の解法(ベイリー法)を利用して2の平方根を求める
関数 をテイラー展開すると,
と, 近似できる.
この式を 左辺 , として変形すると,
この式の右辺の をニュートン法で使った
で置き換えると
この式を漸化式として用いる.
using System; public class CS0905 { public static void Main() { double x0 = 2; while (true) { double x1 = x0 - (f0(x0) / (f1(x0) - (f0(x0) * f2(x0) / (2 * f1(x0))))); Console.WriteLine(string.Format("{0,12:F10}", x1)); if (Math.Abs(x1 - x0) < 0.0000000001) break; x0 = x1; } } private static double f0(double x) { return x * x - 2; } private static double f1(double x) { return 2 * x; } private static double f2(double x) { return 2; } }
1.4285714286 1.4142139268 1.4142135624 1.4142135624
参考文献