他のメモへのリンク集。リンク集を飛ばして、このページの前書きへ。本文の目次へ。21、22などの数字は、メモの番号です。
![]()
遊びの数論54の続き。誤字脱字・間違いがあるかも。

![]()
2026-01-21 二重根号の外し方 正五角形は侮れない
問題1 一辺の長さ 2 の正五角形の、対角線の長さが 1 + √5 であることを示したい。
問題2 一辺の長さが 2 の正五角形の、高さ(頂点と反対側の辺の中点を結ぶ垂線の長さ)を求めたい。
問題1の記述が正しいとすれば、問題2は、三平方の定理を使って機械的に解ける。
問題2の解 直角三角形の底辺が 1、高さが ?、斜辺が 1 + √5 なので:
12 + ?2 = (1 + √5)2
∴ ?2 = (1 + √5)2 − 12 = (6 + 2√5) − 1 = 5 + 2√5
∴ ? = √(5 + 2√) ∎
二重根号が発生。正五角形関連は、トリッキーな根号処理が絡むことも多く、油断できない。
逆に、正五角形の高さが √(5 + 2√) であることと一辺の長さが 2 であることが、先に与えられたとすると…。三平方の定理から、対角線の長さを求めるのは同じ手間のようだが、単純計算では:
(対角線)2 = (√(5 + 2√))2 + 12 = (5 + 2√5) + 1 = 6 + 2√5
∴ 対角線 = √(6 + 2√)
答えは間違ってないけど、対角線の長さは 1 + √5 のはずなので、
√(6 + 2√) = 1 + √5
という変形が可能なはず。 √(A + √) のような形の「二重根号」を簡約するテクニックは、こういうシチュエーションで役立つ。任意の複素数 a + bi は = a + b√−1 なので、複素数 a + bi の平方根 √(a + bi) を求めることも、
√(A + √)
の形の二重根号処理だと捉えることができる。平方根はありふれた計算だし、複素数の平方根を考えなければならないこともある。「二重根号処理なんて、まれなこと」という感じもするけど、案外そうでもなく、応用範囲が広い。「i の平方根」なんかも、二重根号の問題として考えると簡単便利だし。
![]()
一辺 2 の正五角形の対角線の長さは、いろんな方法で求めることができる。「一辺 2」ってのは、便宜上の設定。「一辺 1」の方が良ければ、単に「一辺 2」の場合の答えを半分にしてもいい。
問題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 ∎
√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 + 2√)
5 + 2√5 = 5 + 4.472… = 9.472… なので、その平方根は明らかに 3 よりは大きいが 3.1 よりは小さい(312 = 961 であり、 3.12 = 9.61 は 9.472… と比べ過大)。
実際、再び半径 2 の円と半径 1 の円を描くと、正五角形の高さは 3 よりほんのわずかだけ(目分量で 0.1 程度)大きいことが見て取れる。実際の値は:
√(5 + 2√) = 3.07768 35371…
この数の二重根号を簡約することは、できない。
他方、正五角形の高さ(上記)を元に対角線の長さを求めると、最初に書いたように二重根号が生じる:
対角線 = √(6 + 2√)
この二重根号は、計算済みの対角線の長さ 1 + √5 と同じ数値のはずだ。
一般に √(A ± B) の形の A, B の一方または両方がそれ自身、平方根号を含んでいるとしよう。そのような多重根号に対処するとき、根号下の数たのたちの平方差が――つまり、二つの数それぞれを平方して引き算した A2 − B2 の値が――重要な役割を果たす。
√(6 + 2√) の例では、根号下の数たちの平方差は:
62 − (2√5)2 = 36 − 20 = 16
これは平方数 42 に等しい!
√(5 + 2√) は、数の形は似てるけど、対応する平方差は:
52 − (2√5)2 = 25 − 20 = 5
この 5 という数は、平方数ではない!
これが平方数になれば、根号を簡約できる。平方数にならない場合、普通の意味では簡約できない。
![]()
具体的なアルゴリズムは次の通り。 √(A ± B) が与えられたとき、上記の平方差 d がもし平方数なら、 A と √d の平均(足して 2 で割ったもの)を u として、 A の平均からのずれ A − u を v とすると、
√(A ± B) = √u ± √v
が成り立つ。右辺の ± では、 A ± B の ± と同じ符号を選択。
例1 √(6 + 2√) の場合、平方差 d = 16(上記)。
A = 6 と √d = 4 の平均 u = (6 + 4)/2 = 5
A = 6 の平均 u からのずれ v = 6 − 5 = 1
従って √(6 + 2√) は、
√u + √v = √5 + √1 = √5 + 1
に簡約可能!
例2 √(11 + 6√) の場合、平方差は:
d = 112 − 62⋅2 = 121 − 72 = 49
これも平方数!
A = 11 と √d = 7 の平均 u = (11 + 7)/2 = 9
A = 11 の平均 u からのずれ v = 11 − 9 = 2
従って √(11 + 6√) は、
√u + √v = √9 + √2 = 3 + √2
に簡約可能。
例3 √(2 + √) の場合、平方差は:
d = 22 − 3 = 1
これも平方数だ!
A = 2 と √d = 1 の平均 u = (2 + 1)/2 = 3/2
A = 2 の平均 u からのずれ v = 2 − 3/2 = 1/2
従って √(2 + √) は、
√u + √v = √(3/2) + √(1/2) = (√3)/√2 + (√1)/√2
= (√3 + 1)/√2
=
(√6 + √2)/2
に簡約可能。
![]()
上記のような計算法(二重根号外し)は、特に難しい計算ではない。なぜこれでうまくいくのか検討してから(次回)、同じアルゴリズムを「複素数の平方根」などに応用してみたい。(続く)
![]()
2026-01-22 二重根号なんて怖くない! √(5 − 2√) = √3 − √2
√(5 − 2√) = √3 − √2 のような「二重根号外し」は、素朴に眺めると謎めいている。なにそれ、 √(5 − 2) = √3 ってこと? 入れ子になってる √6 は、どこ行ったの…?
仕組みが分かってみると、実は簡単。上記の例なんかは、一瞬で暗算できる。多重根号簡約の一般論は難しいけど、簡単な「二重根号外し」程度なら、さくっと。
多重根号が簡約できるケースは、比較的まれ。でも同じアルゴリズムが、結構いろんなことに役立つ(複素数の平方根、複素係数の2次方程式、ある種の4次方程式など)。
![]()
前回、正五角形の対角線の長さに関連して、二重根号簡約の具体例を挙げた。「二重根号外し」の仕組みの説明。
√(A + ℓ√) の形の数(A, ℓ は正)を考える。例えば √(6 + 2√)。
ℓ√m = √(ℓ2m) のように、平方根の倍数については、一つの平方根にまとめることも可能(例えば 2√5 = √20)。 B = ℓ2m と置くなら、シンプルに
√(A + √) (✽)
の形だけを考えれば十分、ってことになる。
(✽)の形の二重根号を変形して = √u + √v の形にできたとしよう。つまり、
√(A + √) = √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 + 2√u√v + 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 + √) の根号下にある二つの数 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 だと決め付けることに当たる)。ア右辺の √u + √v は、二つの数 {u, v} が一定なら一定の値(二つの数のどっちを u とするか好きに選んでも、結論に影響しない)。
ウとクを辺ごとに足し算して:
A + r = 2u つまり u = (A + r)/2
ウからクを辺ごとに引き算して:
A − r = 2v つまり v = (A − r)/2
r = √d であることに留意すると、次の結論に至る。
命題1(一応のまとめ) √(A + √) を √u + √v の形に変形できる(A は正)。ここで d は、
平方差 A2 − B
であり、 u = (A + √d)/2, v = (A − √d)/2。ここで A 自身は、根号を含まない数だとしよう。すると、もし d が有理数の平方に等しいなら r = √d は有理数で、 u も v も根号を含まない。そのケースでは B の二重根号が外れて、一重根号だけの式に簡約される。
実践的には、次のように整理できる。
二重根号外しの基本アルゴリズム
入力 √(A + ℓ√)
① 根号下の数たちの平方差 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 + 4√) を簡約したい。
解 112 = 121 そして (4√6)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 + 4√)
= √8 + √3
となる(お好みで 2√2 + √3 と書いてもいい)。∎
〔別解〕 二重根号外しに使えるアルゴリズムは、複数の種類ある。扱う数が小さいときは、 √(a + 2√) の形に変形して、和が a で積が b の2数 u, v を探してもいい。例題1の場合、
√(11 + 4√) = √(11 + 2√)
であり、「足すと 11 で掛けると 24 になる二つの数」を考えると 8, 3 が見つかる。実際、
√(a + 2√) = √u + √v
が成り立つとすれば、その両辺を平方すると a + 2√b
=
(u + v) + 2√(uv)
なので、この形の二重根号に限っていえば、《和が a で積が b になるような二つの数 u, v》を探せばいい。
例題2 可能なら √(7 + 3√) を簡約したい。
解 72 = 49 そして (3√5) = 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 + 3√) = √(9/2) + √(5/2)
=
3/√2
+
(√5)/(√2)
=
(3 + √5)/(√2)
分母を有理化するため、分子分母を √2 倍すると:
= (3√2 + √10)/2 ∎
〔付記〕 例題1の「別解」の方法(和と積を考える)は、場合によっては便利だが、汎用性が低い。例題2に適用するのは、(可能だが)あまり便利ではない。
![]()
処理したい二重根号は √(A + ℓ√) の形とは限らず(A, ℓ は正)、 √(A − ℓ√) の形かもしれない。ア・イでは、
√(A + √) = √u + √v
と置き、両辺を平方して、
A + √B = u + v + 2√(uv)
を得たが、もし内側の根号の前の符号が負なら、
√(A − √) = √u − √v
と置いて、
A − √B = u + v − 2√(uv)
とすればいい。すると
A = u + v そして √B = 2√(uv)
となり、この条件は + の場合と共通(ウ・エ)なので、以降の処理は全く同じ。最後に u, v が求まったとき、
√u + √v の代わりに √u − √v
とするだけ。
〔補足〕 + のケースでは、「二つの数 {u, v} のどちらを u としても √u + √v の値は変わらない」ということから、便宜上、 u, v の選択法を固定した(u, v が 0 以上の実数なら u ≥ v)。 − のケースでは、変数名 u, v を入れ替えると √u − √v の値が変わってしまうので、どちらを u とするのか、必ずしも自由に選択できない。とはいえ、二重根号下の数が 0 以上の実数なら(それが実用上、最も重要なケース)、その根号は 0 以上の実数を表す。それに等しい √u − √v も、当然 0 以上の実数。よって u ≥ v という仮定は引き続き妥当。
例題3 可能なら √(5 − 2√) を簡約したい。
冒頭で挙げた例…。「和が 5 で積が 6」と考えると u = 3, v = 2 であることは明白だが、一応、一般のアルゴリズム通りにやってみる。
解 52 = 25 そして (2√6)2 = 4⋅6 = 24 なので、平方差は:
d = 25 − 24 = 1
1 = 12 は平方数なので、二重根号を外せる(A = 5, √d = 1)。
u = (5 + 1)/2 = 3, v = 5 − 3 = 2
∴ √(5 − 2√) = √3 − √2 ∎
〔注〕 真ん中の符号が + の場合、 √(5 + 2√) の簡約結果を
√3 + √2 と書こうが √2 + √3 と書こうが同じことだが、 √(5 − 2√) の場合には、簡約結果は
√3 − √2
であり
√2 − √3
とすることはできない。実際、後者の引き算結果は、明らかに負の数。ところが
√6 = 2.44948 97427… (煮よ良く弱く)
の 2 倍 = 4.898… を 5 から引いたものは正の数。その平方根 √(5 − 2√) も、もちろん正の数。
√6 = 2.44948 97427 83178… (煮よ良く弱く・梨フナ野菜) 弱火でじっくり煮込むのはいいが、梨とフナは合うのだろうか?

実用上のヒント。 √(A ± ℓ√) の A, ℓ が公約数を持つときは、原則として、それをくくり出してから処理する方が効率的。例えば、
√(20 − 5√)
を直接処理すると d = 202 − 52⋅7 = 400 − 175 = 225 となり、それは 152 なので:
u = (20 + 15)/2 = 35/2, v = 20 − 35/2 = 5/2
となる(以下略)。そのやり方でも全く問題ないけど、代わりに
√(20 − 5√)
=
√5 × √(4 − √)
と変形してから、二重根号の部分を処理すると 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 ± 6√) を処理したいとして、平方差 d を作る途中計算で 192 = 361 が必要だし、 d = 361 − 36⋅2 = 289 が求まった瞬間、その 289 が平方数 172 であること(図解)を認識できないと、話が前へ進まない。
その点、もし √(19 ± 6√) = √(19 ± 2√) と変形して「和が 19 で積が 18」の数を考えるなら、一瞬で u = 18, v = 1 が見つかる。このように、個々のケースでは、別のやり方の方が速いかも…
でも、このメモで記したアルゴリズムは汎用的で、どんな場合にも、二重根号簡約の可否を確実に判定(可能なら簡約)できる。しかも、このアルゴリズムは、他の場面でも活躍する。(続く)
![]()
2026-02-02 複素数の平方根 i はお金では買えない
√(3 + 4i) = 2 + i のような「複素数の平方根」の計算は、「二重根号外し」と同じアルゴリズムによって実行可能。 √(3 + 4i) ってのは
√(3 + 4√)
を略したもんなんで、二重根号の処理になるのは不思議じゃないし。
上の例の場合、根号下の二つの数の平方差 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 + 2√) = √3 + √2
√(5 − 2√) = √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 + i√1 = 2 + i ∎
検算 √(3 + 4i) は、平方すると 3 + 4i になるような数のうち、実部が負でないもの。 2 + i は、確かに実部が負でない。そして平方すると、
(2 + i)2 = 22 + 2⋅2⋅i + i2 = 4 + 4i + (−1) = 3 + 4i
なので、確かに条件を満たす!
r は、 √(A + ℓ√) の二重根号外しでいえば、平方差 d = A2 − ℓ2m の平方根 √d に他ならない。実際、
√(3 + 4i) = √(3 + 4√)
なので 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 = 2√5。従って:
√(2 + 4i)
= √[(2√ + 2)/2] + i√[(2√ − 2)/2]
=
√(√ + 1) + i√(√ − 1) ∎
この解は、「簡約」という意味では、逆効果とも思える。 √(√ + 1) + i√(√ − 1) という長い表現より、もともとの √(2 + 4i) の方が簡潔ですっきりしている。けれど、「実部と虚部が分離されている方が良い」という状況も多い。 √(2 + 4i) のままだと、一体どんな数なのか分かりにくいし、数値的に扱おうとしても、複素数に対応できない計算機では全く処理できない。
√(√ + 1) + i√(√ − 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
なので:
√(√ + 1) √(√ − 1)
=
√[(√ + 1)(√ − 1)]
= √4 = 2
よって:
(√(√ + 1) + i√(√ − 1))2
=
(√5 + 1) + 2i⋅√(√ + 1) √(√ − 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 + i√2/√4
= √2/2 + i√2/2
この数だって、コンセプト的には √i と書いた方が簡潔だけど、上記の表記の方が「具体的な感じ」がする。
√i のそのまた平方根、つまり √√ を求めてみる。その場合 a = b = √2/2 なので a2 = b2 = 2/4 = 1/2、従って r は再び = √(1/2 + 1/2) = 1。よって √√ は、
実部が (1 + √2/2)/2 の平方根
虚部が (1 − √2/2)/2 の平方根
であり、それぞれ 2 + √2/4 と 2 − √2/4 の平方根なので、要するに:
√√ = [√(2 + √)]/2 + [i√(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 ± √) 符号の組み合わせは四通り
純粋に代数的にやるなら、ここで変数の置換を元に戻して t = x + 1/x = ±√(2 ± √) とし、分母を払って四つの2次方程式を得る:
x2 − √(2 + √) x + 1 = 0 ㋐
x2 − √(2 − √) x + 1 = 0 ㋑
x2 + √(2 + √) x + 1 = 0 ㋒
x2 + √(2 − √) x + 1 = 0 ㋓
㋐㋒の判別式は負:
(2 + √2) − 4 = −(2 − √2)
従って㋐㋒の解は:
x = [±√(2 + √) ± i√(2 − √)]/2 符号は四通り
同様に、㋑㋓の解は:
x = [±√(2 − √) ± i√(2 + √)]/2 符号は四通り
あるいは、多少の「幾何学的」観点を利用するなら…。 x が 1 の原始16乗根なら x−1 もそうだから(そして前者と後者は偏角の符号だけが異なるので)、 t = x + x−1 は共役複素数同士の和で、「1 の原始16乗根のどれか」の実部の 2 倍に等しい。仮に「1 の原始16乗根」のうち偏角が 22.5° のものを ζ とするなら:
ζ と ζ−1 の実部は [√(2 + √)]/2 ㋕
ζ3 と ζ−3 の実部は [√(2 − √)]/2 ㋖
ζ5 と ζ−5 の実部は [−√(2 − √)]/2 ㋗
ζ7 と ζ−7 の実部は [−√(2 + √)]/2 ㋘
㋕㋘の(計四つの解の)虚部の平方は:
1 − (2 + √2]/4
= (2 − √2]/4
従って ζ, ζ7 の虚部は [√(2 − √)]/2 で ζ−1, ζ−7 の虚部はその −1 倍。同様に、残りの四つの解の虚部は [±√(2 + √)]/2 だ。この考え方だと、x についての2次方程式㋐㋑㋒㋓を解く必要がなく、 t = x + 1/x の値が求まった時点で、答えがほぼ確定する。
![]()
既にやったように「i の平方根の平方根」を直接的に求める方が、軽やかで手っ取り早い。この問題でわざわざ4次方程式を使うのは、興味本位のお遊び。
![]()