next up previous
Next: 10.3 浅野雄太「正則関数の表示」 Up: 10 2005年度卒研 Previous: 10.1 どうしてまたコンピューターなのか

10.2 秋間洋志「4次方程式の解法」

秋間君はハイラー・ワナーのテキストで 3 次方程式のいわゆる 「Cardano の解法」を学んだ。 これは通常のカリキュラムには含まれていなくて、 たまに解説してあっても少々舌足らずであることが少なくない (少なくとも、 アルゴリズムの記述になっているとは到底言えない、 と感じられる解説が多い)。 複素数計算をきちんと理解して、 アルゴリズムを記述する (プログラムも書く) ことはやる価値がある、 となっての挑戦である。 レポートのタイトルそのものは 4 次方程式となったが、 3次方程式の Cardano の解法、 4次方程式の Decartes の解法10を説明し、 それをもとにしたコンピューター・プログラムを示し、 数値実験結果を載せてある。

Cardano の解法
任意の $ 3$ 次方程式は簡単な変数変換で $ x^3+p x+q=0$ ($ p$ , $ q$ は定数) の 形に帰着できる。$ p=0$ の場合は簡単なので、$ p\ne 0$ と仮定する。$ u$

$\displaystyle u^3=-\frac{q}{2}
+\sqrt{\left(\frac{q}{2}\right)^2+\left(\frac{p}{3}\right)^3}
$

を満たす任意の複素数として、$ v$

$\displaystyle v=-\frac{p}{3u}
$

で定めるとき11、方程式の根は

$\displaystyle x=u+v,\quad \omega u+\omega^2 v,\quad \omega^2 u+\omega v.
$

ただし $ \omega$ $ 1$ の原始三乗根である。

プログラミングに詳しくない人には意外かもしれないが、 Cardano (Girolamo Cardano, 1501-1576, イタリアの Pavia にて生まれ、 Rome にて没する) の解法のプログラムが載っている本はほとんどない。 これは一つには複素数を使えるプログラミング言語が少ないためと、 3次方程式, 4次方程式は特殊で、 反復計算により一般の次数の代数方程式を解くプログラムを示すことの方が 有益だと思われているためであろう。


詳細はもちろん彼のレポートを見てもらえばよいが、 野次馬として何点か指摘しておこう。

不還元の場合
実数を係数とする 3 次方程式 $ x^3+p x+q=0$ がただ一つの実根を持つ ( $ (q/2)^2+(p/3)^3\ge 0$ が成り立つ) 場合は Cardano の解法で特に大きな問題は生じないが、 3つの実根を持つ ( $ (q/2)^2+(p/3)^3<0$ が成り立つ) 場合は、 Cardano の解法では負数の平方根と虚数の3乗根が現れてしまう。 この後者の場合を「不還元の場合」と呼ぶ。


なお、秋間君は多くの人達のプログラミングの相談役となった。 彼なしでは、2005年度卒研はまったく違ったものになっていた可能性が高い。


next up previous
Next: 10.3 浅野雄太「正則関数の表示」 Up: 10 2005年度卒研 Previous: 10.1 どうしてまたコンピューターなのか
桂田 祐史
2015-12-24