§C1.8不動点反復

最終更新

方程式を、同じ値を次々に代入する形へ書き換えると、解の近似値を作ることができます。この記事では、反復して得られる数列の極限がいつ解になるかを確かめ、不動点における導関数から近くの初期値で近づくか離れるかを判定します。

1 不動点と反復列

定義 1.1 (不動点反復).IIを開区間とし、f:I→If:I\to Iを写像とする。f(α)=αf(\alpha)=\alphaを満たすα∈I\alpha\in Iをffの不動点という。初期値x0∈Ix_0\in Iを選び、

xn+1=f(xn)(n=0,1,2,…)x_{n+1}=f(x_n)\qquad(n=0,1,2,\ldots)

によって定まる数列(xn)(x_n)をffとx0x_0による反復列という。

方程式をx=f(x)x=f(x)の形に書き換えると、方程式の解はffの不動点になります。ただし、反復列を作ることと、その反復列が収束することは別の問題です。

定理 1.2.IIを開区間とし、f:I→If:I\to Iを写像とする。反復列xn+1=f(xn)x_{n+1}=f(x_n)がα∈I\alpha\in Iに収束し、ffがα\alphaで連続ならば、f(α)=αf(\alpha)=\alphaである。

証明. 等式xn+1=f(xn)x_{n+1}=f(x_n)の両辺でn→∞n\to\inftyとする。(xn)(x_n)がα\alphaに収束するので(xn+1)(x_{n+1})もα\alphaに収束し、ffのα\alphaにおける連続性によりf(xn)→f(α)f(x_n)\to f(\alpha)となる。したがってα=f(α)\alpha=f(\alpha)である。▨

例 1.3.I=(−2,2)I=(-2,2)、f(x)=cos⁡xf(x)=\cos xとする。たとえばx0=1x_0=1から反復すると

1,0.540302…,0.857553…,0.654290…,0.793480…,…1,\quad 0.540302\ldots,\quad 0.857553\ldots,\quad 0.654290\ldots,\quad 0.793480\ldots,\ldots

となり、数値は0.739085…0.739085\ldotsに近づく。この数値が反復列の極限であることが別に分かれば、定理 1.2によりcos⁡α=α\cos\alpha=\alphaを満たす。

次の図は、縦にy=f(x)y=f(x)まで進み、横にy=xy=xまで進む操作を繰り返したものです。図から収束の様子を観察することはできますが、図だけではすべての反復が収束することを証明することはできません。

2 導関数による局所判定

不動点に近い点で、1回の反復が誤差をどの程度変えるかを差商から調べます。次の定理は不動点の近くに限った保証であり、遠い初期値に対する挙動までは決めません。

定理 2.1.IIを開区間とし、f:I→If:I\to Iを写像とする。f(α)=αf(\alpha)=\alphaであり、ffがα∈I\alpha\in Iで微分可能であるとする。

  1. ∣f′(α)∣<1|f'(\alpha)|<1ならば、α\alphaのある近傍U⊂IU\subset Iが存在し、任意のx0∈Ux_0\in Uから始めた反復列はUUに留まり、α\alphaに収束する。
  2. ∣f′(α)∣>1|f'(\alpha)|>1ならば、α\alphaのある近傍U⊂IU\subset Iが存在し、任意のx0∈U∖{α}x_0\in U\setminus\{\alpha\}から始めた反復列はUUに留まり続けることができず、有限回の反復でUUの外へ出る。

証明.

lim⁡x→α, x≠α∣f(x)−f(α)x−α∣=∣f′(α)∣\lim_{x\to\alpha,\,x\ne\alpha} \left|\frac{f(x)-f(\alpha)}{x-\alpha}\right|=|f'(\alpha)|

である。

(1)を示す。∣f′(α)∣<q<1|f'(\alpha)|<q<1を満たす実数qqを取る。上の極限とIIが開区間であることから、あるδ>0\delta>0が存在し、U=(α−δ,α+δ)⊂IU=(\alpha-\delta,\alpha+\delta)\subset Iであり、x∈Ux\in Uならば

∣f(x)−α∣≤q∣x−α∣|f(x)-\alpha|\leq q|x-\alpha|

となる。したがってx∈Ux\in Uならばf(x)∈Uf(x)\in Uである。任意のx0∈Ux_0\in Uに対して帰納的にxn∈Ux_n\in Uであり、

∣xn−α∣≤qn∣x0−α∣|x_n-\alpha|\leq q^n|x_0-\alpha|

となる。qn→0q^n\to0であるからxn→αx_n\to\alphaである。

(2)を示す。1<q<∣f′(α)∣1<q<|f'(\alpha)|を満たす実数qqを取る。上の極限とIIが開区間であることから、あるδ>0\delta>0が存在し、U=(α−δ,α+δ)⊂IU=(\alpha-\delta,\alpha+\delta)\subset Iであり、x∈U∖{α}x\in U\setminus\{\alpha\}ならば

∣f(x)−α∣≥q∣x−α∣>0|f(x)-\alpha|\geq q|x-\alpha|>0

となる。x0∈U∖{α}x_0\in U\setminus\{\alpha\}から始めた反復列がUUに留まり続けると仮定すると、各nnでxn≠αx_n\ne\alphaであり、

∣xn−α∣≥qn∣x0−α∣|x_n-\alpha|\geq q^n|x_0-\alpha|

となる。右辺はn→∞n\to\inftyで限りなく大きくなるが、xn∈Ux_n\in Uならば∣xn−α∣<δ|x_n-\alpha|<\deltaである。この二つは両立しない。したがって反復列は有限回でUUの外へ出る。▨

注意 2.2.∣f′(α)∣=1|f'(\alpha)|=1の場合、定理 2.1は結論を与えない。たとえばf(x)=x−x3f(x)=x-x^3はI=(−1,1)I=(-1,1)の自己写像であり、f′(0)=1f'(0)=1である。0<∣x∣<10<|x|<1ならばf(x)f(x)はxxと同符号で∣f(x)∣=∣x∣(1−x2)<∣x∣|f(x)|=|x|(1-x^2)<|x|なので、yn=∣xn∣y_n=|x_n|は減少して極限L≥0L\geq0をもつ。反復式からyn+1=yn(1−yn2)y_{n+1}=y_n(1-y_n^2)であり、極限を取るとL=L(1−L2)L=L(1-L^2)となるためL=0L=0である。したがって反復列は00に収束する。一方、f(x)=−xf(x)=-xはR\mathbb Rの自己写像であり、f′(0)=−1f'(0)=-1であるが、x0≠0x_0\ne0ならばx0,−x0,x0,−x0,…x_0,-x_0,x_0,-x_0,\ldotsという2周期になる。

例 2.3.f(x)=x3f(x)=x^3はR\mathbb Rの自己写像であり、00はf′(0)=0f'(0)=0を満たす不動点である。したがって定理 2.1 (1)により、00に十分近い初期値から始めた反復列は00に収束する。しかしx0=2x_0=2ならば

2,8,512,5123,…2,\quad8,\quad512,\quad512^3,\ldots

となり、00には収束しない。導関数による判定は遠い初期値の挙動を保証しない。

3 同じ方程式の二つの反復

x2=5x^2=5は、x=5/xx=5/xともx=(x+5/x)/2x=(x+5/x)/2とも書き換えることができます。二つの自己写像を正の区間で比較します。

例 3.1.h:(0,∞)→(0,∞)h:(0,\infty)\to(0,\infty)をh(x)=5/xh(x)=5/xとする。x0>0x_0>0、x0≠5x_0\ne\sqrt5ならば

x1=5x0,x2=5x1=x0x_1=\frac5{x_0},\qquad x_2=\frac5{x_1}=x_0

であり、x0x_0とx1x_1は異なる。したがって反復列は2周期であり、収束しない。

g:(0,∞)→(0,∞)g:(0,\infty)\to(0,\infty)を

g(x)=12(x+5x)g(x)=\frac12\left(x+\frac5x\right)

とする。任意のx>0x>0に対して

g(x)−5=(x−5)22xg(x)-\sqrt5=\frac{(x-\sqrt5)^2}{2x}

が成り立つ。ggによる反復列では、誤差en=xn−5e_n=x_n-\sqrt5が

en+1=en22xne_{n+1}=\frac{e_n^2}{2x_n}

を満たす。

証明.h(h(x))=5/(5/x)=xh(h(x))=5/(5/x)=xである。h(x0)=x0h(x_0)=x_0ならばx02=5x_0^2=5となり、x0>0x_0>0からx0=5x_0=\sqrt5となるため、仮定したx0≠5x_0\ne\sqrt5ではx0x_0とx1x_1は異なる。

ggについては

g(x)−5=x2+5−25x2x=(x−5)22xg(x)-\sqrt5 =\frac{x^2+5-2\sqrt5x}{2x} =\frac{(x-\sqrt5)^2}{2x}

となる。この恒等式にx=xnx=x_nを代入すると誤差の等式を得る。

さらに相加平均と相乗平均の関係によりg(x)≥5g(x)\geq\sqrt5である。x≥5x\geq\sqrt5ならば

g(x)−x=5−x22x≤0g(x)-x=\frac{5-x^2}{2x}\leq0

であるから、(xn)n≥1(x_n)_{n\geq1}は5\sqrt5以上に留まる単調減少数列である。したがって極限L>0L>0が存在し、定理 1.2によりL=g(L)L=g(L)である。よってL2=5L^2=5であり、L=5L=\sqrt5となる。またxn≥5x_n\geq\sqrt5なので

0≤en+1≤en225(n≥1)0\leq e_{n+1}\leq\frac{e_n^2}{2\sqrt5}\qquad(n\geq1)

である。この具体的な二次誤差評価は上の恒等式から従う。▨

導関数を計算するとg′(5)=0g'(\sqrt5)=0ですが、この等式だけから一般の反復法が二次収束するとはいえません。ここで得た二次誤差評価は、ggに固有の恒等式によるものです。

閑話休題:縮小写像と地図 地図上の点を実際の床の点へ対応させる操作を、床全体から床全体への写像とみなす。写像が床上の任意の2点間の距離を同じ比q<1q<1以下に縮め、床を完備距離空間として扱うことができるならば、地図と実際の位置が一致する点がただ一つ存在し、どの点から反復してもその点へ収束する。

一般には、空でない完備距離空間(X,d)(X,d)の自己写像T:X→XT:X\to Xと一様な定数0≤q<10\leq q<1が、すべてのx,y∈Xx,y\in Xに対して

d(Tx,Ty)≤qd(x,y)d(Tx,Ty)\leq qd(x,y)

を満たすとき、§E2.7 定理 2.2 (Banach の不動点定理)が不動点の一意性と任意の初期値からの収束を保証する。自己写像であること、空間が完備であること、および一様な縮小比があることのいずれかを外した地図には、この結論をそのまま用いることはできない。

注意 3.2.定理 2.1は不動点の近傍における判定であり、遠い初期値からの収束、別の不動点への収束、周期的な挙動または一般の収束率を決めない。一般の誤差評価、停止条件および Newton 法の二次収束には、この記事で扱った局所判定とは別の仮定が必要である。

4 反復を調べるときの確認

  • 反復を始める前に、選んだ関数が初期値を含む区間をその区間自身へ写すかを確かめます。
  • 数列の数項を計算し、収束、別の不動点への移動、または周期的な挙動を区別します。数値の観察だけで収束を結論せず、保証に必要な仮定を確かめます。
  • 導関数による判定を用いるときは、不動点における∣f′(α)∣|f'(\alpha)|と11を比較します。∣f′(α)∣=1|f'(\alpha)|=1の場合と遠い初期値の場合には、この判定だけでは結論しません。

例題

条件と何を求めるかを確認してから、式と答えの対応を見比べてください。

反復 xₙ₊1_{1}== g(xₙ) について、(a) x1,x_{1},x2x_{2} を求めよ。(b) 不動点 α\alpha(α\alpha==g(α)g(\alpha) を満たす値)を求めよ。(c) |g′(α)∣(\alpha)| と 1 の大小から、α\alpha の近くで反復が収束するか発散するかを判定せよ。

次の反復について、x1,x_{1},x2x_{2} を求め、不動点 α\alpha を求め、|g′(α)∣(\alpha)| と 1 の大小から収束・発散を判定せよ。

解法の型誤差は eₙ₊1_{1}≈\approx g′(α)⋅e(\alpha)\cdot eₙ。|g′(α)∣(\alpha)| < 1 なら吸引(収束)、|g′(α)∣(\alpha)| > 1 なら反発(発散)

  1. 例題 1

    g(x)=x2+34,x0=2,xn+1=g(xn)g(x) = \dfrac{x^{2} + 3}{4}, \qquad x_{0} = 2, \qquad x_{n+1} = g(x_{n})
  2. 例題 2

    g(x)=2x−3,x0=4,xn+1=g(xn)g(x) = 2x - 3, \qquad x_{0} = 4, \qquad x_{n+1} = g(x_{n})
  3. 例題 3

    g(x)=x2+56,x0=2,xn+1=g(xn)g(x) = \dfrac{x^{2} + 5}{6}, \qquad x_{0} = 2, \qquad x_{n+1} = g(x_{n})
  4. 例題 4

    g(x)=2x−2,x0=3,xn+1=g(xn)g(x) = 2x - 2, \qquad x_{0} = 3, \qquad x_{n+1} = g(x_{n})
  5. 例題 5

    g(x)=12(x+3x),x0=1,xn+1=g(xn)g(x) = \dfrac{1}{2}\left(x + \dfrac{3}{x}\right), \qquad x_{0} = 1, \qquad x_{n+1} = g(x_{n})
  6. 例題 6

    g(x)=x2+107,x0=3,xn+1=g(xn)g(x) = \dfrac{x^{2} + 10}{7}, \qquad x_{0} = 3, \qquad x_{n+1} = g(x_{n})
  7. 例題 7

    g(x)=12(x+2x),x0=1,xn+1=g(xn)g(x) = \dfrac{1}{2}\left(x + \dfrac{2}{x}\right), \qquad x_{0} = 1, \qquad x_{n+1} = g(x_{n})
  8. 例題 8

    g(x)=3x−2,x0=2,xn+1=g(xn)g(x) = 3x - 2, \qquad x_{0} = 2, \qquad x_{n+1} = g(x_{n})
  9. 例題 9

    g(x)=12(x+5x),x0=2,xn+1=g(xn)g(x) = \dfrac{1}{2}\left(x + \dfrac{5}{x}\right), \qquad x_{0} = 2, \qquad x_{n+1} = g(x_{n})
  10. 例題 10

    g(x)=x2+86,x0=3,xn+1=g(xn)g(x) = \dfrac{x^{2} + 8}{6}, \qquad x_{0} = 3, \qquad x_{n+1} = g(x_{n})

演習

問題を解いてから「解答・解説」を開けます。

反復 xₙ₊1_{1}== g(xₙ) について、(a) x1,x_{1},x2x_{2} を求めよ。(b) 不動点 α\alpha(α\alpha==g(α)g(\alpha) を満たす値)を求めよ。(c) |g′(α)∣(\alpha)| と 1 の大小から、α\alpha の近くで反復が収束するか発散するかを判定せよ。

演習を読み込み中…

前提記事