3次方程式厳密解 まとめ
過去ブログの転載です。
実数係数の3次方程式の厳密解のまとめです。
プログラムで実装する際にカルダノの公式をそのまま代入すると、途中式に虚数が入るので、既存の関数で求めるのは何かと困難であったりします。そのため、解の種類によって場合分けして、計算過程で虚数を使わないようにした方が何かと便利です。
途中式は省いて結果だけ羅列していきます。
このままでは扱いづらいので、
として、上の方程式を次の形に変換します。
(ただし)
これでカルダノの公式を用いることができます。以後、は、番目()の解を表わします。
解のパターンはの値で4通りに分岐します。のときのみ①となり、それ以外の場合は次の判別式で分岐します。
のとき②
のとき③
のとき④
符号チェックのときのみ分母の108は無くてもいいですが、どっちみち後の計算でDを使うので、そのままにしておいた方が無難です。
① p=q=0:実数解1個(3重解)の場合
のときのみ、このパターンになります。
(3重解)
② D>0:実数解1個 虚数解2個の場合
のときのパターンです。
として、3つの解は次のように表わされます。(注意:この1/3乗は、実数の3乗根ルート(中がマイナスのものはマイナスを外に出せる)を表します。)
③ D=0(p≠0またはq≠0):実数解2個(2重解)の場合
のときのパターンです。
(2重解)
④ D<0:実数解3個の場合
のときのパターンです。
として、3つの解は次のように表わされます。
はの偏角です。
atan(y値, x値)を標準で使えるプログラム言語であれば、atan(β, α)とすれば同等の値となります。単純にatan(β/α)だと符号によって誤りますので、注意してください。
以上を踏まえましてが求まったら、解は次式で得られます。
これですべての解が計算できましょう。
3次方程式を計算しなければならない場面に遭遇しましたら、ぜひ利用してください。これ全部覚えるのはさすがに大変ですね。