最も美しい数式といわれる「オイラーの公式」を使って、3次方程式の面白い解法を…。3次方程式をネタとした複素関数プチ体験。
双曲線関数(§2参照)で3次方程式の「実数解」を求めるのは、珍しい話ではないが、マニアックな楽しさがある。「複素数解」まで求める・複素関数を使わないでもOK…というのは、イングランドの G. C. ホームズのアイデア。
【1】 オイラー (Euler) の公式と呼ばれる次の式。
e = 2.718… は「自然対数の
(1.1) に x = π を代入すると:
「悟りの境地」のような、不思議な美しさがある。「自然の底に虚を円く乗ずれば、一人消尽」…。禅問答?
【2】 (1.1) は e の虚数乗というものを定義する式…と解釈してみる。右辺の意味は「実部が cos x、虚部が sin x」。三角関数の基礎によると、これは「複素平面上の単位円の円周上にある偏角 x の点」。
例えば eiπ は、単位円上の偏角 π の点。それはもちろん (−1, 0)、数で言えば −1。禅問答のような式は、ただそれだけのこと。…なのだろうか?
一般的には、(1.1) は定義ではなく定理とされる。一応、(1.1) を証明しておきたい。基本的な関数(多項式、指数関数、cos、sin)の導関数を使う(微分を使わない証明も可能だが、微分を使う方がお手軽)。
微分についてよく分からない方、証明に興味ない方は、(1.1) を正しいと認めて §2 に進んでください。
【3】 「指数関数 ex が、多項式関数として表現できた」とする。つまり、何らかの定数 A0, A1, A2, … が存在して、こう書けたとする:
ここで右辺は5次・6次・7次…と無限に続く。万一 ex が4次の多項式で書き表せ5次以降は不要だとしても、そのときは A5 以降の係数がゼロというだけで問題ない。
(1.2) の両辺に x = 0 を代入すると 1 = A0 を得る(0 乗は 1)。定数 A0 の値は 1 だと分かった。
(1.2) の両辺を微分すると:
(1.3) の両辺に x = 0 を代入すると 1 = A1 を得る。定数 A1 の値も 1。
(1.3) の両辺を再び微分すると:
(1.4) の両辺に x = 0 を代入すると 1 = 2A2 となり、ゆえに A2 = 1/2。
(1.4) の両辺をしつこくもう1度微分すると:
(1.5) の両辺に x = 0 を代入すると 1 = 2⋅3A3 となり、ゆえに A3 = 1/(2⋅3) = 1/6。分母の 6 を 3! = 3⋅2⋅1 と解釈した方がパターンが分かりやすい。
この調子で同じ操作を繰り返すと、A4 = 1/(2⋅3⋅4) = 1/(4!) となる。ただし 4! = 4⋅3⋅2⋅1。
さらに、A5 = 1/(2⋅3⋅4⋅5) = 1/(5!) となり、A6 = 1/(6!) となり、以下同様。これらの定数を (1.2) に書き戻すと:
【4】 (1.6) は「どのくらい正しい」のだろうか。x = 1 として、とりあえず4次の項まで足し算してみると:
真の値は e = 2.718 281 828 459… なので、ちょっと小さめだが、いい線いってる。もうちょっと足してみる:
小数第6位まで一致した。無限に足せばピッタリ一致しそう。
ちなみに、(1.6) の右辺の計算に必要なのは、足し算・掛け算・割り算だけ。だから、任意の複素数 x に対して、問題なくこの右辺を計算できる(無限の足し算が意味を持つとすれば)。(1.6) を ex の定義とすると、原理的には任意の複素数 x に対して ex が定義される。
【5】 今度は「cos x が、多項式関数として表現できた」と考えてみる。次のように書けたと仮定する。
ex の場合(【3】)と同様に進めると、左辺はもともとの cos x から始まって、1回微分するごとに −sin x, −cos x, sin x が現れ、もう1回微分すると cos x に戻る。それらに x = 0 を代入した値(もともとの左辺から始める)は、1 → 0 → −1 → 0 の繰り返し。右辺は【3】と全く同じで、0, 1, 2, 3, 4, … 回微分したときの定数項は、順に A0, A1, 2!A2, 3!A3, 4!A4, …。ゆえに A1 = A3 = A5 = … = 0 であり、A0, A2, A4, A6, … だけが残る。これらの係数は、ex のときの (1.6) と絶対値が同じ。ただし、1個おきに符号がマイナスになる(左辺が −1 になるから)。分かりにくければ【3】同様、全ステップを書いてみよう。結果は:
同じことを sin x についてやると、左辺は sin x, cos x, −sin x, −cos x の繰り返し。そこに x = 0 を代入した値は 0 → 1 → 0 → −1 の繰り返し。従って、今度は「偶数番」の A は全部ゼロ。「奇数番」の A だけが残り、(1.6) と絶対値が同じで、1個おきに符号がマイナスになる:
ここで ex についての (1.6) を再掲。説明の便宜上、変数名を x から z に変えると:
この式に z = ix を代入する。i2 = −1, i3 = −i, i4 = 1, i5 = i, … に注意すると:
(1.10) の右辺の奇数番目の項は i を含まず、全体として (1.8) の右辺に等しい。(1.10) の右辺の偶数番目の項は i を含み、全体として (1.9) の右辺の i 倍に等しい。それぞれの式において左辺と右辺は等しいから、結局、(1.10) の左辺は「(1.8) の左辺、プラス、(1.9) の左辺の i 倍」に等しい。すなわち:
オイラーの公式が得られた。無限の足し算なんて怪しげだけど、一応ね。
【6】 ところで sin (π/6) = 0.5 なので、(1.9) の右辺に x = π/6 を入れると 0.5 になるはず。初めの3項で試すと:
なかなかいい線、いってる!
こうして見ると、途中計算の式は正しそうだし、オイラーの公式も正しいのだろう。上記の証明は簡易的なもので曖昧な点もあるが(納得できないとしても無理はない)、ここでは「一応証明できた」ことにして話を進めたい。もっときちんとした証明については、別記事参照。比較的シンプルな別証明(極座標を使う)もある。
【1】 オイラーの公式
の x を −x で置き換えると:
(2.1) と (2.2) を辺ごとに足し合わせると:
cos が、指数関数で表された。いたずら心を起こして、(2.3) に x = i を代入しちゃお♪
おぉぉ?!? 何だか分からないけど cos i が定義され、その値は約 1.5。実変数の cos は値が [−1, +1] の範囲だったが、複素変数の場合、その制約がなくなるらしい。「角度が虚数って、どういうことよ」と考えると悩ましいが、まあ「そういう関数。入力に対して一定の規則で出力が定まる」と割り切れば、別に違和感ない。
(2.1) から (2.2) を引き算すると:
sin も、指数関数で表された。
【2】 話が飛ぶようだが、ここで「双曲線関数」というものを…。双曲線関数には幾つか種類があるけど、メインの2種ね!
双曲線余弦関数 cosh(通称コシュ)の定義は:
関数名は ch とも略される(cos との見間違いを防ぎ、スペース節約)。
sh とも略される双曲線正弦関数 sinh(通称シャイン、またはシンチ)の定義は:
cosh や sinh の末尾の -h は hyperbolic(双曲線の)の略。sinh のような記号の読み方は人によって異なり(例=「ハイパ(ー)ボリック・サイン」「シャイン」「シンチ」「サイン・エイチ」)、どれが正しいかという決まりはない。
上記の定義では、x が任意の複素数だとしても構わない(§1 で垣間見たように、任意の複素数 x に対して ex を考えることができるので)。ここでは、ひとまず x は実数だとする。
次の画像で、青い実線は cosh のグラフ、赤い点線は sinh のグラフ。横軸を x、縦軸を y とすると、それぞれ y = cosh x と y = sinh x に当たる。
cosh の定義から、任意の実数 x について、cosh (−x) = cosh x が成り立つ(偶関数)。実関数としての cosh の最小値は cosh 0 = 1。1 より小さくはならない。
一方、sinh は奇関数で、任意の実数 x について、sinh (−x) = −sinh x が成り立つ。例えば:
x が正の範囲で増加するとき、sinh は cosh の値に接近し、グラフがほぼ重なる(定義が違うので、正確には一致しない)。
【3】 オイラーの公式経由の (2.3) で cos を表すとき、cos と cosh が「仲間」であることは、一目瞭然:
(2.3*) の内容に注意しつつ、(2.3) の x を ix に置き換えると:
この等式によると、cos に純虚数 ix を入れることは、cosh に対応する実数 x を入れることと同じ。
この等式の成立に「x は実数」という条件は必要ない。話をシンプルにするため、とりあえず「x は実数」としておくが、必要なら「x は複素数」と解釈しても構わない(以下同じ)。
同様に、(2.3*) の x を ix に置き換えると:
cosh に純虚数を入れることは、cos に対応する実数を入れることと同じ。
【4】 sin と sinh の関係もそれと似ているが、i 倍の違いがある:
(2.4) の x を ix に置き換えると:
(2.4*) の x を ix に置き換えると:
2個目の等号は (2.4) の両辺を i 倍したものから。
【5】 以上をまとめると:
上記4個の式は、x が実数でも複素数でも成立する。便宜上、これらの式を「いとこの定理」と呼ぶことにする。cos と sin は「きょうだい」、cosh と sinh も「きょうだい」のような感じなので、cos と cosh は「いとこ」みたいな(適当なネーミング)。「いとこの定理」を使うと、変数が純虚数の場合の関数値を簡単に(実変数の「いとこ」を使って)計算できる。例えば:
このテクニックは、変数が一般の複素数の場合に拡張可能。例えば cos (π + 3i) の値を知りたい場合、cos (α + β) を計算する公式(加法定理)と組み合わせればいい:
<多少難あり> 加法定理を幾何学的に証明した場合、「複素数の範囲でも加法定理が成り立つ」という証拠がない。
【6】 cosh (α + β) と sinh (α + β) についても同様の公式があれば「双曲線関数に複素数を入れた値」も計算可能。これが非常に役立つ。
双曲線関数の加法定理 sinh の加法定理は、sin の加法定理の関数名に -h を付けただけ。
cosh の加法定理も cos の加法定理と同様だが、符号が変わる。
証明 (2.5) 右辺の2項について、関数の定義(【2】参照)から:
この2項の和は、上記2式の右辺を足し合わせたもの。(ex+y − e−x−y) / 2 に等しい。それは (2.5) の左辺 sinh (x + y) の定義に他ならない。
(2.6) についても同様。右辺の
の和は、左辺 cosh (x + y) = (ex+y + e−x−y) / 2 に等しい。□
上記の証明には「変数が実数」という条件は必要ない。つまり双曲線関数の加法定理は、複素数の範囲で問題なく成立。この証明と同様にして、(2.3), (2.4) から「複素数の範囲の三角関数の加法定理」を導ける。【5】末尾の<多少難あり>が解決する。
別証明 次のように、対応する三角関数の公式から変換する方が楽。
「いとこの定理」を使って虚数の sin を実数の sinh に変換すると、係数 i が出てくる。だから変換元の式で sin が2個掛け算されている場合、その部分には変換時に i2 = −1 が発生し、符号が変わる。cos → cosh については、そのようなことはなく、単純置換すればいい。
一方:
この両辺を i で割れば、(2.5) を得る。変換元の式で sin が1個だけ(2個以上の積でない)なら符号は変わらない。内部的に i が発生するが、その i は「約分」のような感じで自然消滅する。□
【7】 一般に、cos, sin を含む任意の三角関数の公式について、cos を cosh に置き換え、sin を sinh に置き換えれば、対応する双曲線関数の公式を得る。その際、sin → sinh については、変換元に sin 2個の積があればその部分の符号が変わり、sin が1個だけ(2個以上の積でない)なら符号は変わらない。
変換元で sin が3乗されている場合、内部的に i3 = −i が生じ、その部分も符号が変わる。例えば、正弦の3倍角の公式
が与えられたとすると、対応する双曲線正弦の「3倍角」の公式は、こうなる:
内部的な変換過程は:
i3 = −i なので、最後の項は + 4i(sinh x)3 に等しい。全体を i で割れば (2.7) を得る。
一方、余弦の3倍角の公式
が与えられたとすると、単に関数名を置き換えるだけで、双曲線余弦の「3倍角」の公式を得る:
【8】 sinh の出力を知って入力を逆算したい場合、arsinh というもの(逆関数)が使われる。例えば:
cosh x の場合、x の絶対値が同じならその符号が正でも負でも関数の値は同じ。x ≠ 0 のとき、cosh x の値から x を逆算しようとすると、2通りの可能性が生じる。逆関数 arcosh の値(正式には「主値」)は、そのうち正の値を指す。例えば:
ここでは主値だけを考える。実数 y が与えられたとき:
実変数関数としての cosh の値域は [1, ∞) なので、実数値関数としての arcosh は 1 以上の実数 y に対してのみ定義される。
arcosh は、arccosh(アーク・コシュ)、cosh−1(インバース・コシュ)と呼ばれることも多い。同様に arsinh は、arcsinh、sinh−1 とも。名前はともかく、内容は関数の「入力→出力」の変換を逆向きにやるというだけで、大したことではない(具体的な逆算公式も簡単に作れるが、ここでは必要ないので省略)。
三角関数に「単位円に基づく幾何学的解釈」があるように、双曲線関数には「単位双曲線に基づく幾何学的解釈」があり、三角関数の「弧度法の角度=弧の長さ(arc)」に当たるパラメーターは、双曲線関数では「面積(area)」と関係している。英語圏の通説では、逆双曲線関数の ar- は、これに基づくとされる。しかし仏語圏では、この ar- は argument(引数)と読まれ、arg- とも書かれる。この手の用語はもともとラテン語だったものが多いので、ラテン語と同系のフランス語の方が、真相に近いのかも…。ar- の原義は「面積」ではなく「双曲線関数の引数の逆算」かもしれない。
3次方程式の「普通の(双曲線関数を使わない)解法」。
【1】 実係数の3次方程式
は、変数変換 z = ax + b/3 により次の形に簡約される。
N = −P, R = q/2 と置く。
このとき、2次方程式
の2解 α, β = −R ± √(R2 − N3) を用い、(3.2) の解を次の形で表すことができる。
α ≠ 0 なら α は(複素数の範囲で)相異なる3個の立方根を持ち、(3.4) ではそのどれを選んでもいい。β の立方根は、α の立方根との積が N になるように選ばれる。
(3.4) はカルダノ (Cardano) の公式と呼ばれ、これにより3次方程式の全部(3個)の解が求まる。α, β は一般には実数ではない。解を数値的に求めたい場合、(3.4) をそのまま使うと複素数の立方根の計算が必要。実用上、あまり便利ではない。
【2】 (3.1) の係数は実数なので N, R も実数。もし R2 < N3 が成り立つなら(そのとき必然的に N > 0)、3次方程式は3個の相異なる実数解を持つ。この場合、三角関数を使って解を求めるのが実用的。
と置くと、ビエト (Viète) による次の定理が成り立つ。
定理 下記の実数 A, θ を用いて (3.5) から計算される z は、3次方程式 (3.2) の一つの解。
(3.6) 経由で3解全てが得られるので実用上はこれで間に合うが、理論的には (3.6) の代わりに、次のように2カ所の符号を逆にしてもいい。これも有効な別の解を与える。
定理の証明 もし A = 0 なら、(3.5) より3解は全て 0 に等しい(3重解)。その場合、3次方程式 (3.2) は z3 = 0 の形を持ち、N = R = 0 となって R2 < N3 という仮定に反する。ゆえに A ≠ 0。
(3.5) を (3.2) に代入すると:
一方、余弦の3倍角の公式(恒等式)によると:
(3.7) と比較しやすいように (3.8) の両辺を A3/4 倍する:
「A と θ をうまく設定して (3.7) と (3.9) を全く同じ式にすることができた」とする。(3.9) は、3倍角の公式(恒等式)を書き換えただけの式なので常に真。それと同じ式になるなら (3.7) も真で、変数変換 (3.5) を介して (3.2) も真。ゆえに、3次方程式の一つの解 z が得られる。これを実現するには、(3.9) と (3.7) において cos θ の係数が等しくなる必要がある。つまり −3A3/4 = −3AN。条件 A ≠ 0 があるので、次のように整理される。
さらに、(3.9) と (3.7) それぞれの、左辺第3項も等しくなる必要がある:
この式の A に (3.10) の右辺を代入すると:
代入の手順から (3.12) の分母は (√N)3 で、√N3 ではない。ただし、N > 0 なので、どちらでも値(主値)は同じ。N > 0 なので分母 ≠ 0。
三角関数の性質上、(3.12) を満たす 3θ は無限個ある。単純な逆算(逆三角関数の主値)によりその一例を求めると:
(3.10) ~ (3.13) の複号は対応していて、± でプラスを選ぶなら、∓ ではマイナスを選ぶ必要がある。(3.6) は、符号をそのように選んで、(3.13) の両辺を 3 で割ったもの。逆の符号を選ぶと (3.6*) が生じる。□
この計算の幾何学的意味は、次の通り。3次方程式が3個の相異なる実数解を持つとき、2次方程式 (3.3) は共役複素数解を持つ。そのうち虚部が正のものを α とする。(3.13) の複号でマイナスを選んだときの α の偏角 φ が、上記の 3θ。θ = φ/3 は、α の(一つの)立方根の偏角。この立方根は、カルダノの公式に含まれる立方根に他ならない。arccos を使った単純計算は、この解釈の下で正しい偏角を与える。
【3】 (3.12) を成立させる 3θ は (3.13) 以外にも存在。それを考えることで、残りの2解が得られる。cos の性質上、角度に 2π の整数倍を加減しても値は変わらず、角度の符号を逆にしても値は変わらない。3θ に 2π の整数倍が加減されるなら、θ には 2π/3 の整数倍が加減される。(3.5) において、次のようにすればいい:
代わりに k = 0, ±1 としてもいいし、θ を −θ に置き換えてもいいが、z が取り得る値は、(3.14) の3種のみ。2π の整数倍の角度差は cos の値に影響しないので、k = 3, 4 などは k = 0, 1 などと同じ意味。cos y = cos (−y) なので、入力値の正負も結果に影響せず。
(3.14) がビエトの公式で、カルダノの公式からは分からない事実を示している。すなわち、簡約3次方程式の3個の実数解は、座標平面上において「原点を中心とする、半径 2√N の円周を3等分した点」の横座標。一見ランダムに散らばっているとも思える3解が、同じ円周上に等間隔に並んだ点の影だった!
【4】 ビエトの公式は、このように含蓄のあるもので、形もシンプル。三角関数キーのある電卓などを使えば、すぐ計算できる。半面、これは本来「3次方程式が3個の実数解を持つ場合」にのみ有効な特殊公式で、カルダノの公式のような一般性を持たない。
ɡ = R / (√N)3 と置く。(3.6) または (3.6*) の形で実関数の arccos を使うためには、ɡ が実数かつ | ɡ | ≤ 1 でなければならない。理由はもちろん、実関数としての arccos の定義域が [−1, +1] だから。
R, N が実数の場合、「3次方程式が相異なる3個の実数解を持つ」ための必要十分条件は、R2 < N3(別記事の分類では「第2のケース」)。この不等式が成り立つとき、正の数 N3 で両辺を割ると R2 / N3 < 1。その両辺の平方根を考えると
となり(1個目の等号が成り立つのは N > 0 だから)、実関数の arccos を使うための条件を満たす。ゆえに、方程式が相異なる3個の実数解を持つなら、ビエトの公式が利用可能。一方、「3次方程式が1個の実数解と2個の非実数解を持つ」場合(「第1のケース」)、すなわち
には、ビエトの公式を利用できない。できることなら、この美しい公式を拡張して、任意の3次方程式に適用できる「汎用的な解の公式」を作りたい…。
N が正で ɡ = R / (√N)3 が実数になる場合のうち、| ɡ | > 1 のケースを考える(第1のケースA)。
【1】 実関数の arccos は「絶対値が 1 以上の入力」を処理できず、3θ = arccos (±ɡ) の部分で計算不能に陥る。代わりに「絶対値が 1 以上の入力」しか処理できない arcosh を使ったら、どうだろう。計算不能の式は 3θ = arcosh (±ɡ) に置き換わり、符号の選択さえ正しければ、問題なく計算できるようになる。「いとこ」の cosh と arcosh が、cos と arccos の守備範囲外をうまくカバーしてくれる。
§3 では、三角関数を使った変数変換を行い
と置いた。ここでは、ひとひねり加え
と置く。§3 では、余弦の3倍角の公式
からビエトの公式を導いた。双曲線余弦の「3倍角」の公式
は、全く同じ形をしていて、cos を cosh に置き換えただけ。従って全く同様に式変形を進めることができ、結果は次のようになる(順に §3 の (3.12), (3.13), (3.6), (3.6*) に相当)。
実関数としての arcosh の定義域は [1, +∞) なので、複号については、入力値が 1 以上になるように選択。その選択に応じ (4.5) と (4.5*) を使い分ける: ɡ < −1 なら (4.5)、ɡ > 1 なら (4.5*)。両方のケースについて θ の式を一つにまとめると:
| ɡ | = 1 の場合にもこの計算は可能だが(θ = 0)、話を簡単にするため、ここでは | ɡ | > 1 の場合(θ ≠ 0)だけを考える。
【2】 (4.5) または (4.5*) を (4.1) に入れれば、3次方程式の実数解 z1 が得られる。
例: z3 − 3z + 3 = 0 の実数解。N = 1, R = 1.5, ɡ = R / (√N)3 = 1.5 > 1。(4.5*) から A = −2√N = −2, θ = (arcosh ɡ)/3 = (arcosh 1.5)/3 = 0.320 807 883…。(4.1) から z1 = A cosh θ = −2.103 803 402…。この解を与式に入れると、確かに z13 − 3z1 + 3 = 0.000 000… となる。
残りの2解 z2, z3 は、どこにあるのだろう?
という状況について検討する。(4.6) を満たす 3θ は、実数の範囲には2個あるが(絶対値が同じで符号が反対)、そのどちらを選んでも、(4.1) からは同じ z しか得られない(cosh θ = cosh (−θ) なので)。従って実数の範囲では、(4.7) によって定まる正の θ(主値)だけ考えれば十分。
実数の範囲にはそれ以上の答えがないので、(4.6) を成立させる 3θ を複素数の範囲で考え、その実部を J、虚部を K と置く: 3θ = J + Ki(J, K は実数)。このとき、cosh の加法定理と「いとこの定理」から:
(4.6) の条件から、(4.8) は実数 | ɡ | > 1 に等しい。すなわち、(4.8) の実部は | ɡ |、虚部は 0:
(4.10) が成り立つためには、sinh J = 0 または sin K = 0 が必要。もし sinh J = 0 なら J = 0, cosh J = 1 で、(4.9) は cos K = | ɡ | を含意するが、これは不合理(cos K ≤ 1 だが、仮定より | ɡ | > 1)。ゆえに sin K = 0 であり、K は π の整数倍。
では K は π の奇数倍か、偶数倍か? もし奇数倍なら cos K = −1 だが、その場合 (4.9) の左辺は負(なぜなら cosh J ≥ 1)。これは右辺についての仮定に反する。ゆえに K は π の偶数倍のはず。偶数倍なら cos K = 1 で、(4.9) は cosh J = | ɡ | を含意し、つじつまが合う。つまり K は 2π の整数倍(Ki は 2πi の整数倍)。これが「複素数の範囲で 3θ が取り得る値」の虚部。
【3】 cosh J = | ɡ | を満たす J は正・負1個ずつあり、J の正負を決定することはできない。複素数の範囲で (4.6) を 3θ について解いた一般解は 3θ = ±| J | + 2kπi となる(k は任意の整数)。ところで、cosh は複素関数としても偶関数。任意の複素数 ξ について cosh (ξ) = cosh (−ξ) が成り立つ。
関数の定義が cosh ξ = (eξ + e−ξ)/2 なのだから、ξ を −ξ に置き換えても値が同じなのは明らか。念のための確認として、ξ = x + yi と置くと cosh ξ = cosh x cos y + i sinh x sin y。一方、cosh (−ξ) = cosh (−x) cos (−y) + i sinh (−x) sin (−y)。この二つの右辺が等しいことを確かめるのは、易しい。
従って「実部が正の 3θ = | J | + 2kπi を考え、その3分の1を (4.1) に代入する」ことは、「符号が反対の 3θ = −| J | − 2kπi を考え、その3分の1を (4.1) に代入する」ことと同じ結果をもたらす。k は任意の整数なので、虚数成分 2kπi と −2kπi の区別にも意味はない。どちらでも同じなので便宜上 J は正と仮定し、その正の実数 J をあらためて 3θ と置くと、結局この 3θ は、(4.3) から得られるもともとの実数。複素数の範囲で (4.6) を考えるということは、「もともとの 3θ を 3θ + 2kπi に置き換えること」に当たる。
3θ の値をこのように変化させるとき、(4.7) の θ には、2πi/3 の整数倍が加減される。そのような虚数成分を持つ θ を (4.1) に代入することで、3次方程式の残りの2解(複素数解)が得られるに違いない。条件 (4.3) を満たす θ は、複素数の範囲まで広げて考えても、それ以外には存在しないのだから(J の符号を逆にするという選択肢は、結果の値に影響しないので度外視)。
【4】 2πi/3 の整数倍というのは、無限個の選択肢。けれど (4.6) についての「3θ に 2πi の整数倍を加減しても cosh の値は同じ」という観察から、「複素関数 cosh の値は、入力が 2πi 変わるたびに元の値に戻る」と予想される。その証明は易しい。
実際、任意の複素数 ξ について cosh (ξ ± 2πi) = cosh ξ cos (±2π) + i sinh ξ sin (±2π) = cosh ξ。
このことから、(4.1) の cosh に入れるべき値は θ, θ + 2πi/3, θ + 4πi/3 の3種で十分。前節で見たビエトの公式は
という形だったが、双曲線余弦を使った | ɡ | > 1 用のバージョンは、次の形を持つ。
もともとの公式と比べると「パラレルワールドの虚数バージョン」のような形になっていて、なかなか美しい!
(4.5), (4.5*) の選択に応じ、(4.13), (4.14) の複号を使い分ける。2πi 単位の周期性があるので、k の範囲は k = 0, ±1 でもいい。
<例1> z3 − 3z + 3 = 0 の3解を求める。
N = 1, R = 3/2, ɡ = R / (√N)3 = 3/2 > 1 なので (4.5*) を使って:
解の順序の違いを無視すれば、カルダノの公式経由の計算結果と一致した!
しかも θ の値を機械的にずらすだけで、解の実部と虚部が全部一発で求まる。複素関数、すげえ。
この計算では「複素関数をサポートする計算機を使う」と想定している。複素数がサポートされていない場合については【5】参照。
【5】 複号を適切に選べば (4.13) の arcosh は実関数となり、従って θ は(正の)実数。(4.14) では複素関数としての cosh が使われているが、その引数は「実部と虚部の和」の形。加法定理でこれをばらして、「実関数だけを使う計算」に書き直すことができる。ɡ < −1 と仮定し、(4.14) の複号で「プラス」が選択されたとすると:
k = 0 の場合、引数はもともと実数(虚部ゼロ)。これは「3次方程式の1個だけの実数解」を表す。
k = 1 の場合:
k = 2 の場合も同様に計算される(代わりに k = −1 を考えれば、k = 1 の場合と符号が変わるだけ):
これらを (4.15) に入れると:
(4.17), (4.18) は「3次方程式の2個の共役複素数解」を表す。(4.16) と比較すると「共役複素数解の実部は、実数解 z1 の −(1/2) 倍」。カルダノの公式経由の計算でも、そうなっていた(カルダノの「実数の範囲の2立方根 u, v」のそれぞれに「1 の複素立方根」が掛け算されること、そして「1 の複素立方根」の実部が −(1/2) であることから)。
以上は ɡ < −1 の場合。一方、ɡ > 1 で (4.13) の複号の「マイナス」が選択された場合、A = ±2√N の符号が入れ替わり (4.5*) の形になる。それ以外は同様なので、結果的に (4.16) の頭に「マイナス」が付き、(4.17), (4.18) の頭の「マイナス」がなくなる:
結論として、ɡ が実数の場合、その絶対値が 1 より小さければオリジナルのビエトの公式が使えるが、絶対値が 1 より大きくても、複素双曲線関数を使えばビエト風の公式が成立し、3解を統一的に表現できる。実部と虚部を別々に書き表すなら、実関数だけで3解を表現できる。
<例2> z3 − 6z − 8 = 0 の3解を実関数だけで求める。
N = 2, R = −4, ɡ = R / (√N)3 = −√2 < −1 なので:
実数解 z1 は (4.16) から:
(4.17), (4.18) によると共役複素数解 z2, z3 の実部は:
z2, z3 の虚部は:
ゆえに:
上記【2】~【5】は、ホームズ (Holmes) の The Use of Hyperbolic Cosines in Solving Cubic Polynomials( link)に基づく。ɡ > 1 の場合については、ホームズは、上記と少し違う方法で同じ公式を得ている。
【6】 ɡ の正負によって (4.5) と (4.5*) を使い分け、公式の符号が入れ替わることは少し煩わしいが、オリジナルのビエトの公式でも
となっていた。この「2カ所の符号が逆になる」パターンは、cosh 版でも同じ。なぜそうなるか。ビエトの公式は、3倍角の公式
と、簡約3次方程式
の係数比較に基づく(§3【2】参照)。具体的には、式 (3.11)
によって、上記の符号パターンが生じる。デフォルト(両者を結び付ける A3/4 が正)の状態では、−cos 3θ から見た +2R はマイナス(式の上での符号が逆)。A3/4 が負なら、−cos 3θ から見た +2R はプラス(符号が同じ)。A3/4 の正負とは、A = ±2√N の符号の選択に他ならない。3倍角の公式の右辺が「プラス4倍のなんたら3乗」を含む限り、移項すると − cos 3θ のような符号が生じ、同じパターンになる:
「マイナス4倍のなんたら3乗」なら、パターンが破れる(正弦の3倍角):
§3/§4 と同様にビエト型の公式を作った場合、上記の結果として、cos 版/cosh 版/sinh 版は「2カ所の符号が逆」という特徴を共有し、sin 版だけは「2カ所の符号が同じ」になる。それとは別の話として、sinh の「3倍角」の公式 ★ を使うと、1次(右側の式の左辺第2項)の係数がプラスになることに注目(他の式では、この場所がマイナス)。これが §5 の鍵となる。
N が負で ɡ = R / (√N)3 が虚数になる場合を考える(第1のケースB)。これは (3.2) の z3 − 3Nz + 2R = 0 の −3N が正の場合。言い換えると、(3.1*) の z3 + 3Pz + q = 0 の 3P が正の場合。単純に考えると、3次方程式の半数はこのタイプ。
【1】 §4 では、3θ = arccos (∓ɡ) の実数 ∓ɡ が実関数 arccos の定義域にないケースについて、「いとこ」への切り替えにより問題を回避した。ɡ が虚数の場合、小手先の切り替えでは対応できない。§3 の導出を振り返ると、虚数が生じるのは N = −P が負の場合。
の 3P が正のとき、この方程式を 4 cos3 θ − 3 cos θ − cos 3θ = 0 の形に変換すると、変換元と変換先で1次の係数の正負が一致しないため、負数の平方根が生じる。代わりに sinh の「3倍角」の公式 sinh 3θ = 3 sinh θ + 4 sinh3 θ を使って同様の変換を行うと、
となって変換先の符号が変わるので(§4【6】の末尾参照)、虚数の発生原因がなくなる。
【2】 この観察に基づき、簡約3次方程式 z3 − 3Nz + 2R = 0 において N < 0 の場合には、
と置く。§3 同様、A ≠ 0。
実際、A = 0 なら、(5.2) より3解は全て 0 に等しく、簡約3次方程式は z3 = 0 に退化。そのとき N = R = 0 だが、これは N < 0 という仮定に反する。
負の数 N について、絶対値が同じ正の数 P = −N を使うと、簡約3次方程式は
となる。そこに (5.2) を代入すると:
一方、sinh の「3倍角」の公式から得られる (5.1) について、両辺を A3/4 倍すると:
A ≠ 0 なので、(5.4) と (5.3) それぞれの左辺第2項の比較から、次が成り立つ。
(5.3) と (5.4) それぞれの左辺第3項を比較して、A に (5.5) の右辺を代入すると:
P = −N ≠ 0 なので、(5.6) の割り算は問題なし。(5.5) ~ (5.7) の複号は上下どちらを選んでも構わない(上下を統一する必要はある)。一方を選んで (5.5), (5.7) を (5.2) に代入すれば、3次方程式の(唯一の)実数解が得られる。次の【3】では上側の符号を選んだと仮定する。
【3】 3次方程式の3解全てを複素数の範囲で求めるため、前節同様 (5.6) の実数 3θ を複素数 J + Ki で置き換える(J, K は実数)。もちろん、置き換えた後でも (5.6) が成り立つように、複素数をうまく選択する。sinh の加法定理と「いとこの定理」から:
この値が (5.6) の右辺の実数に等しいのだから、(5.8) の虚部は 0。cosh J ≠ 0 なので sin K = 0。つまり K は π の整数倍。偶数倍だろうか、奇数倍だろうか。
(I) K が π の偶数倍だと仮定する。このとき cos K = 1 で、(5.8) は sinh J に等しい。それが (5.6) と等しいのだから J = 3θ。実数 3θ を置き換える複素数は J + Ki = 3θ + (2k)πi の形を持ち(2k は任意の偶数)、(5.2) の θ を置き換える複素数はその3分の1、つまり θ + (2k)πi/3 の形。ところで、複素関数としての sinh は、cosh 同様、2πi 単位の周期性を持つ。
実際、任意の複素数 ξ について sinh (ξ ± 2πi) = sinh ξ cos (±2π) + i cosh ξ sin (±2π) = sinh ξ。
従って、k = 0, 1, 2 だけ(または k = 0, ±1 だけ)を考えれば十分。k = 0 の場合、単に (5.5) を (5.2) に代入し、実数解 2√P sinh θ を得る。上記の複素数で k = ±1 として θ を置き換えると、次の複素数解を得る。
(II) 一方、K が π の奇数倍だとすると、cos K = −1 で、(5.8) は −sinh J = sinh (−J) に等しい。それが (5.6) に等しいのだから J = −3θ。3θ を置き換える複素数は −3θ + (2k + 1)πi の形を持ち(2k + 1 は任意の奇数)、(5.2) の θ は −θ + (2k + 1)πi/3 に置き換わる。k = 1, 0, −1 を考えれば十分。k = 0, −1 に当たる 2√P sinh (−θ ± πi/3) を計算すると、結果は (5.9) に一致。k = 1 に当たる 2√P sinh (−θ + πi) を計算すると、結果は (I) の実数解に一致。
(I) と (II) のどちらでも結果は同じなので、便宜上 (I) だとしておく。
cosh バージョンでも sinh バージョンでも、J = 3θ と仮定すると、もともとの θ(3次方程式の実数解に対応する実数)を含む3種類の θ を、複素数の範囲で自然に考えることができる。J = −3θ と仮定すると、もともとの θ とは別に、新しい3種類の θ を考えることになる。得られる3解に違いはない。
【4】 結論として、「第1のケースB」の3解は、(5.7) の複号でマイナスを選んだ場合の実数 θ を使って、ビエト風に表現される:
k = 1, 2 のとき (5.11) の sinh は複素変数だが、これを実変数関数で表現することも可能。(5.9) を整理すると:
ところで (5.7) の複号でプラスを選択してもいい。その場合、(5.5) の符号も変わり、(5.11), (5.12) に当たるものは:
全ての公式において、k の範囲は k = 0, ±1 でもいい。
<例3> z3 + (32/3)z + (200/27) = 0 の3解。
1次の係数が正なので「第1のケースB」だが、単に因数分解で解くことができる。与式の両辺を 27 倍すると 27z3 + 288z + 200 = (3z + 2)(9z2 − 6z + 100) = 0。これを解くと、実数解は −2/3、非実数解は 1/3 ± i√11。数値的に √11 = 3.316 624 790 3…(語呂合わせ=散々疲労、無理にしなくてオーケーさ)。上記 sinh バージョンのビエト型公式からも、次のように同じ3解が得られる。
P = 32/9, R = 100/27。(5.10) を使うと:
(5.11) より3解は:
第2解・第3解については、複素関数を使わず (5.12) から計算してもいい。
ところで、もし (5.7) の複号でプラスを選ぶと:
これは (5.13) の θ の符号が逆になったもの。符号が反転している (5.11*) などと組み合わせれば、同じ3解を得る。
この節で扱った ɡ が虚数のケースについて、Holmes は違う方法で同様の公式を導いている。その方法も興味深いが、少しややこしく、微妙な問題点もあるため、ここでは割愛する。
【1】 実係数の任意の3次方程式は、簡単な変数変換によって (3.2) の形 z3 − 3Nz + 2R = 0 になる。ɡ = R / (√N)3 が実数の場合、すなわち N > 0 の場合、| ɡ | < 1 なら cos 版のビエトの公式(§3)、| ɡ | > 1 なら cosh 版のビエトの公式(§4)によって、いずれも3解全てが得られる。境界上の | ɡ | = 1 については別途検討が必要だが、これは重解を持つ場合で、本質的に難しくない。
N = 0 の場合、ɡ そのものが定義されないが、このとき (3.1*) は z3 + q = 0 の形に退化し、その解は自明。
N < 0 の場合、ɡ = R / (√N)3 は虚数。この場合、対応する実数 G = R / (√P)3 = R / (√−N)3 を使って(P = −N)、sinh 版のビエトの公式(§5)から、3解全てが得られる。
結局、自明な方程式を度外視するなら、3解を常にビエト風に表現できる。k = 0, ±1(または k = 0, 1, 2)に対する次の値が、その3解。
(i) ɡ が実数で、その絶対値が 1 より小なら:
(ii) ɡ が実数で、その絶対値が 1 より大なら:
(iii) ɡ = Gi が虚数なら:
§3, §4, §5 の 3θ をそれぞれ φ, λ, μ と書いた。(ii) の複号の選択は、ɡ が負なら上、正なら下。(i) と (iii) の複号の選択は、上下どちらでもいい(上をデフォルトとする)。
この結論は一つの成果だが、「解の公式」が3種類に分かれているのは美しくない。実は、全てを複素関数として考えるなら、3種類の公式を使い分けず、いつも (i) だけを使うことができる。以下、具体例でそれを観察する。
【2】 <例2>の z3 − 6z − 8 = 0 を再考。N = 2, R = −4, ɡ = −√2。k = 0 に対する (ii) は、次の順序で計算される(C は計算途中の値)。
(6.1) の λ = arcosh √2 は、cosh λ = √2, λ ≥ 0 と同じ意味(λ は実数)。このとき「いとこの定理」から cos (λi) = √2。単純にその逆算を考えると、λi = arccos √2 となる(λi は純虚数)。それを念頭に、(6.1) と同じ −ɡ を使って今度は (i) の計算を実行すると:
ここでは、絶対値が 1 より大きい √2 = 1.414… が、お構いなしに arccos に渡されている。これは実関数の世界では「不可能」で、この問題を回避するため §4 では「いとこ」の cosh を登場させた。しかし複素関数としてなら、これは「可能」。§2 では戯れに cos に虚数 i を入れ、約 1.5 という数を得たが、それを逆方向に考えると、√2 ≈ 1.4 を arccos に入れて虚数が出てくるというのは、つじつまが合っている。
この φ を用いて、k = 0 に対する (i) の計算を行うと(θ′, C′ は上記 θ, C に対応する値):
この C′ が (i) の cos の部分で、値は C と同じ。それを 2√N 倍して解を求めると、もちろん (6.2) と一致する!
残りの2解について、k = ±1 のとき、(ii) の cosh の部分は次の値に等しい。
この計算は「いとこの定理」cosh x = cos (ix) において x = θ ± 2πi/3 と置いたもの。
(6.3) の右端は、k = ∓1 のときの、(i) の cos の部分に他ならない。(i) の cos の係数は (ii) の cosh の係数と同じなので、どちら経由でも、得られる解に違いはない(解の順序は異なる)。
【3】 「どちら経由でも同じ3解が得られる」ことを互換と呼ぶと、上記により ɡ < −1 のとき、(ii) は (i) と互換。同じ (ii) でも ɡ > 1 なら符号が入れ替わるが、上記と同様の議論から、その場合の (ii) は「符号を入れ替えた (i)」と互換。それがデフォルトの (i) とも互換であることを言うには、(3.6) と (3.6*) が「複素関数としても互換」であることを示せばいい。
具体的には、(φ + 2kπ)/3 に対する3種の cos、(φ′ + 2kπ)/3 の3種の cos を比較して、それらが全体として「絶対値が同じ・符号が逆」であることを示せばいい。ここで φ = arccos (−ɡ), φ′ = arccos ɡ だが、φ′ = π − φ が成立(少なくとも実関数の範囲では)。そして cos (φ′/3) = cos ((π − φ)/3) = cos ((φ − π)/3) = −cos ((φ + 2π)/3)。
ところで、四則演算は「実数でも複素数でも計算の仕方・計算の法則は同じ」。平方根も、実数の範囲での計算に矛盾しない形で、複素数の範囲に拡張される。三角関数・逆三角関数についても同様(級数展開を考えると四則演算に帰着)。だから直観的に、これらの関数については、実関数として互換なら、複素関数としても互換のはず。この観点からは、(i) が複素関数の範囲でそのまま有効であること自体、当然だろう。
【4】 最後に、(iii) と (i) の互換性について。sin 版のビエトの公式を使うと、(i) の3解をこう書ける:
sin 版の公式は、他の公式(sinh 版など)とは符号パターンが異なり「2カ所の符号」が一致(§4【6】参照)。以下では、説明の便宜上、2カ所とも − を選択する。実関数として (i) と (6.4) は互換。【3】同様、複素関数としても、(i) と (6.4) は互換性を持つと考えられる。ここでは、(6.4) が (iii) と互換であることだけを示す(全て正しければ、(6.4) を媒介に (i) と (iii) は互換)。
<例3>の z3 + (32/3)z + (200/27) = 0 を再考する。N = −32/9 < 0, R = 100/27。k = 0 に対する (iii) は、次の順序で計算される(S は計算途中の値)。
このとき、ɡ = R / (√N)3 = (0.552 427 172…)i = Gi だが、この関係は次のように説明される(平方根については、全て主値を考えている)。
ここで √−N = √P は実数。
注 複素数が絡む計算では「N の平方根の3乗」と「N3 の平方根」を混同してはいけない。複素数の範囲では (XY)a = XaYa も一般には不成立だが、上記のように指数が整数の場合には、掛け算の交換法則・結合法則を使って、この等式が成り立つことを簡単に確認できる:
(i√−N)3 = (i√−N) × (i√−N) × (i√−N)
= i × i × i × √−N × √−N × √−N = i3 × (√−N)3
さて、μ = arsinh (−G) は sinh μ = −G と同じ意味(G, μ は実数)。その両辺を i 倍すると、左辺は i sinh μ = sin (μi)、右辺は −Gi = −ɡ、それらが等しいので sin (μi) = −ɡ。単純にその逆算を考えると、μi = arcsin (−ɡ) となる。それを念頭に、(6.4) を使って k = 0 に対する解を計算すると、次のようになる(θ′, S′ などは、上記の θ, S などに対応する値)。
sin 版の符号設定による − と、虚数 √N を実数 √P = √−N に置き換えるときくくり出される i が合わさって、(6.5*) の係数部分に −i が生じる。sin の値 S′ = Si にも i が含まれる。−i と i は打ち消し合って消滅、(6.5*) は、(iii) による解 (6.5) に等しい。
残りの2解について、k = ±1 のとき、(6.4) の sin の部分は次の値に等しい。
「いとこの定理」i sin x = sinh (ix) の両辺を −i 倍すると sin x = −i sinh (ix)。この式に x = θi ± 2π/3 を代入すると、右辺は −i sinh (−θ ± 2πi/3)。sinh は奇関数なので = i sinh (θ ∓ 2πi/3)。sin (ix) = i sinh x に直接 x = θ ∓ 2πi/3 を代入しても同じ結果を得る。
(6.6) の右辺は「k = ∓1 のときの、(iii) の sinh の値」の i 倍。つまり「k = ±1 に対する (6.4) の sin の値」は「k = ∓1 に対する (iii) の sinh の値」の i 倍。一方、(6.4) の sin の係数 −2√N = −2i√P は、(iii) の sinh の係数 2√P の −i 倍(これは (6.5*) で生じた −i と同じ)。関数値の i 倍の違いと、係数の −i 倍の違いが打ち消し合い、結局、(6.4) 経由でも、(iii) 経由と同じ解が得られる(解の順序は異なる)。
【5】 あれこれ双曲線関数を考えた末、最後は元の (i) に戻る。「一般解の公式」を求めてさまよった揚げ句、「スタート地点がゴールだった」と気付く…。この節の内容をきちんと扱うためには、複素逆三角関数の主値あたりから考える必要があるが、どうやら道はつながった。複素関数の範囲では (i) が汎用的公式になり、同様に (ii) や (iii) なども、単体で汎用的公式になるのだろう。
複素関数は入力も出力も複素数(2次元的)。2次元から2次元へのマップであるそのグラフは4次元的。「おなじみの関数」と思っていたものの背後に、広大な地形が広がっている。ここまで来たからには、3次方程式自体も、実係数から複素係数に拡張するべきだろう。
【1】 余弦の3倍角の公式を導く。加法定理で
と分解して、余弦の倍角の公式 cos 2x = cos2 x − sin2 x と、正弦の倍角の公式 sin 2x = 2 sin x cos x を使うと:
同様に、正弦の3倍角の公式は:
【2】 オイラーの公式からも、同じ結果が得られる。オイラーの公式 (1.1) の両辺を 3 乗すると:
(7.1) の左辺に再びオイラーの公式を適用すると:
(7.1) の右辺と (7.2) の右辺は等しい:
(7.3) の左辺を展開して実部・虚部に分けると:
(7.3) の右辺と (7.4) は等しい。両者の実部・虚部はそれぞれ一致:
この先は【1】の ☆ と同じ。
オイラーの公式と無関係に、(7.3) の形(ド・モアブル (de Moivre) の定理の一例)を直接導くこともできる。
【3】 双曲線関数の「3倍角」の公式については、三角関数の3倍角の公式から機械的に変換可能。念のため、定義から直接導いておく。まず:
(7.5) は、三角関数の基本公式 cos2 x + sin2 x = 1 の双曲線関数バージョン。その証明:
さて、(7.5) から:
一方、双曲線関数の加法定理 (2.5), (2.6) から、容易に「倍角」の公式を得る:
ゆえに:
(7.5), (7.6), (7.7) なども、対応する三角関数バージョンの公式と比べると「sin 2個または3個の積については、符号が変わる。他は、いとこに単純置換」というルール(Osborn’s rule)に従っている。
ちなみに sin 4個・5個の積も符号が変わらず、6個の積は符号が変わる。これは i4 = 1, i5 = i, … による。このルールは、微積分の公式には適用できない。
双曲線関数を使う3次方程式の解法について、前から興味があった。実数解の部分は「3次方程式の奥」で試した。今回「双曲線関数を使い、複素数の範囲で3解全てを得ること」が目標だったが、勢いで、予定より先の「ビエトの公式の複素化」まで踏み込むことができた。けれど、出発点に当たる「オイラーの公式」を厳密に扱うことが難しかった。その件は「微分を使わない直接証明」という予想外の方向に発展する。
ここまでくると3次方程式自体は、もはやどうでもいい気もするが、ビエトの公式の拡張は、複素関数を考えるための具体例を提供してくれた。
(参考文献)