(遊びの数論55)

[遊びの数論] 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20
21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40
41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55

遊びの数論54の続き。誤字脱字・間違いがあるかも。


✿ ✿ ✿ ✿ ✿


2026-01-21 二重根号の外し方 正五角形は侮れない

#遊びの数論 #正五角形

正五角形の画像A

問題1 一辺の長さ 2 の正五角形の、対角線の長さが 1 + 5 であることを示したい。

問題2 一辺の長さが 2 の正五角形の、高さ(頂点と反対側の辺の中点を結ぶ垂線の長さ)を求めたい。

問題1の記述が正しいとすれば、問題2は、三平方の定理を使って機械的に解ける。

問題2の解 直角三角形の底辺が 1、高さが ?、斜辺が 1 + 5 なので:
  12 + ?2 = (1 + 5)2
  ∴ ?2 = (1 + 5)2 − 12 = (6 + 25) − 1 = 5 + 25
  ∴ ? = (5 + 25) ∎

二重根号が発生。正五角形関連は、トリッキーな根号処理が絡むことも多く、油断できない。

逆に、正五角形の高さが (5 + 25) であることと一辺の長さが 2 であることが、先に与えられたとすると…。三平方の定理から、対角線の長さを求めるのは同じ手間のようだが、単純計算では:
  (対角線)2 = ((5 + 25))2 + 12 = (5 + 25) + 1 = 6 + 25
  ∴ 対角線 = (6 + 25)
答えは間違ってないけど、対角線の長さは 1 + 5 のはずなので、
  (6 + 25) = 1 + 5
という変形が可能なはず。 (A + B) のような形の「二重根号」を簡約するテクニックは、こういうシチュエーションで役立つ。任意の複素数 a + bi は = a + b−1 なので、複素数 a + bi の平方根 (a + bi) を求めることも、
  (A + −B)
の形の二重根号処理だと捉えることができる。平方根はありふれた計算だし、複素数の平方根を考えなければならないこともある。「二重根号処理なんて、まれなこと」という感じもするけど、案外そうでもなく、応用範囲が広い。「i の平方根」なんかも、二重根号の問題として考えると簡単便利だし。

✿

一辺 2 の正五角形の対角線の長さは、いろんな方法で求めることができる。「一辺 2」ってのは、便宜上の設定。「一辺 1」の方が良ければ、単に「一辺 2」の場合の答えを半分にしてもいい。

正五角形の画像B

問題1の解 正五角形 ABCDE があるとして、(どの対角線でも長さは同じだけど)仮に対角線 BE の長さを求めるとしよう。対角線 AD と対角線 BE の交点を P とすると PB と DC は平行、 PD と BC も平行なので――そして BC = CD は正五角形の辺なので――、 PBCD はひし形。

従って DP は、正五角形の一辺 DE と長さが同じ。よって △EDP は二等辺。 △DBE も、もちろん二等辺。これら二つの二等辺三角形は、底角 E を共有するので、「等しい底角」の大きさが一致。必然的に残りのもう一つの(対応する)角も一致し、二つの三角形は相似。

さて PE の長さを x とすると BE の長さは 2 + x だ(なぜならBP は前記ひし形の一辺で、五角形の一辺と長さが等しい)。相似な二つの三角形について、
  △EDP の底辺と斜辺の比 と △DBE の底辺と斜辺の比
は一致する。
  x ∶ 2 = 2 ∶ 2 + x
  ∴ x(2 + x) = 4 つまり x2 + 2x − 4 = 0

これを解くと x = −1 ± 5。 x は線分の長さなので、正の値
  x = −1 + 5
が題意に適する。結局、求める対角線 BE の長さは:
  2 + x = 2 + (−1 + 5) = 1 + 5 ∎

正五角形の画像C

5 = 2.23606 79774… なので(富士山麓オウム鳴く):
  1 + 5 = 3.23606 79774…
もし一辺の長さが半分の 1 だったら、対角線の長さも半分になって:
  (1 + 5)/2 = 1.61803 39887…
この数値は「黄金比」と呼ばれる。 1.6 は「富士 + 1」の半分、 18 と 03 はそれぞれ「山麓」と「オウム」の半分、等々。

一辺 2 の正五角形の対角線の長さが約 3.2 であることは、作図からも確かめられる。対角線で結ばれた一方の頂点を中心に、半径 2 の円を描き(半径 = 辺の長さ)、他方の頂点を中心に半径 1 の円を描くと(半径 = 辺の長さの半分)、二つの円は交わらず、目分量で約 1/4 の隙間が生じる。対角線の長さは、ざっと 3.25 くらい、と。

✿

いまやこの正五角形の高さは明らか。最初に書いたように:
  (5 + 25)
5 + 25 = 5 + 4.472… = 9.472… なので、その平方根は明らかに 3 よりは大きいが 3.1 よりは小さい(312 = 961 であり、 3.12 = 9.61 は 9.472… と比べ過大)。

正五角形の画像D

実際、再び半径 2 の円と半径 1 の円を描くと、正五角形の高さは 3 よりほんのわずかだけ(目分量で 0.1 程度)大きいことが見て取れる。実際の値は:
  (5 + 25) = 3.07768 35371…

この数の二重根号を簡約することは、できない。

他方、正五角形の高さ(上記)を元に対角線の長さを求めると、最初に書いたように二重根号が生じる:
  対角線 = (6 + 25)

この二重根号は、計算済みの対角線の長さ 1 + 5 と同じ数値のはずだ。

一般に (A ± B) の形の A, B の一方または両方がそれ自身、平方根号を含んでいるとしよう。そのような多重根号に対処するとき、根号下の数たのたちの平方差――つまり、二つの数それぞれを平方して引き算した A2 − B2 の値が――重要な役割を果たす。

(6 + 25) の例では、根号下の数たちの平方差は:
  62 − (25)2 = 36 − 20 = 16
これは平方数 42 に等しい!

(5 + 25) は、数の形は似てるけど、対応する平方差は:
  52 − (25)2 = 25 − 20 = 5
この 5 という数は、平方数ではない!

これが平方数になれば、根号を簡約できる。平方数にならない場合、普通の意味では簡約できない。

✿

具体的なアルゴリズムは次の通り。 (A ± B) が与えられたとき、上記の平方差 d がもし平方数なら、 A と d の平均(足して 2 で割ったもの)を u として、 A の平均からのずれ A − u を v とすると、
  (A ± B) = u ± v
が成り立つ。右辺の ± では、 A ± B の ± と同じ符号を選択。

例1 (6 + 25) の場合、平方差 d = 16(上記)。
  A = 6 と d = 4 の平均 u = (6 + 4)/2 = 5
  A = 6 の平均 u からのずれ v = 6 − 5 = 1
従って (6 + 25) は、
  u + v = 5 + 1 = 5 + 1
に簡約可能!

例2 (11 + 62) の場合、平方差は:
  d = 112 − 62⋅2 = 121 − 72 = 49
これも平方数!
  A = 11 と d = 7 の平均 u = (11 + 7)/2 = 9
  A = 11 の平均 u からのずれ v = 11 − 9 = 2
従って (11 + 62) は、
  u + v = 9 + 2 = 3 + 2
に簡約可能。

例3 (2 + 3) の場合、平方差は:
  d = 22 − 3 = 1
これも平方数だ!
  A = 2 と d = 1 の平均 u = (2 + 1)/2 = 3/2
  A = 2 の平均 u からのずれ v = 2 − 3/2 = 1/2
従って (2 + 3) は、
  u + v = (3/2) + (1/2) = (3)/2 + (1)/2
  = (3 + 1)/2 = (6 + 2)/2
に簡約可能。

✿

上記のような計算法(二重根号外し)は、特に難しい計算ではない。なぜこれでうまくいくのか検討してから(次回)、同じアルゴリズムを「複素数の平方根」などに応用してみたい。(続く)

✿ ✿ ✿


2026-01-22 二重根号なんて怖くない! (5 − 26) = 3 − 2

#遊びの数論

(5 − 26) = 3 − 2 のような「二重根号外し」は、素朴に眺めると謎めいている。なにそれ、 (5 − 2) = 3 ってこと? 入れ子になってる 6 は、どこ行ったの…?

仕組みが分かってみると、実は簡単。上記の例なんかは、一瞬で暗算できる。多重根号簡約の一般論は難しいけど、簡単な「二重根号外し」程度なら、さくっと。

多重根号が簡約できるケースは、比較的まれ。でも同じアルゴリズムが、結構いろんなことに役立つ(複素数の平方根、複素係数の2次方程式、ある種の4次方程式など)。

✿

前回、正五角形の対角線の長さに関連して、二重根号簡約の具体例を挙げた。「二重根号外し」の仕組みの説明。

(A + ℓm) の形の数(A, ℓ は正)を考える。例えば (6 + 25)

m = (2m) のように、平方根の倍数については、一つの平方根にまとめることも可能(例えば 25 = 20)。 B = ℓ2m と置くなら、シンプルに
  (A + B)  (✽)
の形だけを考えれば十分、ってことになる。

(✽)の形の二重根号を変形して = u + v の形にできたとしよう。つまり、
  (A + B) = u + v  ア
が成り立った、と。そんな等式が、実際に成り立ち得るのか? A, B は与えられた定数、 u, v は未知数なので、前者を使って u, v を表現できれば理想だけど、直観的には「未知数が二つあるのに式が一つしかないんだから、情報不足。解けるわけねぇ」「そもそも左辺は複雑な二重根号。シンプルな右辺と等しくなるなんて、そんなうまい話、あるもんか」という気が、するかもしれない…。けどまぁ、とりあえず、外側の根号を外すため、アの両辺を平方して:
  A + B = u + v + 2(uv)  イ

〔注〕 イ右辺は (u + v)2 = (u)2 + 2(u)(v) + (v)2 = u + 2uv + v による。

仮に A が整数(あるいは一般に有理数)、 B が無理数だとすると――それが典型的なシチュエーションだ――、イ左辺は「有理数と無理数の和」で無理数。それに等しいイ右辺も、当然、無理数。今 u, v がどちらも有理数と仮定すると、イ右辺の u + v は、有理数同士の和なので有理数。イ右辺に無理数成分があるとすれば、平方根 (uv) だけ(ただし無理数の 2 倍も無理数なので、 2(uv) も無理数)。

イ左辺の「有理数の部分」と「それ以外」、イ左辺の「有理数の部分」と「それ以外」は、それぞれ等しくなるはず:
  A = u + v  ウ
  B = 2(uv)  エ
エの両辺を平方すると:
  B = 4uv  オ
つまり uv = B/4 となり、ウと組み合わせると未知数 u, v の和と積が(A, B の式として)分かるので、 u, v を解とする2次方程式を作ることができる(そうしたければ)。それを解けば、未知数 u, v を「与えられた A, B の式」として表現でき、アの変形が可能になる!

〔付記〕 「未知数が二つあるのに、それを決定するための式(情報)が一つしかない」とも思えたけど、その一つの式に「有理数成分」「無理数成分」の二つの情報が含まれていることから、結局、ウ・エの連立方程式となった。

具体的な u, v の決定法。まず「2次方程式を解く必要がないシンプルなやり方」から。ウの両辺を平方すると:
  A2 = u2 + 2uv + v2  カ
カからオを(辺ごとに)引き算すると:
  A2 − B = u2 − 2uv + v2 = (u − v)2  キ

等式キが鍵。与えられた二重根号 (A + B) の根号下にある二つの数 A, B について、平方差 d ――つまり、それぞれ平方して引き算した
  d = A2 − B
――を考えよう。 r = d と置くと、その両辺の平方から d = r2 なので、キから、
  d = r2 = (u − v)2 つま r = u − v  ク
となる。

† r2 = (u − v)2 は ±r = u − v を含意するが、便宜上、ここでは ± のうち + を選択する(平方差 d が 0 以上の実数の場合、この選択は、 u ≥ v だと決め付けることに当たる)。ア右辺の uv は、二つの数 {u, v} が一定なら一定の値(二つの数のどっちを u とするか好きに選んでも、結論に影響しない)。

ウとクを辺ごとに足し算して:
  A + r = 2u つまり u = (A + r)/2
ウからクを辺ごとに引き算して:
  A − r = 2v つまり v = (A − r)/2

r = d であることに留意すると、次の結論に至る。

命題1(一応のまとめ) (A + B)u + v の形に変形できる(A は正)。ここで d は、
  平方差 A2 − B
であり、 u = (A + d)/2, v = (A − d)/2。ここで A 自身は、根号を含まない数だとしよう。すると、もし d が有理数の平方に等しいなら r = d は有理数で、 u も v も根号を含まない。そのケースでは B の二重根号が外れて、一重根号だけの式に簡約される。

実践的には、次のように整理できる。

二重根号外しの基本アルゴリズム
 入力 (A + ℓm)
  ① 根号下の数たちの平方差 A2 − ℓ2m を d とする
   ◇ d が平方数か判定
    Yes ⇒ 二重根号を外せる(②へ)  No ⇒ 外せない(あきらめて終了)
  ② A と d の平均を u とする
  ③ A の平均からのずれ A − u を v とする(典型的には A は「平均」より大きい)
 出力 u + v

②の u は、 A と d を足して 2 で割ったものだから、命題1の u と同じ意味。従って③は、
  A − u = A − (A + d)/2 = 2A/2 − (A + d)/2 = (A − d)/2
の計算に当たり、命題1の v と同じ意味。「A と d の平均」「A の平均からのずれ」というのが、かえって分かりにくければ、命題1にあるように、
  u = (A + d)/2, v = (A − d)/2
と考えてもいい(用途によって、どちらの考え方も役立つ)。

別解 上記では、ウの u + v とオの 4uv から、カ・キ経由でクの u − v を作り、ウとクの辺々の和・差から u, v を抽出した。もし2次方程式を解く気があれば、オの段階で既に u, v 自体の和・差が分かるので、直ちに u, v を求めることも可能。すなわち、
  u + v = A, uv = B/4
なので、解と係数の関係から、 u, v は
  x2 − Ax + B/4 = 0
の解。これを解いて:
  u, v = [A ± (A2 − B)]/2
d = A2 − B と置けば、最初に得た結論と同じ。∎

例題1 可能なら (11 + 46) を簡約したい。

 112 = 121 そして (46)2 = 16⋅6 = 96 なので、平方差は:
  d = 121 − 96 = 25
25 = 52 は平方数なので、二重根号を外せる(A = 11, d = 5)。

命題1の方法をそのまま使うと:
  u = (11 + 25)/2 = 8, v = (11 − 25)/2 = 3

あるいは、実践的アルゴリズムから:
  A と d の平均 u = (11 + 5)/2 = 8
  A の平均からのずれ v = 11 − 8 = 3

いずれにしても、
  (11 + 46) = 8 + 3
となる(お好みで 22 + 3 と書いてもいい)。∎

〔別解〕 二重根号外しに使えるアルゴリズムは、複数の種類ある。扱う数が小さいときは、 (a + 2b) の形に変形して、和が a で積が b の2数 u, v を探してもいい。例題1の場合、
  (11 + 46) = (11 + 224)
であり、「足すと 11 で掛けると 24 になる二つの数」を考えると 8, 3 が見つかる。実際、
  (a + 2b) = u + v
が成り立つとすれば、その両辺を平方すると a + 2b = (u + v) + 2(uv) なので、この形の二重根号に限っていえば、《和が a で積が b になるような二つの数 u, v》を探せばいい。

例題2 可能なら (7 + 35) を簡約したい。

 72 = 49 そして (35) = 9⋅5 = 45 なので、平方差は:
  d = 49 − 45 = 4
4 = 22 は平方数なので、二重根号を外せる(A = 7, d = 2)。
  u = (7 + 2)/2 = 9/2, v = 7 − 9/2 = 5/2
よって:
  (7 + 35) = (9/2) + (5/2) = 3/2 + (5)/(2) = (3 + 5)/(2)
分母を有理化するため、分子分母を 2 倍すると:
   = (32 + 10)/2 ∎

〔付記〕 例題1の「別解」の方法(和と積を考える)は、場合によっては便利だが、汎用性が低い。例題2に適用するのは、(可能だが)あまり便利ではない。

✿

処理したい二重根号は (A + ℓm) の形とは限らず(A, ℓ は正)、 (A − ℓm) の形かもしれない。ア・イでは、
  (A + B) = u + v
と置き、両辺を平方して、
  A + B = u + v + 2(uv)
を得たが、もし内側の根号の前の符号が負なら、
  (A − B) = u v
と置いて、
  A B = u + v  2(uv)
とすればいい。すると
  A = u + v そして B = 2(uv)
となり、この条件は + の場合と共通(ウ・エ)なので、以降の処理は全く同じ。最後に u, v が求まったとき、
  u + v の代わりに u v
とするだけ。

〔補足〕 + のケースでは、「二つの数 {u, v} のどちらを u としても uv の値は変わらない」ということから、便宜上、 u, v の選択法を固定した(u, v が 0 以上の実数なら u ≥ v)。 のケースでは、変数名 u, v を入れ替えると u − v の値が変わってしまうので、どちらを u とするのか、必ずしも自由に選択できない。とはいえ、二重根号下の数が 0 以上の実数なら(それが実用上、最も重要なケース)、その根号は 0 以上の実数を表す。それに等しい u − v も、当然 0 以上の実数。よって u ≥ v という仮定は引き続き妥当。

例題3 可能なら (5 − 26) を簡約したい。

冒頭で挙げた例…。「和が 5 で積が 6」と考えると u = 3, v = 2 であることは明白だが、一応、一般のアルゴリズム通りにやってみる。

 52 = 25 そして (26)2 = 4⋅6 = 24 なので、平方差は:
  d = 25 − 24 = 1
1 = 12 は平方数なので、二重根号を外せる(A = 5, d = 1)。
  u = (5 + 1)/2 = 3, v = 5 − 3 = 2
  ∴ (5 − 26) = 32 ∎

〔注〕 真ん中の符号が + の場合、 (5 + 26) の簡約結果を 3 + 2 と書こうが 2 + 3 と書こうが同じことだが、 (5 − 26) の場合には、簡約結果は 3 − 2 であり 2 − 3 とすることはできない。実際、後者の引き算結果は、明らかに負の数。ところが
  6 = 2.44948 97427… (煮よ良く弱く)
の 2 倍 = 4.898… を 5 から引いたものは正の数。その平方根 (5 − 26) も、もちろん正の数

6 = 2.44948 97427 83178… (煮よ良く弱く・梨フナ野菜) 弱火でじっくり煮込むのはいいが、梨とフナは合うのだろうか?

実用上のヒント。 (A ± ℓm) の A, ℓ が公約数を持つときは、原則として、それをくくり出してから処理する方が効率的。例えば、
  (20 − 57)
を直接処理すると d = 202 − 52⋅7 = 400 − 175 = 225 となり、それは 152 なので:
  u = (20 + 15)/2 = 35/2, v = 20 − 35/2 = 5/2
となる(以下略)。そのやり方でも全く問題ないけど、代わりに
  (20 − 57) = 5 × (4 − 7)
と変形してから、二重根号の部分を処理すると d = 42 − 7 = 16 − 7 = 9 = 32 なので、1~2桁の簡単な計算で済む:
  u = (4 + 3)/2 = 7/2, v = 4 − 7/2 = 1/2
  ∴ u − v = (7 − 1)/2 = (14 − 2)/2
求めるものは、その 5 倍なので:
  (70 − 10)/2

特に A, ℓ の公約数が大きい場合(例えば3桁)、それをくくり出せば、かなり計算量を節減できるだろう。

✿

二重根号外しの例題なので、簡約できる例ばかり取り上げた。現実には、簡約可能な多重根号はまれな存在。だって d が平方数にならないと簡約できないわけで、例えば 1 から 1000 までの整数だけを考えると、平方数は 1, 4, 9, 16, ···, 961 の 31 個しかない。その範囲の d について根号外しができる確率は、単純計算で 31/1000 つまり 30 回に 1 回未満。

上記アルゴリズムでは、 d が平方数かどうかの判定が必要。 100 以下の平方数については、ほぼ誰でも瞬時に認識できるだろうけど、数論では、もう少し広い範囲の(特に 400 以下の)平方数が常用される。例えば (19 ± 62) を処理したいとして、平方差 d を作る途中計算で 192 = 361 が必要だし、 d = 361 − 36⋅2 = 289 が求まった瞬間、その 289 が平方数 172 であること(図解)を認識できないと、話が前へ進まない。

その点、もし (19 ± 62) = (19 ± 218) と変形して「和が 19 で積が 18」の数を考えるなら、一瞬で u = 18, v = 1 が見つかる。このように、個々のケースでは、別のやり方の方が速いかも…

でも、このメモで記したアルゴリズムは汎用的で、どんな場合にも、二重根号簡約の可否を確実に判定(可能なら簡約)できる。しかも、このアルゴリズムは、他の場面でも活躍する。(続く)

✿ ✿ ✿


2026-02-02 複素数の平方根 i はお金では買えない

#遊びの数論

(3 + 4i) = 2 + i のような「複素数の平方根」の計算は、「二重根号外し」と同じアルゴリズムによって実行可能。 (3 + 4i) ってのは
  (3 + 4−1)
を略したもんなんで、二重根号の処理になるのは不思議じゃないし。

上の例の場合、根号下の二つの数の平方差 d を求めると:
  d = 32 − (4i)2 = 9 − 16(i2) = 9 − 16(−1) = 9 + 16 = 25
根号下の一つ目の数 A = 3 と d = 5 の平均 u を求めると:
  u = (3 + 5)/2 = 4
A の平均 u からのずれ v を求めると(A は平均より小さい):
  v = 3 − 4 = −1
よって求める平方根は:
  u + v = 4 + −1 = 2 + i
(これでうまくいく理由については後述。)

✿

アルゴリズムの中身は「二重根号外し」と全く同じだが、一応「複素数の平方根」というスタイルで再導出しておく。


(A + B)2
= A2 + 2AB + B2

(A − B)2
= A2 − 2AB + B2

ア (x + yi)2
= x2 + 2(x)(yi) + (yi)2

イ (x2 − y2)2
= (x2)2 − 2(x2)(y2) + (y2)2

ウ (x2 + y2)2
= (x2)2 + 2(x2)(y2) + (y2)2


任意の複素数 a + bi が与えられたとして(a, b は実数)、その平方根を求めたい。仮に未知の実数 x, y があって、
  (a + bi) = x + yi
が成り立ったとする。両辺を平方すると:
  a + bi = x2 + 2xyi + (yi)2 = (x2 − y2) + 2xyi  
実部と虚部の比較から:
  a = x2 − y2  ‥‥①
  b = 2xy  ‥‥②

①の平方
  a2 = x4 − 2x2y2 + y4  
と、②の平方
  b2 = 4x2y2
を足すと:
  a2 + b2 = x4 + 2x2y2 + y4 = (x2 + y2)2  
a, b, x, y は(仮定により)実数なので、この両辺は 0 以上の実数。両辺の平方根を考えると:
  (a2 + b2) = x2 + y2  ‥‥③

③と①を足すと:
  (a2 + b2) + a = 2x2
  ∴ x2 = [(a2 + b2) + a]/2  ‥‥④

③から①を引くと:
  (a2 + b2) − a = 2y2
  ∴ y2 = [(a2 + b2) − a]/2  ‥‥⑤

与えられた実数 a, b が何であれ、④⑤それぞれの平方根から未知数 x, y を確定できる。 a, b が正でも正でなくても、
  (a2 + b2) ≥ (a2) = |a|
なので、④⑤の分子は負ではなく、従って x, y は仮定通り実数! 簡潔化のため r = (a2 + b2) と置くと:
  x2 = (r + a)/2, y2 = (r − a)/2
  つまり x = ±[(r + a)/2], y = ±[(r − a)/2]

結局、与えられた複素数 a + bi の平方根は、
  x + yi = ±[(r + a)/2] ± i[(r − a)/2]  (✽)
のような形になる。符号の選択は次の通り。 a + bi の平方根には、
  +(a + bi) つまり (a + bi)
で表される数と、その −1 倍に当たる
  −(a + bi)
の二つがある(a = b = 0 の場合を除き、上記二つの数は異なるが、どちらも平方すれば a + bi に等しい)。約束として、《+ の平方根》は「実部が負でない」とする(なんとなく当たり前だが…)。つまり (a + bi) を考えるなら、(✽)の一つ目の ± は + だよっ、と。そしてその場合、(✽)の二つ目の ± は b が負なら − で、 b が負でなければ + になる。
  (5 + 26) = 3 + 2
  (5 − 26) = 3  2
のような二重根号外しと同じパターンで、まぁ、別に不自然な規約でもないかと。符号の意味を明確にするため、「b は 0 以上」として整理すると…

複素数の平方根 a, b が実数で b が 0 以上のとき:
  (a + bi) = [(r + a)/2] + i[(r − a)/2]  (b ≥ 0)
  (a − bi) = [(r + a)/2]  i[(r − a)/2]  (−b < 0)
  ここで r = (a2 + b2)

〔注〕 −(a + bi) と −(a − bi) は、当然、上記と符号が正反対になる:
  −(a + bi) = [(r + a)/2]  i[(r − a)/2]
  −(a − bi) = [(r + a)/2] + i[(r − a)/2]

✿

例1 (3 + 4i) を求めたい。

 a = 3, b = 4 なので r = (32 + 42) = (9 + 16) = 25 = 5。従って:
  (3 + 4i) = [(5 + 3)/2] + i[(5 − 3)/2] = 4 + i1 = 2 + i ∎

検算 (3 + 4i) は、平方すると 3 + 4i になるような数のうち、実部が負でないもの。 2 + i は、確かに実部が負でない。そして平方すると、
  (2 + i)2 = 22 + 2⋅2⋅i + i2 = 4 + 4i + (−1) = 3 + 4i
なので、確かに条件を満たす!

r は、 (A + ℓm) の二重根号外しでいえば、平方差 d = A2 − ℓ2m の平方根 d に他ならない。実際、
  (3 + 4i) = (3 + 4−1)
なので d = 32 − 42(−1) = 9 − (−16) = 25。ただし平方「差」といっても、(平方の中に i2 = −1 があるせいで)負の数を引き算する。事実上、平方「和」だ。

二重根号外しの場合、この d が平方数になることが重大で、さもなければ「二重根号外し」という目的を達成できない(簡約できない二重根号)。一方、複素数の平方根の場合、アルゴリズムは同じでも、 d が平方数になることは必ずしも重要ではない。次の例では d = 20 に当たり、 d は平方数にならない。

例2 (2 + 4i) を求めたい。

 a = 2, b = 4 なので r = (22 + 42) = (4 + 16) = 20 = 25。従って:
  (2 + 4i) = [(25 + 2)/2] + i[(25 − 2)/2] = (5 + 1) + i(5 − 1) ∎

この解は、「簡約」という意味では、逆効果とも思える。 (5 + 1) + i(5 − 1) という長い表現より、もともとの (2 + 4i) の方が簡潔ですっきりしている。けれど、「実部と虚部が分離されている方が良い」という状況も多い。 (2 + 4i) のままだと、一体どんな数なのか分かりにくいし、数値的に扱おうとしても、複素数に対応できない計算機では全く処理できない。
  (5 + 1) + i(5 − 1)
の形なら、
  実部が 5 + 1 = 3.2360679… の平方根
  虚部が 5 − 1 = 1.2360679… の平方根
ということが一目瞭然で、数値的に扱いやすい。式がかえって複雑になるとしても、実部と虚部の分離には、場合によって大きなメリットがある!

検算 恒等式 (A + B)(A − B) = A2 − B2 から、
  (5 + 1)(5 − 1) = (5)2 − 12 = 5 − 1 = 4
なので:
  (5 + 1) (5 − 1) = [(5 + 1)(5 − 1)] = 4 = 2
よって:
  ((5 + 1) + i(5 − 1))2
   = (5 + 1) + 2i⋅(5 + 1) (5 − 1) + (−1)(5 − 1)
   = 5 + 1 + 2i⋅2 − 5 + 1 = 2 + 4i

✿

複素数の平方根とくれば i ――つまり i = −1 のそのまた平方根――を求めてみるのがお約束。三角関数を使えば cos 45° + i sin 45° で一瞬だが、複素数の平方根の問題と見ると、上記の書き方で a = 0, b = 1 のケースに当たる。よって r = (02 + 12) = 1 で:
  i = ((1 + 0)/2) + i((1 − 0)/2) = (2/4) + i(2/4)
   = 2/4 + i2/4 = 2/2 + i2/2

この数だって、コンセプト的には i と書いた方が簡潔だけど、上記の表記の方が「具体的な感じ」がする。

i のそのまた平方根、つまり i を求めてみる。その場合 a = b = 2/2 なので a2 = b2 = 2/4 = 1/2、従って r は再び = (1/2 + 1/2) = 1。よって i は、
  実部が (1 + 2/2)/2 の平方根
  虚部が (1 − 2/2)/2 の平方根
であり、それぞれ 2 + 2/42 − 2/4 の平方根なので、要するに:
  i = [(2 + 2)]/2 + [i(2 − 2)]/2

意外とシンプルでかわいい。この値は x16 = 1 の解(1 の原始16乗根)の一つで、16乗すると = 1 になる。関連する他の解については「i の平方根・そのまた平方根」参照。

−1 の平方根 i、すなわち 1 の原始4乗根。その i の平方根、すなわち 1 の原始8乗根。そして、そのまた平方根、すなわち 1 の原始16乗根…。望むなら、この連鎖はいくらでも続けることができる(1 の原始32乗根、64乗根、等々)。それらの実部・虚部の代数的表現は、似たような形で根号のネストが機械的に深まるだけで(r = 1 に固定されているので)、一般的な文脈では、さほど面白いものでもない。

✿

余興として x16 = 1 つまり x16 − 1 = (x8 + 1)(x8 − 1) = 0 を代数的に解いてみる。結果は既に出てるけど、あえて普通と違うやり方で。16個の解のうち、 x8 − 1 = 0 の解(計8個)は 1 の8乗根。この8次方程式は、
  (x4 + 1)(x2 + 1)(x2 − 1) = 0
と分解され、別の場所では x4 + 1 の根を代数的に(4次方程式を解いて)求めた(それ以外の根は自明)。ここでは、もう一つの8次方程式 x8 + 1 = 0 の解(計8個)に興味がある。その両辺を x4 で割ると:
  x4 + 1/x4 = 0  ‥‥⑥

t = x + 1/x と置くと:
  t2 = x2 + 2 + 1/x2 つまり x2 + 1/x2 = t2 − 2
両辺を平方して:
  x4 + 2 + 1/x4 = t4 − 4t2 + 4
  ∴ x4 + 1/x4 = t4 − 4t2 + 2
従って、⑥を解く代わりに t4 − 4t2 + 2 = 0 を解けばいい。 u = t2 と置くと:
  u2 − 4u + 2 = 0
  ∴ u = 2 ± 2
  ∴ t = ±(2 ± 2) 符号の組み合わせは四通り

純粋に代数的にやるなら、ここで変数の置換を元に戻して t = x + 1/x = ±(2 ± 2) とし、分母を払って四つの2次方程式を得る:
  x2 − (2 + 2) x + 1 = 0  ㋐
  x2 − (2 − 2) x + 1 = 0  ㋑
  x2(2 + 2) x + 1 = 0  ㋒
  x2(2 − 2) x + 1 = 0  ㋓
㋐㋒の判別式は負:
  (2 + 2) − 4 = −(2 − 2)
従って㋐㋒の解は:
  x = [±(2 + 2) ± i(2 − 2)]/2 符号は四通り
同様に、㋑㋓の解は:
  x = [±(2 − 2) ± i(2 + 2)]/2 符号は四通り

あるいは、多少の「幾何学的」観点を利用するなら…。 x が 1 の原始16乗根なら x−1 もそうだから(そして前者と後者は偏角の符号だけが異なるので)、 t = x + x−1 は共役複素数同士の和で、「1 の原始16乗根のどれか」の実部の 2 倍に等しい。仮に「1 の原始16乗根」のうち偏角が 22.5° のものを ζ とするなら:
  ζ と ζ−1 の実部は [(2 + 2)]/2  ㋕
  ζ3 と ζ−3 の実部は [(2 − 2)]/2  ㋖
  ζ5 と ζ−5 の実部は [(2 − 2)]/2  ㋗
  ζ7 と ζ−7 の実部は [(2 + 2)]/2  ㋘

㋕㋘の(計四つの解の)虚部の平方は:
  1 − (2 + 2]/4 = (2 − 2]/4
従って ζ, ζ7 の虚部は [(2 − 2)]/2 で ζ−1, ζ−7 の虚部はその −1 倍。同様に、残りの四つの解の虚部は [±(2 + 2)]/2 だ。この考え方だと、x についての2次方程式㋐㋑㋒㋓を解く必要がなく、 t = x + 1/x の値が求まった時点で、答えがほぼ確定する。

✿

既にやったように「i の平方根の平方根」を直接的に求める方が、軽やかで手っ取り早い。この問題でわざわざ4次方程式を使うのは、興味本位のお遊び。

✿ ✿ ✿


<メールアドレス>