MATLAB によるニュートン法
平成21年度 秋期 基本情報技術者試験に出題されたニュートン法のアルゴリズムを MATLAB で作成してみた。
ニュートン法とは
ニュートン法とは,方程式の解の一つを求めるアルゴリズムである。
任意に定めた解の予測値から始めて,計算を繰り返しながらその値を真の値に近づけていく。
MATLAB によるニュートン法
ニュートン法のアルゴリズムを MATLAB で作成した。3 次方程式 3x3 – x2 – 3x + 1 = 0 の解(解の予測値は 2.5)の一つを求めるアルゴリズムである。
a = [3, -1, -3, 1];
x = 2.5;
b = zeros(1, 3);
b(3) = 3 * a(4);
b(2) = 2 * a(3);
b(1) = a(2);
for n1 = 2:9
f = ((a(4) * x + a(3)) * x + a(2)) * x + a(1);
d = (b(3) * x + b(2)) * x + b(1);
fprintf("%f, %f, %f\n", x, f, d);
x = x - f / d;
end
上記のコードを実行した結果を示す。解の一つである x = 3 が得られた。
2.500000, -2.625000, 2.750000
3.454545, 4.969947, 14.074380
3.101425, 0.874168, 9.247965
3.006900, 0.055485, 8.082941
3.000035, 0.000283, 8.000425
3.000000, 0.000000, 8.000000
3.000000, 0.000000, 8.000000
3.000000, 0.000000, 8.000000
プログラムで与えた 3 次関数のグラフを示す。