next up previous contents
Next: 2.1.2.2.1 次方程式の数値計算の際の注意事項 Up: 2.1.2 1次元代数方程式の解法概観 Previous: 2.1.2.1 次方程式

2.1.2.2 $ 3$ 次方程式

いわゆる Cardano の方法がある2.1。 かつてはこの方法は数値計算には向かないと考えられていたが (例えば 森口 [16])、 最近では見直されているそうである (「特に $ 1$ 実根 $ 2$ 複素根を持つ 実3次方程式の標準算法として見直されてきている」 -- 一松 [13])。

まず

$\displaystyle x^3+a_2 x^2+a_1 x+a_0=0
$

$\displaystyle x+\frac{a_2}{3}=X
$

と置き換えて、

(2.1) $\displaystyle X^3-3 px+2q=0,\quad p=\left(\frac{a_2}{3}\right)^2-\frac{a_1}{3},\quad q=\frac{a_0}{2}-\frac{a_1 a_2}{6}+\left(\frac{a_2}{3}\right)^3$

に変換する。次に

$\displaystyle X=u+v,\quad u v=p
$

とすると、(2.1) は

$\displaystyle u^3+v^3=-2q, \quad u^3 v^3=p^3
$

となる。ゆえに

(2.2) $\displaystyle t^2+2qt+p^3=0$

を解けば $ u^3$, $ v^3$ を得る。実行すると

$\displaystyle u^3,v^3=-q\pm\sqrt{q^2-p^3}.
$

ここで場合わけをする。
(I).
もし $ q^2\ge p^3$ ならば、(2.2) は $ 2$ 実根

$\displaystyle t_1=-q+\sqrt{q^2-p^3}, \quad
t_2=-q-\sqrt{q^2-p^3}, \quad
\omega=e^{2\pi i/3}=\frac{-1+\sqrt{3}i}{2}
$

を持つ。その三乗根 (実数!) から
  $\displaystyle x_1$ $\displaystyle =$ $\displaystyle {t_1}^{1/3}\omega+{t_2}^{1/3}\omega^2-\frac{a_2}{3},$
  $\displaystyle x_2$ $\displaystyle =$ $\displaystyle {t_1}^{1/3}\omega^2+{t_2}^{1/3}\omega-\frac{a_2}{3},$
  $\displaystyle x_3$ $\displaystyle =$ $\displaystyle {t_1}^{1/3}+{t_2}^{1/3}-\frac{a_2}{3}.$

(II).
$ q^2<p^3$ ならば、$ t^{1/3}$ の計算には、複素数の $ 3$ 乗根を要する。 注意すべきは $ {t_1}^{1/3} {t_2}^{1/3}=u v=p$ であるから、 $ {t_1}^{1/3}$ を求める ごとに対応する $ {t_2}^{1/3}$

$\displaystyle {t_2}^{1/3}=\frac{p}{{t_1}^{1/3}}
$

で定める。これらを数値計算するには極座標に直して計算すればよい。 この場合は、代数方程式は 3 実根を持つが、それは実数の四則と 累乗根だけでは求められないことが証明されている (不還元の 場合と呼ばれる)。 $ \qedsymbol$
ARRAY(0x1274aa0)


next up previous contents
Next: 2.1.2.2.1 次方程式の数値計算の際の注意事項 Up: 2.1.2 1次元代数方程式の解法概観 Previous: 2.1.2.1 次方程式
Masashi Katsurada
平成21年7月9日