7 : 19 3次方程式

← 7‒18 p↑ もくじ i 7‒20 n →

3次方程式の奥

2018年 3月 4日
記事ID e80304

3次方程式は奥が深い。「判別式の図形的解釈」は1990年代の新発見だという。「覚えやすさを重視した3次方程式の解法」の内容を掘り下げてみたい。

  1. 式の形
  2. 「実数解が3個」グラフ上では
  3. cos の引数
  4. 偏角の表現
  5. ビエトの解法の一般化
  6. ω を使った表現
  7. 展望

式の形

【1】 最高次の項の係数が 1 の多項式は、モニックと呼ばれる。一般に、実係数の3次方程式

において(a ≠ 0)、両辺を a で割れば等価なモニック方程式が得られる。

下記の二つの方程式は、全く同じ解を持つ。後者は前者を 8 で割ってモニックにしたもの。

PNG画像21: 青い3次関数のグラフは、赤い3次関数のグラフに比べて、縦座標が8分の1。山の高さ・谷の深さが8分の1。しかし両者の零点は一致する。

左辺を3次関数と見た場合、画像の赤い実線は (15.2) のグラフ、青い点線は (15.3) のグラフ。後者は前者に比べ縦座標が8分の1になるだけで、x-軸との交点に違いはない。

このような等価性のため、あらゆる場合について初めから a = 1 と仮定しても、数学的な意味での一般性は失われない。

3次方程式を解く手順として、変数変換による2次の項の消去が行われる。「モニックにする」タイミングは「2次項の消去」より前でも後でもいい。次のどれも実行可能。

【2】 ワンステップで簡約する場合、(15.1) は、次の形の3次方程式に変換される。これは (15.1)z = ax + B つまり x = (z − B)/a と置いて、両辺を a2 倍したもの。

R = q/2, N = −P と置くと、簡約3次方程式 (15.4) は次の形になる。

(15.4), (15.4*) の解は、次の2次方程式の解と関係している。

R = q/2, N = −P と置くと:

実用上の計算では(少なくとも公式を記憶する上では)、このやり方が便利だろう。

【3】 z = x + B/a つまり x = z − B/a と置いて両辺を a で割ることによっても、(15.1) を、同じ

の形に簡約できる。その場合、係数の対応は:

【4】 係数の「3倍」を解除して B = b/3, C = c/3, p′ = 3P とすると、(15.5′), (15.6′) は次の形になる。

これは「生の」3次方程式

において z = x + b / (3a) と置いて、

の形に簡約することに当たる。

【5】 グラフの幾何学的考察などでは、「モニックに変換しないで、単に2次項を除去した3次式」を考えると便利なことがある。モニックにすると a で割る操作が絡み、「もともとの3次式のグラフ」と「2次項を除去した3次式のグラフ」の関係が複雑になる(横軸・縦軸のスケールが変わるだけだが)。そのため (15.10) の左辺の代わりに

の形も使われる。同様に、(15.4*) の代わりに:

(15.8), (15.9) から、これらの式の係数を決定すると:

「実数解が3個」グラフ上では

【1】 実係数の3次方程式を3次関数のグラフと関連付ける。一般の3次式から「2次項のない3次式」への変数変換は、それが「モニックからモニック」の変換なら、単に変数に定数が加わるだけなので、グラフが水平方向に平行移動される(「モニックからモニック」以外の簡約では変数・関数値がそれぞれ定数倍されるが、グラフの縦軸・横軸のスケールを調整すれば、本質的には同じこと)。

PNG画像32: 3次関数のグラフ(青い点線)を水平方向に平行移動して、グラフの変曲点が縦軸に重なるようにしたのが黒い実線のグラフ。前者の変曲点をI_0、後者の変曲点をIとする。

画像は f(x) = x3 − 4x2 − 32x + 64

に簡約したもの。これは「もともとのグラフの変曲点 I0 が縦軸上の I になるように、平行移動すること」に当たる。実際、簡約することは2次項を除去することだが、2次項のない3次関数

の2階導関数(第2次導関数)は、z = 0 において 0 になる:

  1. g′(z) = 3z2 + 3P
  2. g″(z) = 6z
  3. g″(0) = 0

g‴(0) = 6 ≠ 0 なので、(0, g(0)) = (0, q) は変曲点。

一般の3次関数 f(x) = ax3 + bx2 + cx + d では x = −  b 3a で変曲点になる(それを示すには、f(x) = 0 を解き f(x) ≠ 0 であることを確認すればいい)。そのことからも、2次の係数 b がゼロなら変曲点は縦軸上にある

【2】 簡約3次方程式が3個の実数解を持つということは、そのグラフの曲線が横軸と3回交わること(水平方向の平行移動によって、交わる回数は不変)。その3交点の横座標が、方程式の解 z = z1, z2, z3 に他ならない。

PNG画像33: 画像32と同じ黒いグラフ。極大点L、極小点Mを持ち、横軸と3回交わる。グラフを上下方向に平行移動してグラフの山の高さ以上に下に動かした場合、または谷の深さ以上に上に動かした場合、横軸との交点は減る。グラフを上に動かして横軸との交点が2個だけになった瞬間(青い点線のグラフ)について、その交点を左から順にG, Jとする。同様に、下に動かして2個だけになった交点をH, Kとする(赤い点線のグラフ)。

今度はグラフを垂直方向に平行移動することを考える。グラフと縦軸の交点 I の縦座標は q なのだから、曲線の垂直移動は、定数項 q の値を変化させることと等価。画像から一目瞭然だが、曲線をあまり上に移動し過ぎると、横軸との交点が2個または1個に減ってしまう。青い点線の位置まで上昇させると実数解が2個(うち一つは重解)、それより上では、実数解は1個だけ。同様に、下に移動し過ぎて赤い点線の位置を越えると、実数解は1個になる。

縦座標について言えば、関数の極大値(L の縦座標)が負になってしまうと、曲線は横軸と1回しか交わらないし、関数の極小値(M の縦座標)が正になったときも、同じ状況が生じる。

横座標について言えば、簡約3次方程式が3個の実数解を持つ場合:

  1. z1 は決して J(の横座標)より小さくならず、K より大きくならない。同様に、
  2. z2GH の間にあり、
  3. z3HJ の間にある。

【3】 各部の長さを決定する。q = 0 の場合の、次の関数 F のグラフを考えると分かりやすい(図の緑の実線):

PNG画像34a: 画像33と同様だが、変曲点Iをグラフの原点に重ねたもの。HI, IJの距離をδとし、LH, JMなどの距離をhとする。青い点線のグラフの極大点をL_1、変曲点をI_1とし、赤い点線のグラフの極小点をM_1とする。

その零点は:

  1. F(z) = z(z2 − 3N) = 0
  2. z = 0, ±√3N ········· (16.1)

どこかで極大または極小になるとすれば、そのときの z の値は:

  1. F′(z) = 3z2 − 3N = 3(z2 − N) = 0
  2. z = ±√N ········· (16.2)

以下では N > 0 の場合*を考える。このとき z は実数で、(16.2) は実変数関数 F(z) の極大値または極小値を与える。実際、F″(z) = 6z なので F″(√N) > 0 であり、 F(√N) = −2(√N)3 は極小値、同様に F(−√N) = 2(√N)3 は極大値。それぞれ図の点 M, L に当たる。

* N = 0 のときも (16.2) の解 z = 0 は実数だが、この解に対応する F のグラフ上の点は、「極値点ではない停留点」つまり鞍点(あんてん)。なぜなら、この点における2階導関数の値 F″(0) = 0 は、正でも負でもない。話を単純明快にするため、この特殊なケースについては、考察から除外する。

従って、図の HI の距離IJ の距離(変曲点 I から測った「山・谷」までの水平距離。δ とする)は、どちらも次の通り:

極大値・極小値は ±2(√N)3 なのだから、HL の距離JM の距離h とする)は、どちらも:

これは変曲点 I から測った「曲線の山の高さ・谷の深さ」に当たる。青と赤の点線の曲線は、曲線 F(z) を上下に h 移動させたものなので、LL1, MM1 などの距離は、いずれも h に等しい。

注意: 関数 F の定義から、上の式に含まれる (√N)3N3 ではない。どちらでも同じようにも思えるが(実際、この記事では N が正の場合を考えるので、どちらでも値は同じだが)、一般の場合には、前者と後者は等しいとは限らず、この区別は見掛け以上に深い問題をはらんでいる。日頃から、この二つをごっちゃにしないように気を付けよう!

【4】 一般に、任意の簡約3次関数

が相異なる3個の実数解を持つためには、曲線のグラフが、青と赤の点線の範囲に入っていなければならない。

PNG画像33(再掲): 横軸とグラフの交点である解は、次の範囲にある。z1がJK間。z2がGH間。z3がHJ間。

そのことをもっと簡単に言うと、極大値が正で極小値が負でなければならない。…例えば、その両方が正なら、図の点 L, M が両方横軸より上にあるのだから、グラフの曲線が横軸と3回交わらないことは明らか。

言い換えると、極大値と極小値の積が負ということが、相異なる実数解が3個あるための条件。極大値・極小値の縦座標は、変曲点の縦座標の上下 h にあるのだから、問題の積は:

この (16.5) を一種の判別式と考えることもできる。

【5】 (16.4) によると、(16.5) は次に等しい。

これは、関連する2次方程式 (15.7)判別式 D に他ならない(詳細)。判別に必要なのは正負だけなので、q = 2R と置いて全体を4で割ってもいい:

別の考え方として、曲線が横軸と3回交わるためには、曲線と縦軸の交点の座標 q が、青と赤の点線の間に入っていなければならない。そのことから、実係数の簡約3次方程式が相異なる3個の実数解を持つ必要条件は、

であり、それは

と等価。両辺を2で割って2乗すると、「異なる3個の実数解を持つかどうかの (16.7) 型の判定法」が、再び得られる:

(16.8) をこう書くこともできる(重解を含めれば、不等号を にすることも可能)。

(16.8), (16.9) により 0 < h, 0 < N つまり h ≠ 0, N ≠ 0

【6】 この節の内容は RWD Nickalls: A new approach to solving the cubic(1993年)に基づく。Nickalls は変曲点 IN と呼び、I の縦座標 q = 2RyN と呼んでいるが、これらの「N」は、本稿の N = −P = δ2 とは意味が異なる。この節の式は、Nickalls の式で a = 1 の場合に当たる。他の「判別式」との関係については「いろいろな判別式」を参照。

cos の引数

3次方程式が3個の実数解を持つ場合、三角関数 cos を使ってそれらの解を表せる。cos の引数には、幾つかの書き方がある。

【1】 以下では判別式 D が負と仮定し、(15.7) または同じことだが (15.7*) の解(共役複素数)のうち、虚部が正のものを α とする。既に見たように、このとき複素数 α の偏角は:

注意: この場合の分母は、導出の仕方から (√N)3 ではなく N3 になる。N が正なのでどちらでも値は同じ。実際、別の方法で導出すると、この分母は (√N)3 になる。

簡約3次方程式 (15.4)3解は:

z2, z3 をまとめて 2√N cos  φ ± 2π 3 と書ける。同じ意味で 2√N cos  2π ± φ 3 とも書ける。

任意の実数 t について cos t = cos (−t)。上記では t = φ − 2π, −t = 2π − φ

【2】 こう書くこともできる。

(17.3)(17.3a) では、cos の引数が π = 180° ずれている。この場合 cos の値は「絶対値が同じ・符号が逆」なので、cos の係数の符号を逆にすれば、式全体は同じ値。(17.4)(17.4a) も同様。ところで、(17.3a)cos の引数の符号を変えても、値は変わらない:

(17.3)(17.3b) では、cos の引数が互いに補角(和が π = 180°)。この場合も cos の値は「絶対値が同じ・符号が逆」なので、cos の係数の符号を逆にすれば、式全体は同じ値。結果的に、上記の偏角 φ を使って (17.2) の形で解 z1 を得るとき、同じ式において、分数に含まれる φ を補角 π − φ に置き換えcos の引数全体を補角に置き換えるのとは異なる)同時に cos の係数の符号を逆にすると、(17.3b) の形となり、別の解 z2 を得る。

【3】 例:

の3解のうちの2解について:

φ の補角 φ を使って (17.7)(17.3b) の形にすると:

(17.7)+ 2π が不要になり、すっきりした形になった。y = cos φ なら y = cos (π − φ) なので、arccos yarccos (−y) は、互いに補角。α の虚部は正なので、φ は第1または第2象限の角。その補角 φ も第1または第2象限。従って arccos の主値は、正しい象限の角を返す。

次のように一つの式で書くと、簡潔さの違いが感じられる(値はどちらでも同じで、本質的な違いはない)。

【4】 z2 に限らず、3個の実数解全てを φ ベースで表現することもできる。

…の代わりにこう書いても、解の順序を除き結果は同じ:

Numerical Recipes in Fortran 77 (PDF) の179ページでは、この形式が使われている。角度を逆回りにして

とすれば、解が小さい順にソートされる。

【5】 簡約3次方程式が相異なる3個の実数解を持つとき、3解の正負・大小には、次の制約がある。

PNG画像13: 複素平面上で、原点を中心とする円周上に120°の等間隔で配置された3点H, H′, H″の横座標が、それぞれ実数解z1, z2, z3に当たる。詳細は別記事「覚えやすさを重視した3次方程式の解法」参照。

α の虚部が正という仮定から α の偏角は 0 < φ < π を満たす。α の立方根のうち、偏角 φ/3, (φ + 2π)/3, (φ + 4π)/3 のものをそれぞれ u, u′, u とすると:

従って:

これらの値の定数倍(具体的には 2√N 倍)がそれぞれ z1, z2, z3 なのだから、大小関係は:

重解がある場合には等号が成り立つが、ここでは方程式が相異なる3個の実数解を持つと仮定している。z1, z2, z3 から一定の1次式(モニック経由なら単なる定数差)で変換される x1, x2, x3 も、同様の関係 x2 < x3 < x1 を満たす(ただし、もともとの3次方程式の3次の係数が負の場合、変数変換のやり方によっては不等号の向きが逆になることがある)

最小の解 z2 は区間 (−2√N, −√N) 内、2番目に小さい解 z3 は区間 (−√N, √N) 内、最大の解 z1 は区間 (√N, 2√N) 内にある。これらは、それぞれ (17.10), (17.11), (17.9) の余弦に対応。

3個の実数解を持つ簡約3次方程式では、解の絶対値が 2√N を超えることはない。逆に言えば、絶対値が 2√N を超える実数解を持つ3次方程式では、残りの2解は実数ではない。

【6】 このことを幾何学的に考えてみよう。

PNG画像34b: 実数解z1は点Jと点Kの間にあり、実数解z2は点Gと点Hの間にある。

(15.4*) を用い、図の「青い点線の曲線」を f1(z) = z3 − 3Nz + 2R と書くと、(16.3) から N = δ2。図の変曲点 I1 の縦座標は (16.4) から h = 2δ3、これは f1(0) = 2R の値に当たる。これらを使って f1(z) の式を書き換えると:

右端の因数分解では、z = δf1(z) = 0 の解であること(点 J の横座標から明らか)を利用した。(17.12) によると、f1(z) = 0 のもう一つの解は z = −2δ。これは | GI | = 2δ を意味する(従って | GH | = δ)。同様に「赤い点線の曲線」から、| IK | = 2δ, | JK | = δ。結局 | GK | = 4δ。「相異なる3個の実数解を持つ簡約3次方程式では、どの解も、変曲点を中心に幅 ±2δ = ±2√N の範囲にある」ことが分かる。

その場合の3解は必ずこの「幅 4δ の区間」内にあるが、特定の一つの方程式を考えた場合、最大の解 z1 と最小の解 z2 の差が 4δ に達することはない。α の偏角(の主値)が最小値 φ = 0 のとき、z1K の位置、z2H の位置。差は 3δ にすぎない(赤い点線のグラフの零点に当たる。この場合、z3H の位置にあり重解)。偏角の最大値 φ = π に対しては、z1, z2 はそれぞれ J, G にあり、やはり差は 3δ(青い点線。z3 = z1 の重解)

対称性から、差が最大になる場所があるとすれば中間の φ = π/2 だろう。その場合、3次式のグラフは画像の実線と同じになり、零点は (16.1) の通り。従って z1 − z2 = 2√3δ ≈ 3.46δ となる。

偏角の表現

【1】 判別式 D < 0 の場合、α の偏角 φ を決定するには、複素平面上において α の実部・虚部・絶対値を3辺とする直角三角形を考えればいい

普通は「実部÷絶対値」の arccosφ とするが、原理的には「虚部÷絶対値」の arcsin や「虚部÷実部」の arctan を使って φ を決定することもできる。

実例で考えてみよう。3次方程式 8x3 + 4x2 − 4x − 1 = 0 に対応する α第1象限の点。「どのタイミングでモニックにするか」といった計算の進め方で、解の実部・虚部のスケールは変わるが、それらの比(従って α の偏角 φ)に、違いはない(方程式の3次の係数が負なら、変数変換のやり方によっては比の符号が変わり、φφ の補角に置き換わることがある)。一旦モニックにせずワンステップで簡約した場合には:

次のどの表現も有効で、値は同一。

従って、普通

の代わりに、こう書いてもいい。

あるいは:

【2】 次に α第2象限にある場合を考えてみよう。上記の3次方程式において、2次の係数と定数項の符号をそれぞれ逆にすると 8x3 − 4x2 − 4x + 1 = 0 となる。この場合:

虚部と絶対値については、(18.2), (18.3) と同じ。【1】では3種類の逆三角関数が同じ値を返してくれたが、今回の結果はあまり整然としていない。

arccos は問題なく動作する。一方、この arcsin は、引数が Re (α) と無関係。従って Re (α) の符号の変化が反映されず、値は依然として第1象限の角。結果的に、これは φ の補角。前述のように、補角をそのまま cos の引数の一部として使い、同時に cos の係数の符号も変えれば、有効な別の解 z2 が得られる。

arctanRe (α) の符号を感知するものの、主値の問題のため、φ180° 反対の第4象限の角を返す。結果は「補角の符号を変えたもの」。cos にとって「補角の符号を変えたもの」は「補角」と同じことなので、この場合も、補角と同様に扱えば、解 z2 が得られる。

arcsin, arctan をこのように使うと、象限の問題が面倒だし、α の虚部を計算する手間も生じる。arccos 経由なら象限は自動設定され、α の虚部も必要ない。

これに加えて、arctan を使う場合には、φ = π/2 のとき定義域の問題が生じる(これは実用上、大きな問題ではない)。

【3】 上記とは別の、面白い arcsin の使い方がある。

…という通常のやり方の代わりに、こうする:

根拠は次の通り。φ は第1または第2象限の角、η は第4または第1象限の角。ɡ = R N3 と置くと φ = arccos (−ɡ), cos φ = −ɡ。このとき sin (π/2 − φ) = −ɡ, sin (φ − π/2) = ɡ なので、η = arcsin ɡφ より 90° 小さい。従って η/3φ/3 より 30° 小さく、φ/3 − 120° より 90° 大きい。ゆえに sin (η/3) = sin ((φ − 2π)/3 + π/2) = cos ((φ − 2π)/3) = cos ((φ + 4π)/3)。この値に 2√N を掛けると解 z3 を得る。他の2解についても同様。

【4】 前節【4】にある「補角バージョン」の z2 と、上記「sin バージョン」の z3 を組み合わせると、3次方程式の3個の実数解のそれぞれが、± kπ の形の角度調整なしに、直接的に表現可能になる。

8x3 − 4x2 − 4x + 1 = 0 の3解は:

  1. x1 = 7 3  cos [ 1 3  arccos (−  1 2√7 )] + 1 6
  2. = 0.900 968 867… = cos (π/7)
  3. x2 = −  7 3  cos [ 1 3  arccos ( 1 2√7 )] + 1 6  ········· (18.4)
  4. = −0.623 489 801… = cos (5π/7)
  5. x3 = 7 3  sin [ 1 3  arcsin ( 1 2√7 )] + 1 6
  6. = 0.222 520 933… = cos (3π/7)

8x3 + 4x2 − 4x − 1 = 0 の3解は:

  1. x1 = 7 3  cos [ 1 3  arccos ( 1 2√7 )] 1 6
  2. = 0.623 489 801… = cos (2π/7)
  3. x2 = −  7 3  cos [ 1 3  arccos (−  1 2√7 )] 1 6
  4. = −0.900 968 867… = cos (6π/7)
  5. x3 = 7 3  sin [ 1 3  arcsin (−  1 2√7 )] 1 6
  6. = −  7 3  sin [ 1 3  arcsin ( 1 2√7 )] 1 6
  7. = −0.222 520 933… = cos (4π/7)

実用上はどれか1種類の書き方に統一して ±2kπ で角度を回す方が手っ取り早いけれど、±2kπ を一切使わずに3解を表現できるというのは面白い。これに加えて、φ が第1象限の角なら z1 について、φ が第2象限の角なら z2 について、それぞれ arcsin, arctan を使って角度を表す方法(上記【1】【2】)もある。例えば、(18.4) をこう書くこともできる。

定義域に含まれる任意の t, y について cos (−t) = cos (t), arcsin (−y) = −arcsin (y), arctan (−y) = −arctan (y) なので、cos [ 1 3  arcsin (−y)] cos [ 1 3  arctan (−y)] という形における y の前のマイナスは、あってもなくても構わない(arccos に関しては、同じことはできない)。

ビエトの解法の一般化

3次方程式が3個の実数解を持つケースについて、カルダノの公式の「虚数の立方根」を強引に計算すれば、結局は虚部が消滅して、ビエトの解法と本質的に同じ三角関数表現にたどり着く。ビエト自身の本来の解法は、複素数を経由しない軽妙なものだったらしい。chord 関数(現代の sin 関数の変種)とその逆関数が使われたようだ。

【1】 簡約3次方程式 g(z) = 0 において、とりあえず

と置く。係数 A と三角関数の引数 θ は、以下の計算の過程で決定される。g(z) として、(15.4*) の形

を使い、そこに (19.1) を代入すると:

一方、余弦の3倍角の公式から:

(19.2)(19.3) に関連付けるため、最高次の係数が 4 になるように、(19.2) の両辺を 4/A3 倍する。

(19.3), (19.4) の1次の係数の比較から:

  1. −3 = −12N/A2
  2. 3A2 = 12N
  3. A = ±2√N ········· (19.5)

3個の相異なる実数解を持つケースを考えるなら、N ≠ 0, A ≠ 0 であり、この式変形は正当化される。

(19.3), (19.4) の定数項の比較と (19.5) から:

  1. −cos 3θ = 8R/A3
  2. −cos 3θ = 8R / (±2√N)3 = ±R / (√N)3
  3. cos 3θ = ∓ R / (√N)3 ········· (19.6)
  4. 3θ = arccos [R / (√N)3]

注意: (19.6) の分母は、その直前の式から明らかなように (√N)3 であり N3 ではない(N が正なので、どちらでも値は同じ)。

(19.5) の「プラス・マイナス」でプラスを選んだ場合、(19.6) の右辺の「マイナス・プラス」ではマイナスが選択される。次の組み合わせは、この条件を満たす:

これらを (19.1) に入れれば、3次方程式の一つの解

が得られる。(19.5a)θ2π/3, 4π/3 を足したものも (19.6) を満たすので、残りの2解も得られる(詳細)。

一方、(19.5) の複号でマイナスを選んだ場合には:

これらを (19.1) に入れれば、3次方程式の(別の)一つの解

が得られ、θ2π/3, 4π/3 を足すことで、残りの2解も得られる。(19.5a) と比較した場合、(19.5b) に基づく計算は「角度 φ = 3θ を補角で置き換え、同時に cos の係数の符号を変えること」に当たる(引数の符号を逆にすると arccos は補角を返す)。

φ を補角で置き換えて cos の係数の符号を逆にしても、最終的な結果は同じ」という事実は、今まで「三角関数・逆三角関数の性質」の問題として扱われていた。「補角の3分の1」「120° の回転」などが絡み合い、見通しが悪かった。(19.5) 以下の複号は、この点について、別の理解を可能にしてくれる。係数に当たる (19.5) の符号を変えれば、(19.6) によって逆三角関数の引数の符号が変わる…。ただそれだけのことで、補角がどうこうと考える必要もない。

【2】 代わりに z = A sin θ と置き、正弦の3倍角の公式を使うと、前記の「sin バージョン」が得られる。その場合、(19.3) に当たる式は:

sin 3θ の符号は、(19.3)cos 3θ の符号と異なる。そこから派生する符号の違い以外は、何もかも【1】同様に事が進み、(19.5a) に当たるのは:

sin 3θ の符号がプラスであることが尾を引いて、arccos の引数にあったマイナスは、このバージョンでは消滅する(これは変数 R の前に付く符号のこと。R そのものの正負ではない)。arcsin の引数の符号と sin の係数の符号を両方反転させれば、(19.5b) に当たる形になる。

この場合、事実関係としては「arcsin の引数の符号が変われば arcsin の値の符号も変わる」というだけなので、(19.6a), (19.6b) の等価性は自明。具体的に、

のような式のマイナスが目障りだと思えば、マイナスを外に出して

としても、値は変わらない。cos バージョンで同様の操作をすると、別の解(有効な解であることには変わりないが)を表す式になってしまう。

【3】 ɡ = R / (√N)3 と置く。(16.10) によれば、簡約3次方程式が相異なる3個の実数解を持つ必要条件は N > 0 かつ | ɡ | < 1

ɡ が実数で | ɡ | > 1 の場合、3次方程式は実数解1個・非実数解2個を持つが、その場合についても、実変数・実数値関数を使った同様の表現が存在する(詳細)。(19.1) の代わりに

と置く。媒介変数 θ は普通の意味での「角度」ではないが、双曲線関数の「3倍角」の公式から次が成り立つ:

これは (19.3) と全く同じ形の式であり、全く同様に処理可能。結果は:

実変数・実数値関数としての cosh−1 は定義域が [1, ∞) なので、ɡ の正負に応じて (19.7a), (19.7b) を使い分ける必要がある。

【4】 最後に、上記の ɡ が実数にならない場合、すなわち N < 0 の場合を考えてみる。(16.2) によれば、この場合、(実変数としての)3次関数にはそもそも極値が存在せず、グラフをどう平行移動しても横軸との交点は1個だけ。しかし、その解を表現するビエト風の表現は存在する(詳細)。

と置くと「3倍角」の公式から:

今までと同様のパターンだが、1次の項(上記の第2項)の符号がこれまでとは逆になっている。結果として、(19.4) に当たる式…

…と、1次の係数の比較すると:

  1. 3 = −12N/A2
  2. A = ±2√N = ±2√P ········· (19.8)

それ以外の点は同様に進み、結果は:

sin バージョン同様、sinh バージョンの二つの式は等価。(19.8) の複号は、どちらを選んでも構わない。

【5】 cos バージョン (19.5a/b)、sin バージョン (19.6a/b)、cosh バージョン (19.7a/b)、sinh バージョン (19.8a/b) のいずれにおいても、逆三角関数・逆双曲線関数の引数の符号は R の符号に依存する(引数の分母は常に正)。式の上での R の符号は、通常、三角関数・双曲線関数の係数 A = ±2√N の符号とは逆になる(理由)。sin バージョンだけは例外で、この2カ所の符号が一致する。(これらは式の上での符号の話で、R が負数なら R は正。)

【6】 例: z3 − 3z + 3 = 0 の実数解を求める。

N = 1, R = 3/2, ɡ = 3/2 > 1 なので (19.7b) を使って:

  1. A′ = −2
  2. θ′ = 1 3  cosh−1 ɡ = 0.320 807 883… ········· (19.9)
  3. z1 = A′ cosh θ′ = −2.103 803 402… ········· (19.10)

例題1(10.5) と同じ結果が得られた。数学的な意味においては、(19.9) の代わりに

としてもいい。(19.10) の代わりに

としてもいい。

【7】 「実数解が1個のみ」のケースにおいて、残りの2個の複素数解も同様の式で(ビエト風に)表すことができる。その場合、ストレートに複素関数を使うこともできるが、折衷的な方法として、2種類の実変数・実数値関数を考え、それらを使って実部と虚部を別々に表現することも考えられる。詳細は別記事参照。

ω を使った表現

【1】 2次方程式 (15.7) または (15.7*) の2解を α, β とし、α の立方根の一つを uβ の立方根の一つを v とする。z1 = u + v が簡約3次方程式の実数解なら、残りの2解は(少なくともそれが非実数解の場合には)、次のように表される1 の虚数立方根 ω に基づく):

計算そのものは、3次方程式が3個の実数解を持つ場合にも成立する。その場合 uv が複素共役なので u − v は純虚数。そのため (20.1) の右辺第2項は実数になり、結局 (20.1) 全体が実数となる。

3個の実数解がある場合、z1 = u + v = 2√N cos  φ 3 の背後には次の関係がある

従って、問題の純虚数は u − v = (2√N sin  φ 3 )i であり、(20.1) から:

  1. z2z3 = −  z1 2 ±  3 2 (2N sin  φ 3 )i2
  2. z2 = −  z1 2 − 3N sin  φ 3  ········· (20.2)
  3. z3 = −  z1 2 3N sin  φ 3  ········· (20.3)

追記: 加法定理によって cos (φ/3 + 2π/3) = (−1/2) cos (φ/3) − (3/2) sin (φ/3) なので、次のように (17.3) 経由で (20.2) を導くこともできる。

右端の式の第1項は z1/2 に等しい。(20.3) についても同様。

相異なる3個の実数解があるケースでは、「原点を中心とする半径 2√N の円周上に基準点を置いて、円周上でその 120° 前後の位置を考え、そこから実軸に落ちる影を見ている」。基準点は3解のどれに対応していても構わない。つまり (20.2), (20.3) の右辺の z1z2z3 に置き換えることもできる。その場合、(20.2)z3z1 を表し、(20.3)z1z2 を表す。

【2】 例:

z3 − (7/12)z + (7/216) = 0 の解の一部は:

(20.4)(20.2) を適用すると、z2 をこう書くことができる。

別の例として、(20.6)(20.3) を適用すると:

(20.4), (20.5) などの表現と比べると、(20.4a), (20.5a) の表現は複雑。本来、逆三角関数・三角関数1個ずつで済むはずなのに、それらが2個ずつ使われている。「円周上の 120° の回転」が、1 の虚数立方根との積として表現されている。

佐藤郁郎先生のコラムでは、(20.4a) のような形が繰り返し登場する。「sinπ/5とcosπ/7 (その5)」(2016年)、「正七角形と正九角形(その6)」(2017年)など。120° の回転」なのだから、もちろん三角関数の引数を直接 2π/3 ずらすことでも、同じ値が得られる。例えば (20.6) が与えられ、そこから z1 を求めたい場合、

としてもいい。実際、(20.4b) に余弦の加法定理を適用すれば (20.4a) になる。

【3】 3次方程式の解法における特徴的な事実として、2種類の立方根の積 uvP = N に等しい。従って:

  1. (u − v)2 = (u + v)2 − 4uv
  2. = z12 − 4N

ゆえに (20.1) は:

  1. z2z3 = −  z1 2 ± i  3 2  (u − v)
  2. = −  z1 2 ± i  3 2  z12 − 4N
  3. = −  z1 2 ∓  3 2  4N − z12 ········· (20.7)

この最後の根号から、「z2z3 が実数であるためには z12 ≤ 4N であることが必要」という事実(※注)が再確認される。「3個の実数解が存在するためには、解の絶対値が 2√N を超えてはならない」という以前の観察とも合致する。

(20.7) は、RWD Nickalls 先生が2009年に記述したもの(On Note 92.35)。平方根より引き算 u − v の方が速いので数値計算上の実用性はないが、邪魔な虚数単位がきれいに収納されている。

※注 z2z3 が実数なら、z1 は点 K の横座標より大きくならない。つまり 2δ 以下。この不等式の両辺(負ではない)を2乗して N = δ2 を使えば、z12 ≤ 4N

展望

覚えやすさを重視した3次方程式の解法」は親切だが表面的だった。この記事では、周辺・背後にある幾つかの問題を掘り下げてみた。

話題の一つは、RWD Nickalls による幾何学的考察。その特徴は、幾何学的なパラメーターを使った、3次方程式の仕組みの可視化。「異なる3個の実数解を持つ ⇔ 極大値が正で極小値が負 ⇔ 極大値と極小値の積が負」という説明は明快で、その積を「幾何学的判別式」とする、というのは納得がいく。3次方程式というと何世紀も前の数学のような気がするが、このような議論は1990年代まで(少なくとも文献上は)なかったらしい。The geometry of the discriminant of a polynomial (1996) の結論部で、著者の Nickalls たちはこう述べている(大意)。

判別式の定義は文献によって不統一である。「われわれが定義した形が幾何学的判別式の決定版であり、規範である」と主張することは許されるだろうか? この幾何学的判別式は、従来の判別式と一定の関係にある。これは筆者が1993年の論文において3次方程式の新しい解法を記述した後で、得られた結果である。

「新発見・新標準」という主張は少々あくが強いかもしれないが、Nickalls の観察は、実際、数学的価値を持つものだろう。この記事では、その一部を紹介した。「幾何学的判別式と従来の判別式の関係」については割愛した(別記事「3次方程式の判別式」参照)

もう一つの話題として、本稿では双曲線関数を使った3次方程式の解法に少し触れた。もう一歩踏み込めば、複素数の範囲の3解全てについて、同様の表現が成り立つ。双曲線関数についてきちんと導入してから、「3次方程式の解」という具体的な問題と絡めつつ複素関数への道筋をたどれば、面白いハイキングコースとなるかもしれない(別記事「3次方程式と双曲線関数 ☆ 複素関数いじっちゃお」参照)。

Nickalls とも双曲線関数とも関係ない話題も、幾つか紹介した。ビエト風の解法では、角度を 2kπ/3 ずつずらすことで3解を得るのが普通だが、偏角の表現を工夫することで、±kπ/3 という角度調整を含まない解の公式を作ることができる。これは、あまり知られていない事実のようだ(ウェブ上でいろいろ見た限りでは、どこにも記されていない)。


3次方程式の奥 > 作成メモ・更新履歴

  1. 2018年2月6日: 「覚えやすさを重視した3次方程式の解法」(2018年2月11日公開)と関連してメモ開始。
  2. 2018年2月28日: 下書き公開。
  3. 2018年3月4日: 初版(v1)公開。
  4. 2018年3月7日: 第2版(v2):
    • 「cos の引数」【5】の間違いを修正。「もともとの3次方程式の3次の係数が負の場合、変数変換のやり方によっては不等号の向きが逆になることがある」という記述が抜けていた。
    • 「偏角の表現」【1】に同様の記述を追加: 「方程式の3次の係数が負なら、変数変換のやり方によっては比の符号が変わり、φφ の補角に置き換わることがある」
    • 「偏角の表現」【4】の式の番号を修正。「(17.3b) の「補角バージョン」」→「前節【4】にある「補角バージョン」」
    • ω を使った表現」【2】の変な表現を修正。「済むところを」→「済むはずなのに」
  5. 2018年3月11日: v3: 「ω を使った表現」【3】に注を追加。「偏角の表現」【4】末尾に説明を追加。その他、細部。
  6. 2018年3月15日: v3.1: altテキストの誤字修正。「変曲線」→「変曲点」
  7. 2018年3月18日: v4: 最初の節の見出しを「式の書き表し方」から「式の形」に変更。別記事「3次方程式の判別式」を公開したのでリンク設定。
  8. 2018年3月19日: v5: 「式の形」【1】に「左辺を3次関数と見た場合」という語句を追加し、意味を明確にした。
  9. 2018年3月24日: v6: 「ω を使った表現」【1】に追記。表現の細部の調整(約5カ所)。
  10. 2018年5月3日: v7: 表記不統一の解消。「幾つか・いくつか」
  11. 2018年12月30日: v8: 「ω を使った表現」には ω の定義が記されていなかった。それを改めた。一部変数名を変更。その他、小さな編集(約20カ所)。
  12. 2019年1月6日: v9:
    • (16.2) の下の誤字修正。「g0(√N) = 2N3 は極大値」→「g0(−√N) = 2N3 は極大値」
    • (16.2) の下と (19.6) の下: N3(√N)3 の区別について注意を追加。
  13. 2019年1月27日: v10:
    • 誤字修正。CSSなし表示で、括弧のネストがおかしい式があった(ビエトの解法の一般化【6】)。
    • N3(√N)3 をなるべく正確に使い分けるようにした。冒頭に目次を追加。一部変数名を変更。その他、小さな編集(約5カ所)。
  14. 2019年2月12日: v10.1: 「cos の引数」【6】の脱字修正。f1(z) = z3 − 3δ2z + 2δ3z が抜けていた。
  15. 2019年2月13日: v10.2: 「cos の引数」【6】の誤記修正。偏角の最大値「φ = 2π/3」→「φ = π」。中間の「φ = π/3」→「φ = π/2」。
  16. 2019年2月17日: v11:
  17. 2019年2月24日 v12: 「cos の引数」: 表現を簡潔化(約10カ所)、【1】に注釈追加。
  18. 2019年4月21日 v13: www.geocities.jp のリンク切れを修正。
  19. 2021年1月13日 v14: 「「実数解が3個」グラフ上では」【3】を更新、「N > 0 なら」を「以下では N > 0 の場合を考える」に改めた(一時的な仮定でなく、以下ずっとその話なので)。N3(√N)3 の区別に気を付ける理由を明示、(17.1) の下にも注意を追加。
  20. 2022年2月23日 v15: 「「実数解が3個」グラフ上では」【3】を更新、N = 0 のケースについての付記を脚注形式にして少し改善。読みやすいようにパラグラフの順序も変更。「2次の・3次の」という文脈において「2次導関数」という表現は紛らわしいので「2階導関数」に改めた。関数 g0F に改名。その他、小編集。

この記事のURL

パブリックドメイン


3次方程式の判別式

2018年 3月18日
記事ID e80318

いろいろな判別式。Qiaochu Yuan による恐ろしくエレガントな解法。

[1/3] 判別式としての性質

「2次方程式の判別式」はよく知られている。それを出発点に、3次方程式への拡張を試みる。

【1】 実係数の2次方程式 ax2bxc = 0 の2解を x1, x2 とする。この方程式は

と等価で、

とも等価なので、係数の比較から:

これらの関係を使うと、解の差の平方

a, b, c の関数として表現できる。

  1. Δ = (x1 − x2)2 = (x1 + x2)2 − 4(x1x2) = (−b/a)2 − 4(c/a)
  2. Δ = (b2 − 4ac) / a2 ········· (1)

(*) の値は:

  1. x1 = x2 なら 0。それ以外の場合には…
  2. x1, x2 が実数なら、その差(実数)の平方なので、正。
  3. x1, x2 が共役複素数なら、その差(純虚数)の平方なので、負。

つまり「方程式が重解を持つ・異なる実数解を持つ・実数ではない解を持つ」場合に応じて、それぞれ Δ = 0, Δ > 0, Δ < 0 となる。「値の正負によって、解の種類を判別する」というこの性質は、Δa2 倍して分母を払っても、変わらない(実係数と仮定しているので a2 は正の実数)。実際、(1)a2 倍した b2 − 4ac は、2次方程式の判別式として知られている。

【2】 実係数の3次方程式

について、同様のことを考えてみよう。

(2) の3解を x1, x2, x3 とすると、(*) に当たるものは、次のような「解の差の平方」の積

直ちに分かることとして、x1, x2, x3 の中に等しいもの(重解)があれば Δ = 0 となり、x1, x2, x3 が相異なる実数なら Δ > 0 となる。3次方程式には、この他「1個の実数解と1組(2個)の共役複素数解を持つケース」があり、その場合 Δ < 0 となる。そのことを示すため、(2) が実数解 α と共役複素数解 β, β を持つとしよう。(**) の積を構成する3因子の一つは

に当たり、これは共役複素数の差(純虚数)の平方なので負。平方するので、引き算の順序は問題にならない。残りの2因子は:

ここで β − α, β − α は、共役複素数のペアのそれぞれ(の実部)から等しい実数を引いたものなので、再び共役複素数のペア。従って、それらの積は実数、その実数の平方は正なので、この2因子は Δ の符号に影響しない。のみならず、Δ の値は必ず実数になることが分かる(方程式の係数が実数のときには)。

このように、Δ は3次方程式の判別式としての性質を持つが、Δ に何かを掛けたものも、(積の符号についての区別が失われない限り)同様の性質を持つ。従って「具体的に何を3次方程式の判別式と定義するべきか」は、これだけでは分からない。2次方程式の場合には a2Δ が判別式とされるのだから、3次方程式の場合も Δ に何かが掛け算されるのかもしれない。

【3】 とりあえず、2次方程式の判別式の場合と同様に、係数 a, b, c, d の関数として、Δ を表現したい。(2)

と等価で、

とも等価なので、係数の比較から次が成り立つ。

これが3次方程式の解と係数の関係であり、言い換えれば、3次関数の根(零点)と係数の関係。2次方程式についての【1】の計算と同様に(もちろんそれより複雑だが)パズルみたいな式の変形を幾つか組み合わせると、(**) の右辺を (3), (4), (5) の左辺の多項式の和・積・定数倍の組み合わせに帰着させることができる(→ 付録B)。Qiaochu Yuan 先生は、恐ろしくエレガントな別の解法を投稿している(→ 付録A)。次節では、それらとは違う方法を紹介したい。

[2/3] 標準判別式

【1】 実係数の3次方程式

の両辺を a で割ってから x = z − b / (3a) と置いて展開・整理すると、方程式は次の形(2次の係数が 0)に簡約される。

この導出は易しい(a = 1 の場合の途中計算が別記事に)。

(2) の3解を z1, z2, z3 とすると、解と係数の関係から次が成り立つ。

ついでに、後で使うので、ちょっと「パズルみたいな計算」を。

【2】 以下のアイデアの核心は、y を変数とする新しい3次方程式 G(y) = 0 を構成し、その3解が次の値になるようにすること。

  1. y1 = (z2 − z3)2 ········· (6)
  2. y2 = (z3 − z1)2 ········· (7)
  3. y3 = (z1 − z2)2 ········· (8)

それができれば、解と係数の関係から

となり、G(y) の定数項から、自然に

が得られる。

(5) を使うと、(6) を次のように変形できる。

  1. y1 = (z2 − z3)2
  2. = (z12 + z22 + z32) − z12 − 2(z1z2z3) / z1
  3. y1 = −2p − z12 + 2q / z1 ········· (9)

対称性により、添え字を1個ずつずらせば、(7), (8) についても同じ計算ができる:

従って、変数 z と 新しい変数 y が次の関係を満たすような形で G(y) を構成すれば、それは要求通りの3個の根(零点)を持つ。

それを実現するためには、(12) の条件に基づき zy の式で表して、それを (2) に代入すればいい。言い換えれば、連立方程式を解くような感じで、(2)(12) から z を消去すればいい。(12) の分母を払うと:

  1. yz = −2pz − z3 + 2q
  2. z3 + (y + 2p)z − 2q = 0

そこから (2) を引くと:

  1. (y + p)z − 3q = 0
  2. z = 3q / (y + p)

これを (2) に代入して (y + p)3 倍し、展開して q で割ると:

(*)(**) の関係から:

Δ が方程式の係数で表された!

これは Burnside & Panton: The Theory Of Equations, Vol. I, pp. 81–83 による。

https://archive.org/details/in.ernet.dli.2015.215730/page/n100/mode/1up

【3】 (3), (4)(14) に代入すれば、一般の3次方程式 (1) に対する Δ が得られる:

単純な代入が許される理由は次の通り。一般の3次方程式 (1) の解 x1, x2, x3 と、簡約された3次方程式 (2) の解 z1, z2, z3 は、変数変換 x = z − b / (3a) によって結び付いているので、定数の違いしかない。従って、どちらの方程式でも「解の差」は同じ。どちら経由で計算しても結果は同じになる。

PNG画像41: 3次関数のグラフ(青い点線)を水平方向に平行移動して、グラフの変曲点が縦軸に重なるようにしたのが緑の実線のグラフ。

関数のグラフで言うと、この形の簡約は、例えば図の青い点線の曲線を水平方向に移動して、緑の実線の位置(変曲点が縦軸上になる)に置くこと。横軸との交点の位置は変わるが、交点の間隔は変わらない

【4】 例: f(x) = x3 + 10x2 + 31x + 30(画像の青い点線)の零点は x1 = −2, x2 = −3, x3 = −5

対応する簡約3次式 g(z) = z3 − (7/3)z + 20/27(緑の実線)の零点 z1 = 4/3, z2 = 1/3, z3 = −5/3 は、それぞれ x1, x2, x310/3 を足したもの。

g(z) = 0 の「解の差の平方」を (6), (7), (8) のように書くと:

  1. y1 = (1/3 − (−5/3))2 = 4
  2. y2 = (−5/3 − 4/3)2 = 9
  3. y3 = (4/3 − 1/3)2 = 1

代わりに f(x) = 0 の解 x1, x2, x3 を使って計算しても、「解の差」に違いはないので同じ結果になる。

「解の差の平方」の積は Δ = 4 × 9 × 1 = 36。これは次の値と一致する:

付記: G(y) = y3 + 6py2 + 9p2y − Δ = 0 の2次・1次の係数についても、当然、解と係数の関係が成り立つ。「解の差の平方」の和は 4 + 9 + 1 = 14。これは次の値と一致する:

「解の差の平方」を2個ずつ掛けた和は 4 × 9 + 9 × 1 + 1 × 4 = 49。これは次の値と一致する:

【5】 (15) は既に判別式としての性質を持っているが、それを a4 倍した形が、(標準的な)3次方程式の判別式とされる:

「符号だけ分かればいいので、分母は要らない」ということだろう。上の f(x) = 0 の例では:

g(z) = 0Δ = −4p3 − 27q2 を適用しても、同じ値が得られる:

これは理論上の判別式であり、実際の3次方程式の解法では、違う形の判別式が使われることが多い。

[3/3] いろいろな判別式

【1】 前節同様、一般の3次方程式

a で割ってから x = z − b / (3a) と置いて

の形にする。ここで

と書くことができれば(w ≠ 0)、次の6次方程式が得られる(ビエトの置換)。

X = w3 と置けば、2次方程式に帰着される:

この2次方程式の解 α の立方根 w(3) に入れれば (2) の解が得られ、変数を逆変換すれば (1) の解が得られる。実は、2次方程式の解が α, β のとき、(3) はそれらの立方根の和に等しい:

ただし、2種類の立方根の選択に関しては、2次方程式についての解と係数の関係から αβ = − p3 / 27 つまり

という条件が必要

【2】 2次方程式 (5) の判別式 D1 は:

(8) の符号は、一番右側の式の分子(それを D0 とする)の符号に依存する。D0 は、前節 (14) の多項式 Δ = −4p3 − 27q2 の符号を逆にしたものなので、値の正負に応じた解釈を逆にすれば、3次方程式 (2) の判別式としての性質を持つ。

のみならず、2次方程式 (5) の判別式 D1 の意味から、D0 < 0 なら α, β は共役複素数、D0 > 0 なら α, β は相異なる実数。(7) の制限を考慮すると、前者の場合、α, β の3組の立方根はいずれも共役複素数のペアで、(6) が取り得る3種類の値はどれも共役複素数の和となって、3次方程式は相異なる3個の実数解を持つ。後者の場合、α, β の立方根の1組は実数だが(それらの和は、方程式の実数解)、残り2組4個の立方根は、互いに共役ではない複素数のペア(それら2組の立方根の和は、方程式の共役複素数解)。

D0 = (−1)Δ が3次方程式の判別式の性質を持つことは前節の考察から明らかだが(ただし符号の意味は正反対)、このように、理論的考察と実際の計算のつじつまが合っている(当然だが)。

この D0 を使えば、2次方程式 (5) の解を

と書けるので、D0 は3次方程式の解とも直結する: (9), (10), (6) の組み合わせは、3次方程式の解の公式(カルダノの公式)の一つの形を与える。

【3】 2次方程式の判別式 D1 そのものを、3次方程式の判別式として使うこともできる。その場合、D1 = −Δ/27 だが、符号だけなら D0 と同じ(そして判別式に必要なのは符号だけ)。2次方程式の解は、単に

となる。

ちなみに、3次方程式を簡約するとき p′ = p/3 として、

の代わりに

と書くと、2次方程式 (5)

となり、判別式を

と書くことができる。この値は初めの D1 = −Δ/27 と同じだが、(8) のような分数なしに、簡潔に記述されている。

【4】 一般の3次方程式 ax3bx2cxd = 0 を簡約するもう一つの方法は、z = axb/3 と置き、両辺を a2 倍して

または

の形にするもの。この方法で簡約された方程式は (2), (12) と同じ形式を持つが、それらの p, p に比べて P, P の値はそれぞれ a2 倍、q に比べて Q の値は a3 倍になる。別記事「覚えやすさを重視した3次方程式の解法」では、このやり方に基づく変数変換が使われている(変数名は一部異なる)。

この場合、簡約された3次方程式の解 z1, z2, z3 は、それぞれ本来の解 x1, x2, x3a 倍プラス定数。従って簡約後の「解の差」は、本来の「解の差」のちょうど a 倍。「解の差の平方」は、本来と比べて a2 倍、「解の差の平方積」は、本来と比べて a6 倍。

簡約後の計算は【1】~【3】と全く同じだが、上記の理由により、D0, D1 に相当するもの(それぞれ D6, D7 とする)は a6 倍されて、それぞれ a6Δ, −a6Δ/27 となる。この違いは、判別式としての性質(符号の区別)には影響しない。簡約後の解は a 倍プラス定数になっているが、最終的に(変数を z から x に戻すときに)同じ定数を引いて a で割るので、もともとの方程式の正しい解が得られる。【1】の方法では

となるが、この方法なら

となり、式の形がシンプル。上記「覚えやすさを重視~」の小細工を併せて使うと、係数の変換公式から、分数を完全に排除することもできる(この小細工は、判別式の値には影響しない)。

【5】 RWD Nickalls(ニコルズ)たちは、1996年、次の形の「新しい」幾何学的判別式を提唱した。

表面的に見れば、これは慣用的判別式 D7 = −a6Δ/271/a4 であり、「標準判別式と符号が逆で −1/27 の因子を持つ」という特徴を共有する。

一般に、多項式 f(x) で表される方程式 f(x) = 0 について、「各停留点(重複度を含めて数える)における関数 f の値の積」を幾何学的判別式と定義するのだという。「3個の相異なる実数解」を持つ3次方程式において、これは3次関数の「極大値と極小値の積」に他ならない(→ 「実数解が3個」グラフ上では)。事実関係は単純明快だが、1990年代まで誰もこれを深く考えなかったらしい。

3次方程式をいったんモニックに変換して a = 1 にした場合(または、もともとモニックだった場合)、慣用的判別式 D1 = −Δ/27, D7 = −a6Δ/27 と幾何学的判別式 D3 = −a2Δ/27 は等しい値を持つ。簡約3次方程式はモニックに変換されていることが多いので、幾何学的判別式の独自性は、値としては目立ちにくい。

【6】 まとめ。判別式には幾つかの形があるため、その文脈における定義を確認する必要がある。判別式の基本は「解の差の平方積 Δ に、最高次の係数 a の偶数乗を掛けたもの」だが、3次方程式の実際の解法では、その −1 倍または −1/27 倍が、判別式として慣用される。

「符号の意味が逆になり得る」というのは潜在的に紛らわしいが、「値の符号によって、方程式のタイプを判定する」という根っこの部分に変わりはない。

3次方程式の標準判別式
a4Δ (a = 1 なら Δ
3次方程式の慣用的判別式
代表例は −Δ(または a6Δ)と −Δ/27(または a6Δ/27
3次方程式の幾何学的判別式
a2Δ/27

標準判別式

の計算は面倒で、実際の方程式の解法における実用性も高くない。一方、

などは計算しやすく、判別式として同等の機能を持ち、必要に応じて、その値を(解の公式の一部として)便利に再利用できる。

個々の3次方程式の解法では慣用的判別式の方が使いやすいけれど、もっと広い範囲の議論では、統一された標準形式が役立つのだろう。

標準判別式では、実数でない解があるとき値が負になるが(2次方程式の判別式はその例)、3次方程式の慣用的判別式では、符号の意味が正反対: 値がだと「3解全部が実数」、値がだと「実数解1個・非実数解2個」となる。3次方程式の古典的解法では、「3解全部が実数」のケースが一番難しい: 「実数でない解」がある場合には、実数の立方根の計算だけでほぼ間に合うが、「解が実数だけ」だと、皮肉なことに、むしろ複素数の立方根が絡む。慣用的判別式の「あべこべの符号」は、この点を考えると、それほど不自然ではない。

付録

恐ろしくエレガントな解法 / ばか正直な解法 / 論理の穴・展望

A. 恐ろしくエレガントな解法

2次項のない3次方程式

の「解の差の平方積」は Δ = −4p3 − 27q2 に等しい。それさえ証明できれば、あとは機械的な変換によって、一般の3次方程式についての Δ も容易に得られる。本文 [2/3] でどちらも解決済みだが(それを「解法1」とする)、もっと良いやり方があるかもしれない。

(解法2) この導出について、Qiaochu Yuan が2012年に、次のような恐ろしくエレガントな解法を投稿した。

https://math.stackexchange.com/q/103504

(1) の解を z1, z2, z3 とすると、解と係数の関係から次が成り立つ。

(3), (4) をそれぞれ3変数の多項式 p = f2(z1z2z3), q = f3(z1z2z3) と解釈すれば、前者は2次、後者は3次同次式(=全部の項が同じ次数であるような多項式)。

一方、次の多項式は6次の同次式。

Δ は対称多項式なので (2), (3), (4) と定数の和・積として表現可能だが、この場合 (2)0 なので、実際には (3), (4) と定数を組み合わせるしかない。つまり、p = f2(z1z2z3), q = f3(z1z2z3) だけを使って(それらの多項式として)Δ を表現できる。

f66次の同次式なのだから、その表現には、6次の同次式である (f2)3 または (f3)2 が含まれている可能性があるが、それ以外の成分が含まれている可能性はない。というのは、例えば4次の (f2)2 や5次の (f2)(f3) が成分に含まれると、結果には6次でない項が含まれ、それでは同次式にならない。ゆえに、何らかの定数 A, B が存在して、次が成り立つ。

つまり:

p = −1, q = 0 と置くと (1)z3 − z = 0 となり、その解は z1, z2, z3 = ±1, 0。これらを (5) に代入すると Δ = 4。従って (6) において A = −4

p = 0, q = −1 と置くと (1)z3 − 1 = 0 となり、その解は z1, z2, z3 = 1, ω, ω2。これらを (5) に代入すると:

  1. Δ = (1 − ω)2 (ω − ω2)2 (ω2 − 1)2
  2. = (1 − ω)2 [ω(1 − ω)]2 [ω2 (1 − ω)]2
  3. = ω6 [(1 − ω)2]3

ところで 1 + ω + ω2 = 0 という性質があるので、(1 − ω)2 = 1 − 2ωω2 = −3ω が成り立つ。つまり、これらの p, q に対して:

従って (6) において B = −27。ゆえに、一般の p, q に対して (6) の正体は:

(証明終わり)

すげえ! これは美しいぞ…。

下記の直接計算と比べると、その高速性に感動する。

もっとも、この解法は、暗黙に「任意の対称多項式は、定数と基本対称多項式の和・積として表現可能」という定理に依存している。「多項式についての演算」に関しては、あえて対象の性質を明確にせず、流している。直観的に納得のいく範囲とはいえ、暗黙に抽象代数学的な性質が幾つか使われている。

スパイシーで魅力的だが、やっぱり定理を証明なしに使うより、たとえ地味でも遠回りでも、証明済みの事柄だけを使って、コツコツ進めるのが本筋でしょう…。

(2) は「2次項のない3次方程式の3解の和は 0」という意味を持つ。 1 + ω + ω2 = 0 も「2次項のない3次方程式の3解の和」の例。

† この話題については、多くの文献・資料が存在する。例えば:
Blum-Smith & Coskey, The Fundamental Theorem on Symmetric Polynomials: History's First Whiff of Galois Theory
https://arxiv.org/abs/1301.7116

B. ばか正直な解法

(解法3) エレガントと正反対に、強引に直接、計算しちゃいましょう。簡約された3次方程式 z3pzq = 0 の3解を α, β, γ とすると:

求めたいものは:

  1. Δ = (α − β)2 (β − γ)2 (γ − α)2
  2. = [(α − β)(β − γ)(γ − α)]2
  3. = [(αβ2 + βγ2 + γα2) − (α2β + β2γ + γ2α)]2

真上の3行目については、2行目の内側を展開すれば、簡単に確認できる。

と書くと、要するに次の値を求めればいい。

S − T は対称多項式ではないが、欲しいのはその平方で、上記右辺のように計算できる。このうち S + T の部分は難しくない:

  1. S + T = αβ2 + βγ2 + γα2 + α2β + β2γ + γ2α
  2. = (α + β + γ)(αβ + βγ + γα) − 3αβγ
  3. = 0 − 3(αβγ) = 3q ········· (2)

面倒なのは ST の計算。下記1行目右辺を展開した9項の中には「3乗・3乗」が1個ずつ、「4乗・1乗・1乗」が1個ずつ、そして「2乗・2乗・2乗」が合計3回現れる:

  1. ST = (αβ2 + βγ2 + γα2)(α2β + β2γ + γ2α)
  2. = α3β3 + β3γ3 + γ3α3 ········· (3.1)
  3. αβγ(α3 + β3 + γ3) ········· (3.2)
  4. + 3α2β2γ2 ········· (3.3)

(3.2) の項は、下記【1】の理由から 3(αβγ)2 に等しい。

(3.1) の項は、下記【2】の理由から (αβ + βγ + γα)3 + 3(αβγ)2 に等しい。

従って:

  1. ST = (αβ + βγ + γα)3 + 3(αβγ)2 ········· (3.1′)
  2. + 3(αβγ)2 ········· (3.2′)
  3. + 3(αβγ)2 ········· (3.3′)
  4. = p3 + 9q2 ········· (4)

(2)(4)(1) に代入して:

ちゃんと同じ結果が得られた!

【1】 上記の変形の根拠は、次の二つの式。

前者を展開して、同類項を集めず雑然とした状態で眺めると、そこには AAA, AAB, AAC; ABA, ABB, ABC; ACA, … という総当たり的な27項から AAA, BBB, CCC を除去した24項がある。

後者を展開すると、A(AB), A(BC), A(CA); B(AB), … という9項のそれぞれに係数 3 が掛かった状態になる。係数を使わず、全部の項を3回ずつ書けば、27項ある。

後者の方が3項多いが、具体的に何が違うのだろう?

どちらも A2B, B2C, C2A をそれぞれ3回含み、どちらも AB2, BC2, CA2 をそれぞれ3回含む(どちらも、この部分は合計18項)。一方、前者は ABC を6回しか含まないのに対して、後者は ABC を9回含んでいる。このことは ABC の発生源を考えれば(いざとなれば、全部の項を紙に書いてみれば)、容易に確認可能。後者は、前者より 3ABC 大きいのだから:

つまり:

〔関連メモ〕 ジラルの公式 3次方程式の解の立方和

α + β + γ = 0 に注意しつつ、上記の恒等式を使うと:

ゆえに (3.2) は:

【2】 恒等式 (5)A = αβ, B = βγ, C = γα を入れると:

  1. (αβ)3 + (βγ)3 + (γα)3
  2. = (αβ + βγ + γα)3 − 3(αβ + βγ + γα)[(αβ)(βγ) + (βγ)(γα) + (γα)(αβ)] + 3(αβ)(βγ)(γα)
  3. = (αβ + βγ + γα)3 − 3(αβ + βγ + γα)[αβγ(α + β + γ)] + 3(αβγ)2

α + β + γ = 0 なので、この第2項は消える。ゆえに (3.1) は:

  1. α3β3 + β3γ3 + γ3α3
  2. = (αβ + βγ + γα)3 + 3(αβγ)2

これでパズルのピースがそろった。

【3】 本当の「ばか正直」は

を全部展開すること…。α + β + γ = 0 という仮定を使わず、真面目に全部計算すること…。筆者は物好きなので、徹夜でこれをやったことがある。それに比べると (1) は少し「不正直」だが、それでも結構面倒くさい。


(解法4) 同じ直接計算でも、次のルートから行くと、解法2に負けないくらい高速になる。

[3/3] の2次方程式 X2qX −  p3 / 27 = 0 の2解を α, β とする。適切に選択された α, β の立方根(それぞれ u, v とする)を使って、簡約3次方程式の3解を z1 = uv, z2 = uωvω2, z3 = uω2vω と書くことができる(別記事12)。u, v の式として「解の差」を表すと:

  1. z1 − z2 = (u + v) − (uω + vω2)
  2. = u + vω3 − uω − vω2 = (1 − ω)(u − vω2)

同様に:

そして:

  1. z2 − z3 = (uω + vω2) − (uω2 + vω)
  2. = uω(1 − ω) − vω(1 − ω) = (1 − ω)(u − v)ω

以上3個の関係を使うと:

  1. Δ = (z1 − z2)2 (z1 − z3)2 (z2 − z3)2
  2. = [(1 − ω)(u − vω2)]2 [(1 − ω)(u − vω)(−ω2)]2 [(1 − ω)(u − v)ω]2
  3. = [(1 − ω)3 × (u − v)(u − vω)(u − vω2) × (−ω3)]2

3次関数 f(u) = u3 − v3 = 0 の零点は u = v, vω, vω2 なので、恒等式 u3 − v3 = (u − v)(u − vω)(u − vω2) が成り立つ。従って:

  1. Δ = [(1 − ω)3]2 × (u3 − v3)2 × (−1)2
  2. = [(1 − ω)2]3 × (α − β)2

(1 − ω)2 = −3ω なので(付録A参照):

  1. Δ = (−3ω)3 × [(α + β)2 − 4(αβ)]
  2. = (−27) × [(−q)2 − 4(− p3 / 27 )]
  3. = −27q2 − 4p3
C. 論理の穴・展望

【1】 「実係数の3次方程式は、もし重解(3重解を含む)を持たず、しかも相異なる3個の実数解を持たないなら、必ず1個の実数解と1組の共役複素数解を持つ」ということは、自明ではない。

係数が「実数」や「複素数」、一般に「任意の体」のとき、n次方程式の解は n 個以下――この重要な事実については、比較的簡単に証明可能。すなわち、抽象代数学的な制約として、3次方程式には最高でも3個しか解がない。一方、実係数の3次方程式について、以下の事実については、グラフの形から、幾何学的に明快なイメージを持つことができる: (1) 実数解は3個以下であること。 (2) 相異なる3個の実数解が存在する条件。 (3) 少なくとも1個の実数解が存在すること。

実数解が1個だけのケースについて、重解がある場合を除外すると必ず複素数の範囲に2個の解があり、その2個は共役複素数――この事実については、計算によって直接確認できる

【2】 次の関数の零点が、簡約3次方程式の3種類の「解の差の平方」に対応しているのだった。

もし 4p3 + 27q2 < 0 なら(そして p, q が実数なら)、明らかに p < 0。このとき (*) の係数の符号は + − + − であり、G(−y) の係数の符号は − − − −。符号が1度も変わらないので、デカルトの符号法則により (*) には負の解がない。言い換えれば、「解の差の平方」は決して負にならない。従って、もともとの3次方程式には、実数解しかない。

もし 4p3 + 27q2 > 0 なら、(*) の係数の符号は、次のいずれか: + − + +p < 0 の場合)、または + + + +p > 0 の場合)、または + +p = 0 の場合)。G(−y) の係数の符号は、それぞれ − − − +, − + − +, − + で、いずれにしても1回または3回符号が変わる。従って、デカルトの符号法則から、(*) には少なくとも1個の負の解がある。言い換えれば、「解の差の平方」の少なくとも一つは負であり、もともとの3次方程式は、実数でない解を持つ。

この観察の長所として、「どんなタイプの3解の組み合わせがあり得るか」についての暗黙の仮定なしに、「判別式の符号」と「非実数解の有無」の関係を示すことができる。

ただし、証明なしに「デカルトの符号法則」を使うのは、やはり良くない…。

【3】 3次方程式の標準判別式は:

この式は(a, b, c, d の4変数関数として)4次の同次式。しかも4変数について「左右対称」になっている。例えば − 4ac3 があれば − 4b3d もある。

(ac^3)     (b^3d)

    *        *
    *        *
*   *        *   *
a b c d    a b c d

「左右対称」だけど a, b, c, d についての対称多項式ではない。3次方程式の係数を任意に入れ替えることは できないのだから、これは当たり前だろう。a4Δ は5項から成り、3項は「2次方程式の判別式 b2 − 4ac を4変数バージョン(4次の同次式・左右対称)に拡張した」ような形をしている。

【4】 人の登山記を読んで結論だけ丸暗記しても意味がないが、同じ道を自分で歩くと、時に予想以上の収穫がある。たとえ近郊の低山でも、たとえとっくに発見済みの道でも、自分で考えたルートを試すのは なおさら楽しい。誰もいないので…間違えたら先生が駆け付けて助けてくれるわけでは ないので、小心に進む。小さなことで疑念を抱き、小さなことで感激する。熊が出そうなうっそうとした林に、突然落ちる枯れ葉の音が何と大きく響くことか…。

教科書の道をたどるときは「先生の書いたことに、そう大きな間違いはないだろう」と油断する。「ピンとこないが、そういうものかな」と、数学を見ずに先輩の背中を見て歩いてしまう。自分で考えたやり方だと「どこに穴があっても、おかしくない」と警戒するので、慎重にならざるを得ない。先輩の後ろを歩く方が効率が良さそうだが(多くの場合、実際そうだろうが)、「あらゆることには先達が存在する」と仮定すると矛盾が生じる!

散歩の楽しさは散歩そのものにあり、効率よく速く歩くことが目的ではない。

3次方程式の判別式 > 作成メモ・更新履歴

  1. 2018年3月10日: 作成開始。
  2. 2018年3月18日: 初版(v1)公開。
  3. 2018年3月24日: 第2版(v2): 付録Aに「注1」追加。表現の細部の微調整(約5カ所)。
  4. 2018年4月17日: v3: 誤字修正: 「例え」→「たとえ」
  5. 2018年4月26日: v4: コピペミス修正。[2/3] の (*) の1次の係数 (y1y2 + y2y3 + y3y1)(y1y2 + y2y3 + y3y1)2 になっていた。
  6. 2018年4月29日: v5: 付録にちょっと加筆。
  7. 2018年12月30日: v6: 用語の正確化: 「虚数の立方根」→「複素数の立方根」。ω を斜体にした。表現の微調整(2カ所)。
  8. 2019年11月26日: v7: 冒頭に「「2次方程式の判別式」はよく知られている。それを出発点に、3次方程式への拡張を試みる。」の一文を追加。
  9. 2022年2月27日: v8: n次方程式の解の数の上限などについて、付録C【1】に脚注を追加。
  10. 2023年2月2日: v9: 表現の改善: 「多項式方程式」という言葉が使われていたが、それは日本語として一般的ではない。その文を書き直した。
  11. 2024年4月18日: v10: 関連メモ「ジラルの公式 3次方程式の解の立方和」へのリンクを追加。

この記事のURL

パブリックドメイン



<メールアドレス>