JavaScript には Math.sqrt(n) という標準関数があり、正の平方根はすぐ求まりますが、この関数を用いずに正の平方根を求めるプログラムを作ってみましょう。それには、ニュートン法というアルゴリズムを用います。
C の平方根は
x2 − C = 0 を解けば求まります。
y =
f (
x) =
x2 − C = 0 をニュートン法で解いていきます。
解よりも右側にある適当な点 (
x0,
f (
x0) ) における
y =
f (
x) =
x2 − C の接線は次の式で与えられます。
y −
f (
x0) = 2
x0 (
x −
x0 )
y = 2
x0 (
x −
x0 ) +
x02 − C = 0 を解くと、次のようになります。
x = (
x0 + C /
x0 ) / 2
この
x の値を
x1 として、同様にして、次々と
x2,
x3 ・・・ と求めていくと、C の正の平方根に限りなく近づいていきます。
y =
x2 − C のグラフが
x 軸の正の方向と交わる点の
x 座標の値が C の正の平方根です。
参考:
大学生のための数学 > プログラミング > 数値解析の近似値アルゴリズム