四次方程式を解く¶
フェラーリの方法では、まず四次方程式を変数変換し、三次項のない次の形にします。
$$ y^4+py^2+qy+r=0. $$
次に、多項式が二つの二次式に因数分解されるよう、レゾルベントの パラメーター $u$ を選びます。$u$ が満たす条件は、次の三次方程式です。
$$ u(p+u)^2-4ru-q^2=0. $$
三つの構造的な場合分け¶
複二次方程式($q=0$)は、二次方程式を2回解くだけで解けます。一般の 三次項のない四次方程式では、三次レゾルベントを使います。最後に、モニックな 四次方程式の三次項は $x=y-b/4$ によって消去します。非モニックな多項式は、 その前に正規化します。
declare symbol x, y, u: MathValue
def solveBiquadratic
(p : MathValue)
(q : MathValue)
: (MathValue, MathValue, MathValue, MathValue) :=
let (s1, s2) := qF' 1 p q
(r1, r2) := qF' 1 0 (- s1)
(r3, r4) := qF' 1 0 (- s2)
in (r1, r2, r3, r4)
複二次方程式への近道¶
$x^4-5x^2+4=0$ では、$t=x^2$ と置換すると $(t-1)(t-4)=0$ が 得られます。まず $t$ について解き、各値の平方根を正負ともに取れば、四つの解が すべて得られます。
solveBiquadratic (-5) 4
フェラーリの方法の一般分岐¶
すでに三次項がない次の多項式を考えます。
$$ y^4-15y^2-10y+24 =(y+3)(y+2)(y-1)(y-4). $$
ここでは $(p,q,r)=(-15,-10,24)$ なので、実際に複二次方程式ではありません。 このレゾルベントには、計算に都合のよい解 $u=1$ があります。
def p : MathValue := -15
def q : MathValue := -10
def r : MathValue := 24
def chosenU : MathValue := 1
def resolvent (u : MathValue) : MathValue :=
u * (p + u)^2 - 4 * r * u - q^2
def factorPlus : MathValue :=
y^2 + (p + chosenU) / 2
+ sqrt chosenU * (y - q / (2 * chosenU))
def factorMinus : MathValue :=
y^2 + (p + chosenU) / 2
- sqrt chosenU * (y - q / (2 * chosenU))
resolvent chosenU
(factorPlus, factorMinus)
(qF factorPlus y, qF factorMinus y)
因数分解が成り立つ理由¶
レゾルベントの解 $u$ を一つ選ぶと、三次項のない四次式を次の二つの式へ 分解できます。
$$ y^2+\frac{p+u}{2} \pm\sqrt{u}\left(y-\frac{q}{2u}\right)=0. $$
二次方程式ソルバーを2回呼び出すことで、四つの解をすべて得られます。
まとめ¶
二つの実行経路はフェラーリの証明をそのまま反映しています。複二次方程式の場合は ただちに二次方程式へ還元し、一次項が0でない場合はレゾルベントの解を一つ使って 二つの二次因子を取り出します。Egisonでは、厳密な因数分解と四つの解を記号のまま 保てます。