割線法

同義語:セカント法secant method

概要

割線法(secant method)とは、方程式 $f(x)=0$ の解を、直前の 2 点 $x_{n-1},x_n$ を通る割線と $x$ 軸の交点 $x_{n+1}=x_n-f(x_n)(x_n-x_{n-1})/(f(x_n)-f(x_{n-1}))$ を次の近似値として求める反復法である。Newton 法の導関数を差分商で置き換えたもので、1 回の反復で新しく計算する関数値は 1 つだけである。$f$ が $C^2$ 級で零点が単根なら、零点に十分近い 2 点から出発した列は超 1 次収束し、さらに $f''(x^*)\ne0$ なら収束の次数は黄金比 $\frac{1+\sqrt5}2=1.618\ldots$ である。

$$\newcommand{C}[0]{\mathbb{C}} \newcommand{div}[0]{\mathbin{÷}} \newcommand{N}[0]{\mathbb{N}} \newcommand{Q}[0]{\mathbb{Q}} \newcommand{R}[0]{\mathbb{R}} \newcommand{Z}[0]{\mathbb{Z}} $$

前提知識: Newton法, 平均値の定理, Taylorの定理, Fibonacci数列

割線法(secant method)は、方程式 $f(x)=0$ の解を、直前の 2 点を通る直線(割線)と $x$ 軸の交点を次の近似値とする反復で求める方法である。Newton法 は接線を使うので毎回 $f'(x_n)$ を計算するが、割線法は導関数の代わりに差分商
$$ \frac{f(x_n)-f(x_{n-1})}{x_n-x_{n-1}} $$
を使う。1 回の反復で新しく計算する関数値は $f(x_n)$ の 1 つだけである。
その代わり、単根の近くでの収束は Newton 法の 2 次収束より遅く、誤差の減り方の指数は黄金比 $\varphi=\frac{1+\sqrt5}2=1.618\ldots$ になる。この記事では、割線法の誤差を 2 つ前までの誤差の積で表す等式を示し、そこから局所収束と、収束の次数が $\varphi$ であることを証明する。指数に Fibonacci 数が現れる理由も、この等式から見える。

定義と使える条件

割線法

$I\subset\mathbb R$ を開区間(区間)、$f\colon I\to\mathbb R$ を連続関数とする。相異なる初期値 $x_0,x_1\in I$ から出発し、$f(x_n)\ne f(x_{n-1})$ である限り
$$ x_{n+1}:=x_n-f(x_n)\,\frac{x_n-x_{n-1}}{f(x_n)-f(x_{n-1})}\qquad(n=1,2,\ldots) $$
で数列 $(x_n)$ を定める反復を、方程式 $f(x)=0$ に対する 割線法 という。$f(x_n)=0$ となったら $x_n$ が解なので反復を止める。

$x_{n+1}$ は、2 点 $(x_{n-1},f(x_{n-1}))$、$(x_n,f(x_n))$ を通る直線と $x$ 軸の交点の $x$ 座標である。この記事では次の記号を使う。

差分商と収束の次数
  1. $f$ が区間 $J$ で $C^1$ 級のとき、$a,b\in J$ に対して $a\ne b$ なら $f[a,b]:=\dfrac{f(b)-f(a)}{b-a}$、$a=b$ なら $f[a,a]:=f'(a)$ とおき、差分商 という。割線法は $x_{n+1}=x_n-f(x_n)/f[x_{n-1},x_n]$ と書ける。
  2. 数列 $(x_n)$ が $x^*$ に収束し、すべての $n$ で $e_n:=x_n-x^*\ne0$ とする。$\lvert e_{n+1}\rvert/\lvert e_n\rvert\to0$ のとき 超 1 次収束 するという。$p>1$ と $\lambda\in(0,\infty)$ があって
    $$ \lim_{n\to\infty}\frac{\lvert e_{n+1}\rvert}{\lvert e_n\rvert^p}=\lambda $$
    となるとき、収束の次数 が $p$ であるという(このような $p$ は高々 1 つである)。$p=1$ で $\lambda\in(0,1)$ のときは 1 次収束(線形収束)するという。

使える条件をまとめる。

  • (i) 零点 $x^*$ は 単根:$f(x^*)=0$、$f'(x^*)\ne0$。重根では収束が 1 次に落ちる(反例の表)。
  • (ii) $f$ は $x^*$ の近くで $C^2$ 級(2 回微分可能で $f''$ が連続)。
  • (iii) 初期値 $x_0,x_1$ は相異なり、どちらも $x^*$ に十分近い。遠いと $f(x_n)=f(x_{n-1})$ となって反復が止まることや、収束しないことがある。
差分商の積分表示

$f$ が区間 $J$ で $C^1$ 級なら、すべての $a,b\in J$ について
$$ f[a,b]=\int_0^1f'\bigl(b+s(a-b)\bigr)\,ds $$
である。とくに $f[a,b]=f[b,a]$ で、$f[a,b]$ は $(a,b)$ について連続である。

証明を開く

$a=b$ なら両辺とも $f'(b)$ である。$a\ne b$ なら $g(s):=f(b+s(a-b))$ は $C^1$ 級で $g'(s)=(a-b)f'(b+s(a-b))$ だから、微積分学の基本定理 により $f(a)-f(b)=g(1)-g(0)=(a-b)\int_0^1f'(b+s(a-b))\,ds$ である。両辺を $a-b$ で割ればよい。連続性は、被積分関数が $(a,b,s)$ について連続で、$[0,1]$ 上の積分は一様連続な被積分関数について連続に動くことによる。$\square$

公式の表

公式使える条件根拠
$x_{n+1}=x_n-\dfrac{f(x_n)}{f[x_{n-1},x_n]}=\dfrac{f(x_n)x_{n-1}-f(x_{n-1})x_n}{f(x_n)-f(x_{n-1})}$$f(x_n)\ne f(x_{n-1})$def-sec-main
$e_{n+1}=e_n\,e_{n-1}\,\dfrac{G_n}{f[x_{n-1},x_n]}$、$G_n\to\dfrac{f''(x^*)}2$$f$ は $C^2$ 級、$f[x_{n-1},x_n]\ne0$lem-sec-error
$\lvert e_{n+1}\rvert\le C\lvert e_n\rvert\lvert e_{n-1}\rvert$、$C=\dfrac{\max\lvert f''\rvert}{2\min\lvert f'\rvert}$単根の近くthm-sec-local
$C\lvert e_n\rvert\le q^{F_{n+1}}$($F_n$ は Fibonacci 数)$x_0,x_1\in J_0$ が相異なり $C\lvert e_0\rvert,C\lvert e_1\rvert\le q<1$thm-sec-local
$\dfrac{\lvert e_{n+1}\rvert}{\lvert e_n\rvert^{\varphi}}\to\left\lvert\dfrac{f''(x^*)}{2f'(x^*)}\right\rvert^{1/\varphi}$単根の近くから始めて反復が止まらない、$f''(x^*)\ne0$thm-sec-order
$f(x)=x^2-2$ のとき $x_{n+1}-\sqrt2=\dfrac{(x_n-\sqrt2)(x_{n-1}-\sqrt2)}{x_n+x_{n-1}}$$x_n+x_{n-1}\ne0$ex-sec-sqrt2
割線法の収束の次数は $\frac{1+\sqrt5}2$単根の近くで局所的にDLMF §3.8(iii)(この記事の thm-sec-order で証明する)

主定理と証明

誤差の等式

誤差の等式

$f$ を区間 $J$ で $C^2$ 級とし、$x^*\in J$、$f(x^*)=0$ とする。$a,b\in J$ が $f[a,b]\ne0$ を満たすとき $c:=b-f(b)/f[a,b]$ とおくと
$$ c-x^*=(b-x^*)(a-x^*)\,\frac{G(a,b)}{f[a,b]},\qquad G(a,b):=\int_0^1\!\!\int_0^1s\,f''\bigl(b+s(x^*-b)+us(a-x^*)\bigr)\,du\,ds $$
が成り立つ。$J$ 上で $\lvert f''\rvert\le M$ なら $\lvert G(a,b)\rvert\le M/2$ であり、$a,b\to x^*$ のとき $G(a,b)\to f''(x^*)/2$ である。

差分商の差を 2 階導関数で書く

$f(x^*)=0$ と差分商の定義から $f(b)=f(b)-f(x^*)=f[x^*,b]\,(b-x^*)$ である($b=x^*$ でも両辺 $0$)。したがって
$$ c-x^*=(b-x^*)-\frac{f[x^*,b](b-x^*)}{f[a,b]}=(b-x^*)\,\frac{f[a,b]-f[x^*,b]}{f[a,b]}. $$
lem-sec-integral で $f[a,b]=\int_0^1f'(b+s(a-b))\,ds$、$f[x^*,b]=\int_0^1f'(b+s(x^*-b))\,ds$ と書く。$P_s:=b+s(x^*-b)$ とおくと $b+s(a-b)=P_s+s(a-x^*)$ なので、微積分学の基本定理により
$$ f'\bigl(P_s+s(a-x^*)\bigr)-f'(P_s)=s(a-x^*)\int_0^1f''\bigl(P_s+us(a-x^*)\bigr)\,du $$
である。$s$ について積分すると $f[a,b]-f[x^*,b]=(a-x^*)G(a,b)$ となり、等式を得る。点 $P_s+us(a-x^*)=(1-s)b+s\bigl((1-u)x^*+ua\bigr)$ は $J$ の点の凸結合なので $J$ に入る。$\lvert G\rvert\le M\int_0^1s\,ds=M/2$ である。$a,b\to x^*$ のとき被積分関数の $f''$ の引数は $(s,u)$ について一様に $x^*$ に近づくので、$f''$ の連続性から $G(a,b)\to f''(x^*)\int_0^1s\,ds=f''(x^*)/2$ である。$\square$

$a=x_{n-1}$、$b=x_n$ とすると $c=x_{n+1}$ であり、$G_n:=G(x_{n-1},x_n)$ とおけば
$$ e_{n+1}=e_n\,e_{n-1}\,\frac{G_n}{f[x_{n-1},x_n]} $$
となる。Newton 法の誤差の等式 $e_{n+1}=\frac{f''(\xi)}{2f'(x_n)}e_n^2$(Newton法 の定理「局所収束と2次収束」の証明)の $e_n^2$ が、割線法では $e_ne_{n-1}$ に替わる。指数の列が「前の 2 つの和」になることが、Fibonacci 数と黄金比の出どころである。

局所収束と超 1 次収束

割線法の局所収束

$f\colon I\to\mathbb R$ を開区間 $I$ 上の $C^2$ 級の関数、$x^*\in I$ を $f(x^*)=0$、$f'(x^*)\ne0$ を満たす点とする。$\delta_0>0$ を、$J_0:=[x^*-\delta_0,x^*+\delta_0]\subset I$ かつ $J_0$ 上で $\lvert f'\rvert\ge m>0$ となるようにとり、$M:=\max_{J_0}\lvert f''\rvert$、$C:=M/(2m)$ とおく。$0<\delta\le\delta_0$ を $q:=C\delta<1$ となるようにとり、$J:=[x^*-\delta,x^*+\delta]$ とおく。相異なる $x_0,x_1\in J$ から割線法を始めると、次が成り立つ。

  1. 反復は $f(x_n)=0$ となるまで定義され、すべての $x_n$ は $J$ に入り、隣り合う $x_n$ は相異なる。$f(x_n)=0$ となるのは $x_n=x^*$ のときだけである。
  2. $\lvert e_{n+1}\rvert\le C\lvert e_n\rvert\lvert e_{n-1}\rvert$。
  3. Fibonacci 数 $F_1=F_2=1$、$F_{n+1}=F_n+F_{n-1}$ について $C\lvert e_n\rvert\le q^{F_{n+1}}$。とくに $x_n\to x^*$ である。
  4. 反復が止まらなければ、$\lvert e_{n+1}\rvert/\lvert e_n\rvert\le C\lvert e_{n-1}\rvert\to0$ であり、超 1 次収束する。

$J_0$ 上で $f'$ は符号を変えない($\lvert f'\rvert\ge m$ と中間値の定理)ので $f$ は $J_0$ 上で狭義単調であり、$J$ の中の零点は $x^*$ だけである。
$x_{n-1},x_n\in J$ が相異なるとする。平均値の定理 により、$x_{n-1}$ と $x_n$ の間の $\eta$ で $f[x_{n-1},x_n]=f'(\eta)$ となり、$\lvert f[x_{n-1},x_n]\rvert\ge m>0$ である。よって $x_{n+1}$ が定まる。lem-sec-error を $J$ 上で使うと $\lvert G_n\rvert\le M/2$ だから
$$ \lvert e_{n+1}\rvert\le\frac{M}{2m}\lvert e_n\rvert\lvert e_{n-1}\rvert=C\lvert e_n\rvert\lvert e_{n-1}\rvert\le C\delta\,\lvert e_n\rvert<\lvert e_n\rvert\le\delta $$
($e_n=0$ のときは $e_{n+1}=0$)であり、$x_{n+1}\in J$ となる。また $x_{n+1}=x_n$ となるのは $f(x_n)=0$、すなわち $x_n=x^*$ のときに限る。したがって、$f(x_n)\ne0$ なら $x_{n+1}\ne x_n$ で、次の段もこの議論が使える。$x_0\ne x_1$ から帰納法で 1 と 2 が従う。
3:$\varepsilon_n:=C\lvert e_n\rvert$ とおくと 2 は $\varepsilon_{n+1}\le\varepsilon_n\varepsilon_{n-1}$ である。$\varepsilon_0,\varepsilon_1\le C\delta=q=q^{F_1}=q^{F_2}$ であり、$\varepsilon_{n-1}\le q^{F_n}$、$\varepsilon_n\le q^{F_{n+1}}$ なら $\varepsilon_{n+1}\le q^{F_{n+1}+F_n}=q^{F_{n+2}}$ である。$F_n\to\infty$ と $q<1$ から $\varepsilon_n\to0$ である($C=0$ なら $f$ は $J_0$ で 1 次式で、$x_2=x^*$ である)。4 は 2 を $\lvert e_n\rvert$ で割ればよい。$\square$

Fibonacci数列 の一般項 $F_n=(\varphi^n-(-\varphi)^{-n})/\sqrt5$ から $F_{n+1}\approx\varphi^{n+1}/\sqrt5$ であり、3 の評価は「正しい桁数が反復ごとにおよそ $\varphi$ 倍になる」ことを表す。

収束の次数は黄金比

割線法の収束の次数

thm-sec-local の仮定に加えて $f''(x^*)\ne0$ とし、反復が止まらない(すべての $n$ で $x_n\ne x^*$)とする。$A:=\left\lvert\dfrac{f''(x^*)}{2f'(x^*)}\right\rvert$ とおくと
$$ \lim_{n\to\infty}\frac{\lvert e_{n+1}\rvert}{\lvert e_n\rvert^{\varphi}}=A^{1/\varphi},\qquad\varphi=\frac{1+\sqrt5}2 $$
である。とくに割線法の収束の次数は $\varphi=1.618\ldots$ である。

比の対数が 1 次の漸化式を満たす

$c_n:=\lvert G_n\rvert/\lvert f[x_{n-1},x_n]\rvert$ とおくと、lem-sec-error から $\lvert e_{n+1}\rvert=c_n\lvert e_n\rvert\lvert e_{n-1}\rvert$ である。$x_{n-1},x_n\to x^*$ だから、lem-sec-error と lem-sec-integral により $G_n\to f''(x^*)/2$、$f[x_{n-1},x_n]\to f'(x^*)$ であり、$c_n\to A>0$ である。$n_0$ を $n\ge n_0$ で $c_n>0$ となるようにとる。
$a_n:=\lvert e_{n+1}\rvert/\lvert e_n\rvert^{\varphi}$ とおく。$\varphi^2=\varphi+1$ から $1-\varphi=-1/\varphi$ なので、$n>n_0$ で
$$ a_n=c_n\lvert e_n\rvert^{1-\varphi}\lvert e_{n-1}\rvert=c_n\bigl(\lvert e_n\rvert\,\lvert e_{n-1}\rvert^{-\varphi}\bigr)^{-1/\varphi}=c_n\,a_{n-1}^{-1/\varphi} $$
である。$b_n:=\log a_n$、$\ell_n:=\log c_n$、$\ell:=\log A$ とおくと $b_n=\ell_n-b_{n-1}/\varphi$ である。$\beta:=\ell/\varphi$ とおくと $\beta(1+1/\varphi)=\ell(\varphi+1)/\varphi^2=\ell$ なので、$d_n:=b_n-\beta$ は
$$ d_n=(\ell_n-\ell)-\frac{d_{n-1}}{\varphi} $$
を満たす。$\rho:=1/\varphi<1$ とおき、$\varepsilon>0$ に対して $N$ を $n\ge N$ で $\lvert\ell_n-\ell\rvert\le\varepsilon$ となるようにとると、$n>N$ で $\lvert d_n\rvert\le\varepsilon+\rho\lvert d_{n-1}\rvert$ であり、帰納的に
$$ \lvert d_n\rvert\le\varepsilon(1+\rho+\dots+\rho^{n-N-1})+\rho^{n-N}\lvert d_N\rvert\le\frac{\varepsilon}{1-\rho}+\rho^{n-N}\lvert d_N\rvert $$
となる。よって $\limsup\lvert d_n\rvert\le\varepsilon/(1-\rho)$ で、$\varepsilon$ は任意だから $d_n\to0$ である。すなわち $a_n=e^{b_n}\to e^{\beta}=A^{1/\varphi}$ である。収束の次数の一意性から、次数は $\varphi$ である。$\square$

関数値 1 回あたりの速さ

Newton 法は 1 回の反復で $f(x_n)$ と $f'(x_n)$ の 2 つを計算し、正しい桁数がおよそ 2 倍になる。割線法は 1 回の反復で新しい関数値を 1 つだけ計算し、桁数がおよそ $\varphi$ 倍になる。$f'$ の計算の手間が $f$ と同じ程度なら、関数値を 2 回計算する間に Newton 法は桁数を約 $2$ 倍、割線法は約 $\varphi^2=2.618\ldots$ 倍にする。導関数が高価な、または式で得られない場面で割線法が好まれるのはこのためである(DLMF §3.8(iii) も、関数値 1 回あたりの効率では割線法が最終的に Newton 法を上回ると述べる)。

計算の手順

  1. 零点の見当をつけ、近くの相異なる 2 点 $x_0,x_1$ を選ぶ(グラフや中間値の定理による二分を数回行うとよい)。$f_0:=f(x_0)$、$f_1:=f(x_1)$ を計算する。
  2. $n=1,2,\ldots$ について、$f_n=f_{n-1}$ なら止めて初期値を選び直す。そうでなければ
    $$ x_{n+1}=x_n-f_n\,\frac{x_n-x_{n-1}}{f_n-f_{n-1}} $$
    を計算し、新しい関数値 $f_{n+1}:=f(x_{n+1})$ を 1 つだけ計算する。
  3. 許容誤差 $\mathrm{tol}$ を決めておき、$f_{n+1}=0$ か $\lvert x_{n+1}-x_n\rvert\le\mathrm{tol}\cdot\max(1,\lvert x_{n+1}\rvert)$ になったら止める(根拠は rem-sec-stop)。
  4. 反復の上限 $N_{\max}$ に達したとき、または $x_n$ が零点を含むと分かっている区間から出たときは、収束していないとみなし、二分法で区間を狭めてから 1 に戻る。
止める判定の根拠

超 1 次収束する列では、$e_n\ne0$ のとき
$$ \frac{\lvert x_{n+1}-x_n\rvert}{\lvert e_n\rvert}=\left\lvert\frac{e_{n+1}}{e_n}-1\right\rvert\to1 $$
である。したがって、零点の近くでは隣り合う 2 点の差 $\lvert x_{n+1}-x_n\rvert$ が、まだ分からない誤差 $\lvert e_n\rvert$ のよい見積もりになる($x_{n+1}$ の誤差はそれよりずっと小さい)。

例題

$\sqrt2$ を割線法で求める

問い:$f(x)=x^2-2$、$x_0=1$、$x_1=2$ から割線法で $\sqrt2$ を求める。
使う公式:def-sec-main、lem-sec-error。
答え:$f[a,b]=a+b$ なので漸化式は $x_{n+1}=\dfrac{x_nx_{n-1}+2}{x_n+x_{n-1}}$ で、すべて有理数になる。

$n$$x_n$$e_n=x_n-\sqrt2$
2$4/3$$-8.09\times10^{-2}$
3$7/5$$-1.42\times10^{-2}$
4$58/41$$4.21\times10^{-4}$
5$816/577$$-2.12\times10^{-6}$
6$47321/33461$$-3.16\times10^{-10}$
7$77227930/54608393$$2.37\times10^{-16}$

この $f$ では誤差の等式が $e_{n+1}=\dfrac{e_ne_{n-1}}{x_n+x_{n-1}}$ という厳密な形になる($G\equiv1$)。$\lvert e_{n+1}\rvert/\lvert e_n\rvert^{\varphi}$ は $n=5,6$ で $0.477$、$0.559$ と、極限 $A^{1/\varphi}=(2\sqrt2)^{-1/\varphi}=0.5259\ldots$ の両側を振れながら近づく。

途中の計算を開く

$x_{n+1}-\sqrt2=\dfrac{x_nx_{n-1}-\sqrt2x_n-\sqrt2x_{n-1}+2}{x_n+x_{n-1}}=\dfrac{(x_n-\sqrt2)(x_{n-1}-\sqrt2)}{x_n+x_{n-1}}$ である。$x_2=\frac{2\cdot1+2}{3}=\frac43$、$x_3=\frac{(4/3)\cdot2+2}{10/3}=\frac75$、$x_4=\frac{(7/5)(4/3)+2}{41/15}=\frac{58}{41}$ と続く。thm-sec-order の証明の $d_n=(\ell_n-\ell)-d_{n-1}/\varphi$ で、$\lvert\ell_n-\ell\rvert$ が $\lvert d_{n-1}\rvert$ に比べて小さい間は $d_n\approx-d_{n-1}/\varphi$ となる。比が極限の上下を交互にとるのはこのためである。

方程式 $x=\cos x$:Newton 法との比較

問い:$f(x)=x-\cos x$ の零点 $x^*=0.7390851332\ldots$ を、割線法($x_0=0$、$x_1=1$)と Newton 法($x_0=1$)で求め、関数値を計算した回数で比べる。
使う公式:def-sec-main、rem-sec-efficiency。
答え:

割線法誤差Newton 法誤差
$x_3=0.73629899\ldots$$-2.79\times10^{-3}$$x_1=0.75036386\ldots$$1.13\times10^{-2}$
$x_4=0.73911936\ldots$$3.42\times10^{-5}$$x_2=0.73911289\ldots$$2.78\times10^{-5}$
$x_5=0.73908511\ldots$$-2.11\times10^{-8}$$x_3=0.73908513\ldots$$1.70\times10^{-10}$
$x_6$$-1.59\times10^{-13}$$x_4$$6.39\times10^{-21}$
$x_7$$7.42\times10^{-22}$

割線法の $x_7$ までに計算する関数値は $f(x_0),\ldots,f(x_6)$ の 7 個、Newton 法の $x_4$ までは $f$ と $f'$ を 4 回ずつで 8 個である。同じ程度の手間で同じ程度の精度に達している。

重根では 1 次収束になる

問い:$f(x)=x^2$(零点 $0$ は重根)に、$x_0=1$、$x_1=\frac12$ から割線法を当てる。
答え:$x_n=1/F_{n+2}$($F_n$ は Fibonacci 数)で、$x_{n+1}/x_n\to1/\varphi=0.618\ldots$。1 次収束で、超 1 次収束しない。

途中の計算を開く

$f[a,b]=a+b$ から $x_{n+1}=x_n-\dfrac{x_n^2}{x_n+x_{n-1}}=\dfrac{x_nx_{n-1}}{x_n+x_{n-1}}$、すなわち $\dfrac1{x_{n+1}}=\dfrac1{x_n}+\dfrac1{x_{n-1}}$ である。$1/x_0=1=F_2$、$1/x_1=2=F_3$ なので $1/x_n=F_{n+2}$ で、$x_n$ は $1,\frac12,\frac13,\frac15,\frac18,\frac1{13},\ldots$ となる。$F_{n+3}/F_{n+2}\to\varphi$(Fibonacci数列 の一般項から)なので $x_{n+1}/x_n\to1/\varphi$ である。

使える条件と反例

外す条件反例成り立たなくなること
単根であること($f'(x^*)\ne0$)$f(x)=x^2$、$x_0=1$、$x_1=\frac12$(ex-sec-double)誤差の比が $1/\varphi$ に近づき、thm-sec-local の 4(超 1 次収束)と thm-sec-order が成り立たない
初期の 2 点がどちらも同じ零点に十分近いこと$f(x)=x^2-2$、$x_0=-1$、$x_1=1$$f(x_1)=f(x_0)=-1$ で割線が $x$ 軸と平行になり、$x_2$ が定まらない(thm-sec-local の 1 が成り立たない)

2 行目で $\lvert f'\rvert$ が正の下界をもつ区間 $J$ は $\sqrt2$ の近くか $-\sqrt2$ の近くに限られ、$-1$ と $1$ を同時に含む $J$ はとれない($f'(0)=0$)。

よくある誤り

誤り正しくはなぜ
はさみうち法(regula falsi)と同じ速さだと考えるはさみうち法は符号の異なる 2 点を保つように古い点を選び、収束は 1 次である。割線法は常に直前の 2 点を使うDLMF §3.8(iii)
割線法にも、初期の 2 点で $f$ の符号が異なることが必要だとする符号の条件は要らない。必要なのは 2 点が単根に十分近いことthm-sec-local
重根でも次数 $\varphi$ で収束するとする重根では 1 次収束になるex-sec-double
$\lvert f(x_n)\rvert$ が小さいことだけで止める$\lvert f'(x^*)\rvert$ が小さいと $\lvert f(x_n)\rvert$ が小さくても誤差は大きい。隣り合う差も見るrem-sec-stop

補足

  • はさみうち法 は割線法と同じ式で次の点を決めるが、$f(x_{n+1})$ と符号の異なる方の古い点を残す。符号の異なる 2 点を保つので零点を含む区間から出ないが、収束は 1 次である(DLMF §3.8(iii))。割線法には収束の保証がなく、$x_2$ が $[x_0,x_1]$ の外に出ることもある(同)。そこで、二分法で零点を含む区間を保ちつつ、割線法の点がその区間に入るときはそれを採る、という組み合わせが考えられる。
  • 割線法を多変数の方程式 $F(x)=0$ に広げると、差分商の代わりに「割線方程式」$B_{n}(x_n-x_{n-1})=F(x_n)-F(x_{n-1})$ を満たす行列 $B_n$ を使う方法になる。この方程式だけでは $B_n$ が 1 つに決まらないので、前の $B_{n-1}$ から最小限だけ変える更新(Broyden の方法)などを使う。これらを 準Newton法 という。1 変数では Broyden の方法は割線法そのものである。
  • 割線法の次の点は、2 点を通る 1 次式(Lagrange補間)の零点である。3 点を通る 2 次式を $y$ の関数として補間し、その $y=0$ での値を次の点とする逆 2 次補間など、補間の次数を上げた変種もある。
  • 零点の存在を初期値での情報だけから保証する定理として、Newton 法については Newton–Kantorovichの定理 がある。

関連項目

参考文献

Mathpediaは寄付と、参考文献の書籍リンク(Amazonアソシエイト)の紹介料で運営されています。 支援について / 寄付する