1次近似と誤差の伝わり方(linear approximation and error propagation)とは、接線の式 $f(a+h)\approx f(a)+f'(a)h$ の誤差と、測定値の誤差が計算結果に伝わる規則である。$f''$ が連続で $a$ と $a+h$ の間で $\lvert f''\rvert\le M$ なら、誤差は $\frac M2h^2$ 以下である。近似値 $x(1+\varepsilon)$、$y(1+\eta)$ の積の相対誤差は $\varepsilon+\eta+\varepsilon\eta$、$x>0$ の $p$ 乗では $(1+\varepsilon)^p-1$ で、$\varepsilon$ が小さければ $p\varepsilon$ との差は $\varepsilon^2$ の程度である。近い 2 数の差では相対誤差が大きくなる。
前提知識: 微分係数と導関数の定義(高校数学), 関数の近似とテイラー展開, 部分積分の使い方, 積分の評価
数学 III では、微分できる関数 $f$ と小さい数 $h$ について、$f(a+h)\approx f(a)+f'(a)h$ という近似式を習う。右辺は、点 $(a,f(a))$ での接線の、$x=a+h$ での高さである。電卓がなくても、微分係数さえ分かれば値の見当がつく。まず 2 つの値を見積もってみる。
どちらも差の大きさは $0.0002$ より小さい。しかし、この計算だけでは「どこまで合っているか」は分からない。真の値を知らないときに近似を使うのだから、誤差の大きさを真の値なしで保証したい。この記事で答える問いは次の 3 つである。
| 高校の計算 | この記事の言葉 | 大学の言葉 |
|---|---|---|
| 接線で値を見積もる | 1 次近似 | 1 次の Taylor 多項式 |
| 近似値と真の値の差 | 誤差 $R(h)$、上界 $\dfrac M2h^2$ | 剰余項の評価 |
| 「$x$ が $1\%$ 増えると $x^2$ は約 $2\%$ 増える」 | 相対誤差の伝わり方 | 誤差の伝播、条件数 |
y=sin x と x=π/6 での接線を描き、h=0.8 では接線とグラフの高さの差が約 0.22 と大きいことを見る図
同じグラフと接線を拡大し、h=0.1 では高さの差が約 0.0026 と小さいことを見る図
以下、$f$ は $a$ を含む区間で定義された関数とする。
$f$ が $x=a$ で微分可能なとき、1 次式
$$
L(a+h)=f(a)+f'(a)h
$$
を、$f$ の $x=a$ における 1 次近似 という。$f(a+h)$ の近似値として $L(a+h)$ を使うときの差
$$
R(h)=f(a+h)-L(a+h)=f(a+h)-f(a)-f'(a)h
$$
を、1 次近似の 誤差 という(真の値 $-$ 近似値の向きにとる)。
$y=L(a+h)$ のグラフは接線である。微分係数と導関数の定義(高校数学) の定理「微分可能と 1 次近似」は、$\dfrac{R(h)}h\to0$($h\to0$)となる直線が接線だけであることを示している。つまり、$h$ が十分小さければ $R(h)$ は $h$ に比べて無視できる。ただし、この定理は「どれくらい小さいか」を数では教えてくれない。多項式なら $R(h)$ を正確に書ける。
どちらの例でも、誤差の主な部分は $\dfrac{f''}2h^2$ である。$f''$ はグラフの曲がり具合を表すので、「曲がり具合 $\times$ $h^2$」が誤差を決めると予想できる。次の節でこれを一般の関数で示す。
鍵は、誤差 $R(h)$ を $f''$ の積分で正確に書くことである。部分積分を 1 回使う(部分積分の使い方)。
$f$ は区間 $I$ で 2 回微分可能で $f''$ が連続とし、$a$、$a+h$ は $I$ の点とする。このとき
$$
R(h)=f(a+h)-f(a)-f'(a)h=\int_a^{a+h}(a+h-t)\,f''(t)\,dt
$$
である($h<0$ のときも、積分の向きの約束 $\displaystyle\int_a^{a+h}=-\int_{a+h}^a$ のもとで成り立つ)。
方針:右辺を部分積分して、$f'$ の積分に直し、それを $f$ の差に戻す。
段 1(部分積分)。$u(t)=a+h-t$、$v(t)=f'(t)$ とおくと $u'(t)=-1$、$v'(t)=f''(t)$ である。部分積分の公式 $\displaystyle\int_\alpha^\beta uv'\,dt=\Bigl[uv\Bigr]_\alpha^\beta-\int_\alpha^\beta u'v\,dt$ を $\alpha=a$、$\beta=a+h$ で使うと
$$
\int_a^{a+h}(a+h-t)f''(t)\,dt=\Bigl[(a+h-t)f'(t)\Bigr]_{a}^{a+h}+\int_a^{a+h}f'(t)\,dt
$$
となる($-u'=1$ なので、最後の積分の前の符号は $+$)。この公式は積分の向きによらず成り立つので、$h<0$ でもよい。
段 2(はじめの項)。$t=a+h$ では $a+h-t=0$、$t=a$ では $a+h-t=h$ なので
$$
\Bigl[(a+h-t)f'(t)\Bigr]_{a}^{a+h}=0\cdot f'(a+h)-h\,f'(a)=-f'(a)h
$$
である。
段 3(残りの積分)。$f'$ は連続なので、微分積分学の基本定理により $\displaystyle\int_a^{a+h}f'(t)\,dt=f(a+h)-f(a)$ である。
段 2・段 3 を段 1 に入れると、右辺は $-f'(a)h+f(a+h)-f(a)=R(h)$ になる。$\square$
ex-lae-poly (1) の $f(x)=x^2$ では $f''=2$ なので、右辺は $\displaystyle\int_a^{a+h}2(a+h-t)\,dt=\Bigl[-(a+h-t)^2\Bigr]_a^{a+h}=0-(-h^2)=h^2$ で、$R(h)=h^2$ と一致する。
この等式の右辺で、重み $a+h-t$ は $t=a$ で $h$、$t=a+h$ で $0$ になる 1 次式である。$f''$ の大きさが分かれば、重みの積分から誤差の大きさが分かる。
$f$ は区間 $I$ で 2 回微分可能で $f''$ が連続とし、$a$、$a+h$ は $I$ の点とする。$a$ と $a+h$ を両端とする閉区間で $\lvert f''(t)\rvert\le M$ ならば
$$
\bigl\lvert f(a+h)-f(a)-f'(a)h\bigr\rvert\le\frac M2h^2
$$
が成り立つ。
$h=0$ なら両辺とも $0$ なので、$h\ne0$ とする。
段 1($h>0$ のとき)。$a\le t\le a+h$ では $a+h-t\ge0$ である。積分の絶対値は絶対値の積分以下なので(積分の評価)、lem-lae-integral から
$$
\lvert R(h)\rvert\le\int_a^{a+h}(a+h-t)\,\lvert f''(t)\rvert\,dt\le M\int_a^{a+h}(a+h-t)\,dt
$$
である。最後の積分は $s=a+h-t$ と置くと $\displaystyle\int_0^hs\,ds=\frac{h^2}2$ なので、$\lvert R(h)\rvert\le\dfrac M2h^2$ である。
段 2($h<0$ のとき)。向きを入れかえると
$$
R(h)=\int_a^{a+h}(a+h-t)f''(t)\,dt=\int_{a+h}^{a}\bigl(t-(a+h)\bigr)f''(t)\,dt
$$
で、$a+h\le t\le a$ では重み $t-(a+h)$ は $0$ 以上である。段 1 と同じように $\lvert R(h)\rvert\le M\displaystyle\int_{a+h}^a\bigl(t-(a+h)\bigr)dt=M\cdot\frac{(-h)^2}2=\frac M2h^2$ となる。$\square$
$h$ を $\dfrac1{10}$ にすると、上界は $\dfrac1{100}$ になる。これが問い 1 の答えである。lem-lae-integral からは、誤差の符号も分かる。
thm-lae-bound の仮定のもとで、$a$ と $a+h$ を両端とする閉区間で $f''\ge0$ なら $R(h)\ge0$、つまり $f(a+h)\ge f(a)+f'(a)h$ である。$f''\le0$ なら $R(h)\le0$ である。
prf-lae-bound の段 1・段 2 のとおり、$R(h)$ は $0$ 以上の重みと $f''$ の積の、左端から右端への積分で書ける。$f''\ge0$ ならこの積分は $0$ 以上、$f''\le0$ なら $0$ 以下である。$\square$
グラフが下に凸($f''\ge0$)なら接線はグラフの下にあるので、1 次近似は小さめの値を出す。上に凸なら大きめの値を出す。ex-lae-start の 2 つの関数はどちらも上に凸で、差はどちらも負だった。
$f''(t)=-\dfrac29t^{-\frac53}$ で、$t\ge27$ では $\lvert f''(t)\rvert\le\dfrac29\cdot27^{-\frac53}=\dfrac29\cdot\dfrac1{243}=\dfrac2{2187}$ である($27^{\frac53}=3^5=243$)。$M=\dfrac2{2187}$、$h=0.5$ として
$$\lvert R\rvert\le\frac12\cdot\frac2{2187}\cdot0.25=\frac{1}{8748}=0.0001143\ldots$$
である。上界は実際の誤差の $1.01$ 倍で、ほとんど等しい。$h$ が小さい範囲で $\lvert f''\rvert$ がほぼ一定だからである。
| $h$ | 誤差 $R$ | 上界 $\dfrac{\sin(30^\circ+h)}2h^2$ | $\dfrac R{h^2}$ |
|---|---|---|---|
| $4^\circ$ | $-1.267\times10^{-3}$ | $1.363\times10^{-3}$ | $-0.2600$ |
| $2^\circ$ | $-3.107\times10^{-4}$ | $3.228\times10^{-4}$ | $-0.2550$ |
| $1^\circ$ | $-7.692\times10^{-5}$ | $7.844\times10^{-5}$ | $-0.2525$ |
| $0.5^\circ$ | $-1.913\times10^{-5}$ | $1.933\times10^{-5}$ | $-0.2513$ |
横軸に h、縦軸に誤差の大きさをとった両対数のグラフで、sin x と 3 乗根の 1 次近似の誤差がどちらも傾き 2 の直線に沿い、上界の破線がその上にあることを見る図
図 3 は、誤差の大きさを両対数のグラフに描いたものである。誤差が $h^2$ に比例するなら、傾き $2$ の直線になる。$\sqrt[3]x$ では上界の破線が誤差の線とほとんど重なっている。
thm-lae-bound は、関数の近似とテイラー展開 の定理「Lagrange の形の剰余項」の $n=1$ の場合から出る評価と同じである(Taylor の定理の Lagrange の形は Leb26a Theorem 4.3.2 にもある)。あの記事では $n$ 次の多項式まで広げ、誤差を $f^{(n+1)}$ で押さえる。ここでは 1 次で止め、その代わりに、測った値の誤差が計算の結果にどう伝わるかを調べる。
長さや時間を測ると、測った値には誤差がある。その値を使って面積や速さを計算すると、結果にも誤差が出る。まず誤差の測り方を 2 つ決める。
真の値 $x$ の近似値(測った値など)を $\tilde x$ とする。$\Delta x=\tilde x-x$ を 絶対誤差 という。$x\ne0$ のとき
$$
\varepsilon=\frac{\tilde x-x}{x}=\frac{\Delta x}{x}
$$
を 相対誤差 という。相対誤差を使うと $\tilde x=x(1+\varepsilon)$ と書ける。
和と差では、絶対誤差がそのまま足し引きされる。$\tilde x=x+\Delta x$、$\tilde y=y+\Delta y$ なら
$$
(\tilde x+\tilde y)-(x+y)=\Delta x+\Delta y,\qquad(\tilde x-\tilde y)-(x-y)=\Delta x-\Delta y
$$
なので、どちらの絶対誤差も $\lvert\Delta x\rvert+\lvert\Delta y\rvert$ 以下である(三角不等式)。積・商・冪では、相対誤差で考えると見通しがよい。
$x,y\ne0$ の近似値を $\tilde x=x(1+\varepsilon)$、$\tilde y=y(1+\eta)$ とする。
(1) 積 $\tilde x\tilde y$ の相対誤差は $\varepsilon+\eta+\varepsilon\eta$ である。したがって、相対誤差 $\varepsilon+\eta$ で近似したときの差は $\lvert\varepsilon\eta\rvert$ である。
(2) $\lvert\eta\rvert<1$ のとき、商 $\dfrac{\tilde x}{\tilde y}$ の相対誤差は $\dfrac{\varepsilon-\eta}{1+\eta}$ である。これと $\varepsilon-\eta$ の差は $\dfrac{(\lvert\varepsilon\rvert+\lvert\eta\rvert)\lvert\eta\rvert}{1-\lvert\eta\rvert}$ 以下である。
(3) $x>0$、$\lvert\varepsilon\rvert<1$、$p$ を実数とする。冪 $\tilde x^{\,p}$ の相対誤差は $(1+\varepsilon)^p-1$ で、
$$
\bigl\lvert(1+\varepsilon)^p-1-p\varepsilon\bigr\rvert\le\frac{\lvert p(p-1)\rvert}2K\varepsilon^2
$$
が成り立つ。ここで $K$ は、$t$ が $0$ と $\varepsilon$ を両端とする閉区間を動くときの $(1+t)^{p-2}$ の最大値である。
言葉で言えば、相対誤差が小さいとき、積の相対誤差は相対誤差の和、商の相対誤差は相対誤差の差、$p$ 乗の相対誤差は相対誤差の $p$ 倍で近似でき、近似の差は相対誤差の 2 乗の程度である。たとえば $\lvert\varepsilon\rvert\le\dfrac12$ なら、$\dfrac12\le1+t\le\dfrac32$ で、$(1+t)^{p-2}$ は $t$ について単調なので、$K$ は $\left(\dfrac12\right)^{p-2}$ と $\left(\dfrac32\right)^{p-2}$ の大きい方以下で、(3) の右辺は $\varepsilon^2$ の、$p$ だけで決まる定数倍以下になる。
縦横 x, y の長方形を Δx, Δy だけ延ばすと、面積が yΔx と xΔy の 2 つの帯と、角の小さな長方形 ΔxΔy の分だけ増えることを見る図
面積の増え方は $\pi(10.1^2-10^2)=2.01\pi=6.3146\ldots$ で、1 次の見積もり $2\pi r\cdot\Delta r=2\pi=6.2831\ldots$ との差は $\pi(\Delta r)^2=0.0314\ldots$ である。$2\pi r\cdot\Delta r$ は円周の長さと幅 $\Delta r$ の積で、円の外側に巻いた細い帯の面積の見積もりにあたる。
長さ $l$ の振り子の周期は、振れ幅が小さいとき $T=2\pi\sqrt{\dfrac lg}$($g$ は重力加速度)で与えられるとする。$l$ を $1\%$ 長く測ると($\varepsilon=0.01$)、$T$ は $l^{\frac12}$ に比例するので、相対誤差はおよそ $\dfrac12\varepsilon=0.5\%$ である。正確には $\sqrt{1.01}-1=0.0049875\ldots$ である。
$p=\dfrac12$ では $\lvert p(p-1)\rvert=\dfrac14$、$(1+t)^{-\frac32}$ は $0\le t\le0.01$ で最大値 $K=1$($t=0$)をとるので、上界は $\dfrac14\cdot\dfrac12\cdot1\cdot(0.01)^2=0.0000125$ である。実際の差 $0.005-0.0049875\ldots=0.0000124\ldots$ はこれ以下である。
密度は(質量)$\mathbin{÷}$(体積)である。質量を $1\%$ 大きく($\varepsilon=0.01$)、体積を $2\%$ 小さく($\eta=-0.02$)測ったとすると、thm-lae-propagation (2) により密度の相対誤差は
$$
\frac{\varepsilon-\eta}{1+\eta}=\frac{0.03}{0.98}=0.030612\ldots
$$
で、およそ $\varepsilon-\eta=3\%$ である。差は $0.000612\ldots$ で、上界 $\dfrac{(0.01+0.02)\cdot0.02}{0.98}=0.000612\ldots$ と一致する($\varepsilon$ と $-\eta$ の符号がそろっているため)。誤差の向きが分からないときは、相対誤差の大きさ $1\%$ と $2\%$ を足して「密度の相対誤差は約 $3\%$ 以下」と見積もる。
計算ごとに、足されるものをまとめる。$\lvert\varepsilon\rvert$、$\lvert\eta\rvert$ が小さいときの目安である。
| 計算 | 伝わるもの | 1 次の見積もり | 捨てた部分 |
|---|---|---|---|
| 和 $x+y$ | 絶対誤差 | $\Delta x+\Delta y$ | なし |
| 差 $x-y$ | 絶対誤差 | $\Delta x-\Delta y$ | なし |
| 積 $xy$ | 相対誤差 | $\varepsilon+\eta$ | $\varepsilon\eta$ |
| 商 $\dfrac xy$ | 相対誤差 | $\varepsilon-\eta$ | $-\dfrac{(\varepsilon-\eta)\eta}{1+\eta}$ |
| 冪 $x^p$ | 相対誤差 | $p\varepsilon$ | $\varepsilon^2$ の程度(thm-lae-propagation (3)) |
| 平方根 $\sqrt x$ | 相対誤差 | $\dfrac12\varepsilon$ | $\varepsilon^2$ の程度 |
積や商で相対誤差が足されることは、対数を使うと「掛け算を足し算に直す」ことにあたる。計算尺と対数 の命題「読み違いによる相対誤差」は、対数目盛の位置のずれが相対誤差になり、掛け算で位置のずれが足されることを示している。
1 次近似と誤差の見積もりには、それぞれ前提がある。前提を 1 つ外すと、次のように崩れる。
| 外す条件 | 反例 | 成り立たなくなること |
|---|---|---|
| $\dfrac M2h^2$ が小さい($h$ に比べて曲がり具合が小さい) | $\sqrt{x}$ の $a=0.0001$、$h=0.01$ | 1 次近似が良い近似になる |
| 相対誤差 $\varepsilon$ が小さい | $\varepsilon=0.5$ や $\varepsilon=1$ で 2 乗する | $p$ 乗の相対誤差が $p\varepsilon$ で近似できる |
| 計算が積・商・冪である(近い 2 数の差ではない) | $100.3-100.1$(それぞれ $\pm0.05$) | 結果の相対誤差が、入力の相対誤差と同じ程度に小さい |
$f(x)=\sqrt x$ の $a=0.0001$ での 1 次近似で、$h=0.01$ として $\sqrt{0.0101}$ を見積もる。$f(0.0001)=0.01$、$f'(x)=\dfrac1{2\sqrt x}$ で $f'(0.0001)=50$ なので
$$
\sqrt{0.0101}\approx0.01+50\times0.01=0.51
$$
となる。実際は $\sqrt{0.0101}=0.10049\ldots$ で、近似値は 5 倍もずれている。
thm-lae-bound は間違っていない。$f''(t)=-\dfrac14t^{-\frac32}$ は $t=0.0001$ で $\lvert f''\rvert=\dfrac14\cdot10^{6}=250000$ となり、$M=250000$ とすると上界は $\dfrac{250000}2\times(0.01)^2=12.5$ である。実際の誤差 $0.4095\ldots$ はこれ以下だが、上界そのものが近似値より大きく、何の保証にもならない。
同じ $h=0.01$ でも、$a=1$ なら $\sqrt{1.01}\approx1.005$ で、誤差は $0.0000124\ldots$、上界は $M=\dfrac14$ から $0.0000125$ である。1 次近似が使えるかどうかは、$h$ が小さいかどうかだけでは決まらず、$h$ と曲がり具合 $M$ の組み合わせ $\dfrac M2h^2$ で決まる。$\sqrt x$ のグラフは $x=0$ の近くで縦に立ち上がり、接線の傾きが急に変わるので、少し離れただけで接線から大きく外れる。
正方形の 1 辺を実際の $1.5$ 倍($\varepsilon=0.5$)と測ると、面積の相対誤差は $(1.5)^2-1=1.25$ で、$2\varepsilon=1$ から $0.25$ ずれる。$2$ 倍($\varepsilon=1$)なら $2^2-1=3$ で、$2\varepsilon=2$ とは大きく違う。捨てた部分 $\varepsilon^2$ が、$\varepsilon=1$ では 1 次の部分 $2\varepsilon$ の半分にもなる。thm-lae-propagation (3) の等式は正しいままだが、「およそ $p\varepsilon$」という読み方は $\lvert\varepsilon\rvert$ が小さいときにしか使えない。
2 本の棒の長さを $100.3$ cm と $100.1$ cm と測った。どちらも絶対誤差は $0.05$ cm 以下とする。相対誤差はどちらも $\dfrac{0.05}{100}$ 程度、つまり $0.05\%$ 程度で、とても正確である。
ところが、長さの差 $100.3-100.1=0.2$ cm の絶対誤差は、和と差の規則により $0.05+0.05=0.1$ cm 以下としか言えない(本当の長さが $100.25$ cm と $100.15$ cm なら差は $0.1$ cm になる)。差 $0.2$ に対する相対誤差は最大で $\dfrac{0.1}{0.2}=50\%$ になる。
入力の相対誤差は $0.05\%$ 程度なのに、結果の相対誤差は $50\%$ にもなりうる。近い 2 数を引くと、絶対誤差は変わらないまま結果だけが小さくなるので、相対誤差が大きくなる。これを 桁落ち という。計算機でも同じことが起こり、次の記事 数値微分(高校数学) では、差 $f(a+h)-f(a)$ を小さな $h$ で割るときにこの現象が現れる。
正の数どうしの和では、この心配はない。和の相対誤差は、2 つの相対誤差の大きい方以下である。問題が起こるのは、符号の違う数を足す(近い数を引く)ときである。
$x,y>0$ で相対誤差が $\varepsilon,\eta$ なら、$\tilde x+\tilde y-(x+y)=x\varepsilon+y\eta$ なので、和の相対誤差は $\dfrac{x\varepsilon+y\eta}{x+y}$ である。その大きさは
$$\frac{\lvert x\varepsilon+y\eta\rvert}{x+y}\le\frac{x\lvert\varepsilon\rvert+y\lvert\eta\rvert}{x+y}\le\frac{(x+y)\max(\lvert\varepsilon\rvert,\lvert\eta\rvert)}{x+y}=\max(\lvert\varepsilon\rvert,\lvert\eta\rvert)$$
以下である($x,y>0$ を使った)。
thm-lae-propagation (3) の「$p$ 乗すると相対誤差が $p$ 倍になる」は、一般の関数に広げられる。$f(x)\ne0$ のとき、$\tilde x=x(1+\varepsilon)$ に対して 1 次近似を使うと
$$
\frac{f(\tilde x)-f(x)}{f(x)}\approx\frac{f'(x)\cdot x\varepsilon}{f(x)}=\frac{xf'(x)}{f(x)}\,\varepsilon
$$
となる。倍率 $\left\lvert\dfrac{xf'(x)}{f(x)}\right\rvert$ を、$f$ の $x$ における 相対条件数 という。$f(x)=x^p$ では $\dfrac{x\cdot px^{p-1}}{x^p}=p$ で、この記事の結果と一致する。近い 2 数の差では相対条件数が大きくなる。
$f(x)=x-1$ を $x=1.001$ で考えると、$f'(x)=1$ なので相対条件数は $\dfrac{1.001\cdot1}{0.001}=1001$ である。ex-lae-cx-cancel と同じく、入力の相対誤差が 1000 倍ほどに拡大される。
2 変数の関数 $f(x,y)$ では
$$f(x+\Delta x,\,y+\Delta y)\approx f(x,y)+\frac{\partial f}{\partial x}\Delta x+\frac{\partial f}{\partial y}\Delta y$$
である。$\dfrac{\partial f}{\partial x}$ は $y$ を止めて $x$ で微分したもの(偏微分)である。$f(x,y)=xy$ なら $\dfrac{\partial f}{\partial x}=y$、$\dfrac{\partial f}{\partial y}=x$ で、右辺の増え方 $y\Delta x+x\Delta y$ は図 4 の 2 つの帯にあたる。大学の実験で使う誤差の伝播の式は、この 1 次近似から作られる。
Mathpediaは寄付と、参考文献の書籍リンク(Amazonアソシエイト)の紹介料で運営されています。 支援について / 寄付する