1 接線による反復
定義 1.1 (ニュートン法).fを微分可能な関数、x0を実数とする。f′(xn)=0である限り
xn+1=xn−f′(xn)f(xn)によってx1,x2,…を順に定める手続きを、方程式f(x)=0についてのニュートン法という。x0をこの手続きの初期値という。
この式は、接線とx軸との交点のx座標を与える式です。実際、点(xn,f(xn))における接線がx軸と交わる点のx座標は§C4.21 公式 1.1によりxn−f′(xn)f(xn)です。f′(xn)=0のとき接線はx軸に平行なので交点がなく、xn+1は定まりません。
2 平方根を求める反復
例 2.1 (f(x)=x2−aに対する反復式).a>0とし、f(x)=x2−aとします。f′(x)=2xなので、xn=0のとき
xn+1=xn−2xnxn2−a=2xn2xn2−xn2+a=21(xn+xna)です。すなわち、次の近似値はxnとxnaの相加平均です。
この反復式について、収束することを示します。
定理 2.2 (平方根を求める反復の収束).a>0、x0>0とし、xn+1=21(xn+xna)で数列{xn}を定める。このとき次が成り立つ。
- すべてのnについてxn>0であり、とくに反復は途中で止まらない。
- n≥1を満たすすべてのnについてxn≥aである。
- n≥1を満たすすべてのnについてxn+1≤xnである。
- n→∞limxn=aである。
証明. 1はnについての帰納法によります。x0>0です。xn>0とするとxna>0なのでxn+1>0です。したがって、すべてのnについてxn>0であり、f′(xn)=2xn=0なので反復は止まりません。
2は相加平均と相乗平均の大小関係によります。xn>0、xna>0なので
xn+1=21(xn+xna)≥xn⋅xna=aです。これはすべてのn≥0について成り立つので、n≥1についてxn≥aです。
3について、n≥1のときxn≥a、すなわちxn2≥aなので
xn+1−xn=21(xna−xn)=2xna−xn2≤0です。
4について、2と3により、n≥1の範囲で{xn}は単調に減少し、aを下界にもちます。単調で下に有界な数列は収束するので(「数列と極限」)、極限L=n→∞limxnが存在し、L≥a>0です。漸化式の両辺の極限をとるとL=21(L+La)であり、両辺に2Lを掛けて整理するとL2=aです。L>0なのでL=aです。▨
収束することが分かったので、次に速さを調べます。この反復式では、1回の反復で誤差がどう変わるかが等式の形で書き表されます。
定理 2.3 (誤差についての等式).定理 2.2と同じ設定のもとで、すべてのnについて
xn+1−a=2xn(xn−a)2が成り立つ。
証明.a=(a)2を用いて
xn+1−a=21(xn+xna)−a=2xnxn2+a−2axn=2xn(xn−a)2となります。▨
証明.定理 2.3の右辺は0以上なので、左側の不等式が成り立ちます。n≥1のとき定理 2.2の2によりxn≥a>0なので、2xn1≤2a1であり、右側の不等式が成り立ちます。▨
誤差xn−aがεであるとき、次の誤差は2aε2以下です。εが小さいほど、ε2はεに比べて急に小さくなります。
例 2.5 (a=5、x0=2の場合).xn+1=21(xn+xn5)によって順に計算すると
x1=49,x2=72161,x3=2318451841です。小数で書くとx1=2.25、x2=2.23611⋯、x3=2.2360679779⋯であり、5=2.2360679775⋯です。誤差xn−5は、およそ
1.4×10−2,4.3×10−5,4.2×10−10です。定理 2.3によりx2−5=2x1(x1−5)2であり、4.5(1.4×10−2)2=4.3×10−5となって、実際の値と合います。
1回の反復で、正しく定まる小数の桁数がおよそ2倍になっています。
3 一般の場合に何が起きているか
一般のfについて、同じ形の関係が一次近似のもとで現れます。αをf(α)=0、f′(α)=0を満たす数とし、en=xn−αと置きます。fが2回微分可能で、xnがαに近いとき、fとf′をαのまわりで近似すると
f(xn)≈f′(α)en+2f′′(α)en2,f′(xn)≈f′(α)+f′′(α)en
です。β=f′(α)f′′(α)と置くと
f′(xn)f(xn)≈en⋅1+βen1+2βen≈en(1+2βen)(1−βen)≈en−2βen2
となります。ここで∣βen∣が小さいことを用い、enについて3次以上の項を落としました。したがって
en+1=en−f′(xn)f(xn)≈2f′(α)f′′(α)en2
です。誤差は、1回の反復でおよそ2乗になります。
4 収束しない場合
上の計算は、xnがαに近いことを前提としています。初期値が解から遠い場合には、何も保証しません。
例 4.1 (接線がx軸に平行になる場合).f(x)=x2−2、x0=0とします。f′(0)=0なので、点(0,−2)における接線はx軸に平行であり、x軸と交わりません。したがってx1が定まらず、反復は最初の段で止まります。方程式x2−2=0は解±2をもつので、解がないことが原因ではありません。
例 4.2 (二つの値を往復する場合).f(x)=x3−2x+2、x0=0とします。f′(x)=3x2−2です。f(0)=2、f′(0)=−2なので
x1=0−−22=1です。f(1)=1−2+2=1、f′(1)=3−2=1なので
x2=1−11=0です。したがってx0=0、x1=1、x2=0、x3=1と続き、数列は二つの値を往復して収束しません。
この方程式には実数の解があります。f(−2)=−8+4+2=−2<0、f(−1)=−1+2+2=3>0であり、fは連続なので、中間値の定理により−2<x<−1の範囲にf(x)=0を満たすxがあります。この初期値からの反復は、その解に近づきません。
5 不動点反復との関係
定理 5.1 (ニュートン法は特別な不動点反復である).fを2回微分可能な関数とし、f′(x)=0を満たすxについて
g(x)=x−f′(x)f(x)と置く。このとき、定義 1.1の反復はxn+1=g(xn)である。さらに、f(α)=0かつf′(α)=0とすると、g(α)=αかつg′(α)=0である。
証明.xn+1=g(xn)は定義そのものです。f(α)=0なのでg(α)=α−f′(α)0=αです。商の微分により
g′(x)=1−{f′(x)}2{f′(x)}2−f(x)f′′(x)={f′(x)}2f(x)f′′(x)であり、x=αでは分子にf(α)=0が現れるのでg′(α)=0です。▨