2.1.2.1 $ 2$ 次方程式

$ 2$ 次方程式 $ a x^2+b x+c=0$ は根の公式

$\displaystyle x=\frac{-b\pm\sqrt{b^2-4ac}}{2a}
$

がある。高校数学では係数 $ a$, $ b$, $ c$ は実数であるが、 複素数にしてもこの式のままで大丈夫である (なお、複素数の平方根は、 実数の平方根を使って計算できる -- 自力でやっても難しくないが、 Ahlfors の有名な複素解析の教科書に説明がある)。

この根の公式のまま、浮動小数点演算を用いて計算しようとすると、 $ b^2\gg 4\vert ac\vert$ の場合に桁落ち (cancellation) が起きてしまい、 精度が低下してしまう。

例えば $ b>0$ の場合、

$\displaystyle x_1=\frac{-b+\sqrt{b^2-4ac}}{2a}
$

の計算で桁落ちが起こるので、

$\displaystyle x_1=\frac{-b+\sqrt{b^2-4ac}}{2a}
=\frac{\left(-b+\sqrt{b^2-4ac}\...
...ac} \right)}{2a\left(-b-\sqrt{b^2-4ac}\right)}
=\frac{-2c}{b+\sqrt{b^2-4ac}}
$

のように分子の有理化を行うか、桁落ちの起こらない方の根

$\displaystyle x_2=\frac{-b-\sqrt{b^2-4ac}}{2a}
$

を先に計算してから、根と係数の関係 $ x_1 x_2=c/a$ から

$\displaystyle x_2=\frac{c}{a x_1}
$

と計算する (この式の右辺を整理すると上と同じになる)。$ \qedsymbol$



桂田 祐史