・3次方程式の解表現                    GAI 氏

 3次方程式 x3+px+q=0 の解を求める方法として、カルダノの公式がある。

 wを1の3乗根の一つとして、

x=3√(-q/2+√(q3/27+q2/4))+3√(-q/2-√(q3/27+q2/4))
x=3√(-q/2+√(q3/27+q2/4))*w+3√(-q/2-√(q3/27+q2/4))*w2
x=3√(-q/2+√(q3/27+q2/4))*w2+3√(-q/2-√(q3/27+q2/4))*w

と、あまりにもグロテスクな姿をしている。しかも、

 (x-1)(x-2)(x+3)=x3-7x+6=0

を解くのにさえ、

x=3√(-3+√(-343/27+9))+3√(-3-√(-343/27+9))
=3√(-3+10√3*i/9)+3√(-3-10√3*i/9) (iは虚数単位)
(これは計算機では、2.0000・・・・で返される。)

 そこで、これもスッキリとは言えないが、カルダノの公式よりは処理しやすいものとして、三
角法を利用して、3次方程式 x3-3rx+4s=0 を満たす3解は、t=arcsin(2s√r/r2) とおき、
x=2√r*sin((t+2kπ)/3) (k=0,1,2) で済む。

 先の例 x3-7x+6=0 では、r=7/3、s=3/2 から、t=1.0004195167554963460・・・

 x=2√r*sin((t+2kπ)/3) (k=0,1,2) を計算させることで、

x=2*√r*sin(t/3)=1.0000000000・・・
x=2*√r*sin((t+2π)/3)=2.0000000000・・・
x=2*√r*sin((t+4π)/3)=-3.0000000000・・・

が素直に現れる。


 らすかるさんからのコメントです。(平成29年10月30日付け)

 2次の項がある場合や虚数解を持つ場合などを含めて、私のサイトにあります。


 GAI さんからのコメントです。(平成29年10月30日付け)

 既に、こんな公式を編み出してあったのですね。三角法を利用した公式では虚数解を持つ
場合でもコンピュータはちゃんと反応して、正しい3つの解(虚数解も含めて)を出力してくれ
ますね。記述されている部分の

・p2>q3 の場合(虚数解を持つ場合)

 u={p+√(p2-q3)}^(1/3), v={p-√(p2-q3)}^(1/3) (u、vは実数)とおくと、

 実数解は、(u+v-2a)/6、虚数解は、-{(u+v+4a)±i(u-v)√3}/12

の所では、vの部分は、 v=-{-p+√(p2-q3)}^(1/3) としなくていいんでしょうか?

 私のPARIのソフトでの確認では、この式にしてもらっておくと、ピタリ望みの実数解が出力
されますが・・・?


 らすかるさんからのコメントです。(平成29年10月30日付け)

 q>0の場合は、v=-{-p+√(p2-q3)}^(1/3) とすると、{ }内が負になってしまいますので、
{ }内が負にならないようにするならば、

q≧0のとき、v={p-√(p2-q3)}^(1/3)
q<0のとき、v=-{-p+√(p2-q3)}^(1/3)

と場合分けする必要がありますね。

 PARI/GPならば、 v=sign(q)*abs(p-sqrt(p2-q3))^(1/3) とするとよいと思います。


 GAI さんからのコメントです。(平成29年10月31日付け)

 らすかるさんの3次方程式での万能三角法での解法を参考に、4次方程式を解く流れを
プログラムしてみました。(→ 計算結果



                         投稿一覧に戻る