C#で非線形方程式を解く (ニュートン法)
非線形方程式の解法(ニュートン法)を利用して2の平方根を求める
1. まず, 関数 上の点 を考える.
2. 点 における の接線と 軸との交点 は より解に近づいている.
3. この作業を繰り返して行くことで解を求める.
点 での接線の傾きは
なので,
この式を漸化式として用いる.
using System; public class CS0904 { public static void Main() { double x0 = 2; while (true) { double x1 = x0 - (f0(x0) / 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; } }
1.5000000000 1.4166666667 1.4142156863 1.4142135624 1.4142135624
参考文献