遊びの数論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 | 56

遊びの数論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) も、もちろん正の数

67 は煮魚
6 ≈ 2.44949 (煮よ良く良く
ロングバージョン 6 = 2.44948 97427 83178… (煮よ良く弱く・梨フナ野菜)
弱火でじっくり煮込むのはいいが、梨とフナは合うのだろうか?
7 ≈ 2.64575 (煮蒸しコウナゴ
ロングバージョン 7 = 2.64575 1311… (煮蒸しコウナゴ・一味いい)

実用上のヒント。 (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次方程式を使うのは、興味本位のお遊び。

✿ ✿ ✿


2026-02-07 ガウス和の符号の決定〔Hua 版〕

#遊びの数論 #ガウス和n 偶数 | n 合成数 | 平方 | 第六証明

ガウス和の符号の決定は難しいといわれる。ガウス自身による証明は平明で味わい深いけれど、「なぜこの方法でうまくいくのか」という仕組みが不透明で、その意味では謎めいている。このメモでは、フワ・ルォーケン(Hua Loo-Keng, 华罗庚 [華羅庚])の著書 [3] にある短い別証明を記す。非常に手際が良く、流れるように進む。「どこが難しいの?」と言わんばかりの清澄さ。

ガウス版だと、証明の準備だけで何節も必要。その点、この別バージョンは簡潔だ。

✿

p を任意の奇素数として、 1 の原始 p 乗根 r = exp (2πi/p) に関連する「基本」のガウス和
  σ = {x=0 to p−1} exp (2πix2/p)
を考える。 p が mod 4 で ≡ 1 か ≡ 3 かに応じて、 σ = ±p ないし ±ip であること(比較的容易に示される)を既知として、
  σ = +p ないし +ip
を示したい。 p ≡ 1 (mod 4) なら (1 + ip)(1 − i)/2 = 1, p ≡ 3 (mod 4) なら (1 + ip)(1 − i)/2 = −i なので、証明すべき事柄は、
  (1 + ip)(1 − i)/2⋅σ = p
と一本化される。この左辺を L としよう。

証明の概要は、次の通り(詳細については後述)。 L は = p or −p のどちらかだから、「実は L = p だ」と結論するためには、 L > −p を示せば十分。シンプルだが巧妙な議論によって、 L が
  L′ = (1 − i) {x=1 to p−1} exp (πix2/(2p))
の実部以上であることが示される。ここで右辺の総和を二つの和に分ける―― p の整数部分を q = p として、
  Y = {x=1 to q} exp (πix2/(2p)),  Z = {x=q+1 to p−1} exp (πix2/(2p))
と置くと、
  Re L′ = Re {(1 − i)(Y + Z)} ≥ Re {(1 − i)Y} − 2 | Z | ≥ 1/2p − 2 | Z |
が成り立ち(Re a は複素数 a の実部を表す)、従って L ≥ Re L′ > −p の証明は、
  2 | Z | < 3/2p
の証明に帰する。

✿

p が奇素数(あるいは、より一般的に 3 以上の奇数)のとき、任意の関数 ƒ(x) について、
  {x=1 to (p−1)/2} ƒ(x) + {x=1 to (p−1)/2} ƒ(p/2 − x) = {x=1 to p−1} ƒ(x/2)  ‥‥①
が成り立つ。実際、①の左辺で x が動く範囲を N = {1, 2, 3, ···, (p−1)/2} とし、それら各数が 2 倍された偶数たちを E = {2, 4, 6, ···, p−1} とすると、①の左辺は
  {x∈N} ƒ(x) + {x∈N} ƒ(p/2 − x) = {y∈E} ƒ(y/2) + {y∈E} ƒ((p − y)/2)
に等しい。上記右辺において、第1項〚第2項〛の分子は、 1 以上 p−1 以下の各偶数〚各奇数〛の値をちょうど一度ずつ取るので、二つの項の和は、①の右辺と同じ和を表す。

さて、
  σ − 1 = {x=1 to p−1} exp (2πix2/p)
   = {x=1 to (p−1)/2} [exp (2πix2/p) + exp (2πi(p − x)2/p)] = 2{x=1 to (p−1)/2} exp (2πix2/p)  ‥‥②
の総和の半分を、①の左辺第1項としたい――つまり ƒ(x) = exp (2πix2/p) と置く。すると、
  {x=1 to (p−1)/2} ƒ(x) = {x=1 to (p−1)/2} exp (2πix2/p) = (σ − 1)/2 = σ/2 − 1/2
であり(二つ目の等号は②による)、
  ƒ(p/2 − x) = exp (2πi(p/2 − x)2/p) = exp (2πi(p2/4 − px + x2)/p)
   = exp (2πip/4) exp (2πix2/p) = ip exp (2πix2/p)
  ∴ {x=1 to (p−1)/2} ƒ(p/2 − x) = ip {x=1 to (p−1)/2} exp (2πix2/p) = ip(σ/2 − 1/2)
なので、①は次の等式を含意する:
  σ/2 − 1/2 + ip(σ/2 − 1/2) = {x=1 to p−1} exp (2πi(x/2)2/p)
  ∴ [σ(1 + ip)]/2 − [1 + ip]/2 = {x=1 to p−1} exp (2πix2/(4p))

† e2πip/4 は p ≡ 1 or ≡ 3 (mod 4) に応じて i or −i に等しく、どちらの場合も ip に等しい。因子 e2πi(−px)/p = e2πi(−x) = 1 は積に影響しない。

両辺を 1 − i 倍すると:
  [(1 + ip)(1 − i)]/2⋅σ − [(1 + ip)(1 − i)]/2 = (1 − i) {x=1 to p−1} exp (πix2/(2p))  ‥‥③

前述のように、③の左辺第1項 L = [(1 + ip)(1 − i)]/2⋅σ は、基本のガウス和 σ に対応する実数(σ が実数なら σ そのもの、 σ が純虚数ならその虚部の値)であり、左辺第2項で引き算される分数は 1 or −i に等しい。すなわち、 p が mod 4 で ≡ 1 か ≡ 3 かに応じて、③の右辺は L − 1 ないし L + i に等しい。どちらの場合でも、③の右辺の実部を考え、それを③の左辺第1項(つまり実数 L)と比較するなら、
  L ≥ Re {(1 − i) {x=1 to p−1} exp (πix2/(2p))}  ‥‥④
が成り立つ。

✿

この L が −p より大きいことを示すのが、目標だ。L の定義は、ガウス和の定義とほとんど同じだが(ガウス和が純虚数のとき、その虚部を抽出する操作を除けば)、④右辺に含まれる総和も、ガウス和と酷似しており(x = 0 からではなく x = 1 から足し始めることと、指数関数の引数が通常の 1/4 になっていることを別にすれば)、事実 { } 内は L − 1 ないし L + i に等しい(③参照)。そのため④は、「L − 1 も L も L 以下だ」という、自明な(正しいけど役立たない)主張のようにも感じられる。ところが面白いことに、 x = 1 から p−1 までの範囲の総和を「1 から q まで」と「q+1 から p−1 まで」の二つの総和に分割することで(q は p の整数部分)、道が開ける。すなわち、
  Y = {x=1 to q} exp (πix2/(2p)),  Z = {x=q+1 to p−1} exp (πix2/(2p))
と置くと、④はこうなる:
  L ≥ Re {(1 − i)(Y + Z)} = Re {(1 − i)Y} + Re {(1 − i)Z}
   ≥ Re {(1 − i)Y} − | (1 − i)Z | = Re {(1 − i)Y} − 2 | Z |  ‥‥⑤

〔注〕 和の実部は実部の和。 Re a の絶対値は最大でも |a|。よって Re a は、どんなに小さくても −|a| 以上。積の絶対値は絶対値の積: |(1 − i)Z| = |1 − i|⋅|Z|

⑤の右端の第1項について。 1 から q までの各整数 x に対して、 (1 − i) exp (πix2/(2p)) = (1 − i)[cos (πx2/(2p)) + i sin (πx2/(2p))] の実部は cos (πx2/(2p)) + sin (πx2/(2p)) なので:
  Re {(1 − i)Y} = Re {x=1 to q} [(1 − i) exp (πix2/(2p))] = {x=1 to q} [cos (πx2/(2p)) + sin (πx2/(2p))]
q は p 以下だから、 1 ≤ x ≤ q のとき 0 < x2/p ≤ q2/p ≤ p/p ≤ 1 だ。一般に 0 ≤ θ ≤ π/2 なら cos θ + sin θ ≥ 1 なので({証明})、上記の等式は、
  Re {(1 − i)Y} ≥ {x=1 to p} 1 = p > p − 1 > p − p/2 > p/2
を含意し(∵ p ≥ 3)、従って⑤は次の不等式を含意する:
  L > p/2 − 2 | Z |  ‥‥⑥

結局、 L > −p の証明は、⑥で引き算される実数 2 | Z | があまり大きくないこと――具体的には
  2 | Z | < 3p/2 すなわち | Z | < (18/4)p  ‥‥⑦
が成り立つこと――の証明に帰する。実は、より強い不等式 | Z | < p が成り立つことが示され、証明が完成する。その手順は以下の通り。

✿

k を変数として vk = exp [πik(k+1)/(2p)] と置くと:
  vx − vx−1 = [cos (πx(x + 1)/(2p)) + i sin (πx(x + 1)/(2p))] − [cos (π(x − 1)x/(2p)) + i sin (π(x − 1)x/(2p))]
   = [cos (π(x2 + x)/(2p)) − cos (π(x2 − x)/(2p))] + i [sin (π(x2 + x)/(2p)) − sin (π(x2 − x)/(2p))]
   = [−2 sin (πx2/(2p)) sin (πx/(2p))] + i [2 cos (πx2/(2p)) sin (πx/(2p))]

〔注〕 最後の等号は、余弦・正弦の「差→積」の公式による。すなわち:
  cos A − cos B = −2 sin [(A + B)/2] sin [(A − B)/2]
  sin A − sin B = 2 cos [(A + B)/2] sin [(A − B)/2]

wk = csc [πk/(2p)] つまり wk = (sin [πk/(2p)])−1 と置くと:
  (vx − vx−1) wx = −2 sin (πx2/(2p)) + 2i cos (πx2/(2p))
   = 2i [cos (πx2/(2p)) + i sin (πx2/(2p))] = 2i exp (πix2/(2p))

仮定 Z = {x=q+1 to p−1} exp (πix2/(2p)) と、上記の等式を組み合わせると:
  2i Z = {x=q+1 to p−1} 2i exp (πix2/(2p)) = {x=q+1 to p−1} (vx − vx−1) wx  ‥‥⑧

今、⑧右辺の総和を S1 として、微妙に違う総和 S2 = {x=q+1 to p−1} vx (wx − wx+1) と S1 を比べると、 S1 には x が最小(= q+1)のときの −vx−1wx が含まれるが S2 にはその項がなく、 S2 には x が最大(= p−1)のときの −vxwx+1 が含まれるが S1 にはその項がない。それらを別にすれば S1 と S2 は全く同じ項を含むので、
  2i Z = S1 = S2 − vqwq+1 + vp−1wp = {{x=q+1 to p−1} vx (wx − wx+1) } − vqwq+1 + vp−1wp
が成り立つ。この左辺の絶対値は 2 | Z | に等しい。一方、右辺の絶対値は、
   ≤ {{x=q+1 to p−1} | vx (wx − wx+1) | } + | vqwq+1 | + | vp−1wp |
を満たすが三角不等式)、各因子 vk は(定義により絶対値 1 なので)積の絶対値に影響しない。 k が区間 [1, p] にあるとき、 wk = csc πk/(2p) は正実数値を取りつつ単調に減少するので、上記の式に含まれる wx − wx+1, wq+1, wp はどれも正の実数。これらのことから:
  |2i Z| = 2 |Z| ≤ {{x=q+1 to p−1} | wx − wx+1 | } + | wq+1 | + | wp |
   = {{x=q+1 to p−1} (wx − wx+1) } + wq+1 + wp = 2wq+1
  ∴ | Z | ≤ wq+1 = csc π(q + 1)/(2p)  ‥‥⑨

θ の絶対値が小さいとき sin θ ≈ θ だ。今 θ を小さい正の角度とすると、正弦 sin θ は対応する弧の長さ θ より小さいが、両者は近似的に等しいのだから、二つの値の比は一定範囲に保たれる。実際、 0 < θ ≤ π/2 なら (2/π)⋅θ ≤ sin θ < θ であることが{証明可能}。従って(逆数を考えると)、同じ範囲の θ について π/() ≥ csc θ > 1/θ が成り立つ。 π(q + 1)/(2p) を α とすると、それは上記範囲内の角度だから、
  csc α ≤ π/() = π/22p/[π(q + 1)] = p/(q + 1) < p/p = p
。これを⑨と組み合わせて、
  | Z | ≤ csc α < p < (18/4)p
を得る。⑦が示された。∎

† |a ± b ± c ± ···||a| + |b| + |c| + ··· を超えない(証明例題1参照)。

‡ ここでは「csc の値が正」というだけで十分だが、より精密には +1 以上。なぜなら k/p は正で 1 以下なので、 π/2 × k/p の sin も正で 1 以下。 csc はその逆数。

¶ p の小数部分を f とすると q = p − f かつ 0 ≤ f < 1、ゆえに q + 1 = p + 1 − f > p。分子・分母が正なら、分母が小さいほど分数の値は大きい。

✿

⑧は巧妙だが、どう進めればいいのか自明ではない。よく似た別の総和との微妙な違いを考えることで、鮮やかに道が開ける。項たちがうまく打ち消し合って 2wq+1 だけが残るところが、優美。

+p という値を評価するのに「−p より大きければ十分」という全体的発想も、⑨などの不等式も、直観的にはずいぶん大ざっぱで「余裕を見過ぎ」とも思える。それでいて手法は繊細で、意外とぎりぎりのところで不等号が成り立つ。「粗雑な評価」と甘く見て、下界 2θ/π ≤ sin θ を θ/2 < sin θ あたりで済まそうとすると、うまくいかない――「1.57… 分の θ」より「2 分の θ」の方が簡便だけど、第一印象ほど不等号に余裕がない。

関連リンク n が素数べきのときのガウス和〔Hua 版〕

✿

付録A 複素数(あるいは実数)の「積の絶対値」と「絶対値の積」は等しい。

証明 a, b, c, d を実数として、任意の複素数 x = a + bi, y = c + di を考えると:
  |x| = (a2 + b2), |y| = (c2 + d2)
  ∴ |x||y| = [(a2 + b2)(c2 + d2)]  ‥‥⑩

一方、 xy = (ac − bd) + (ad + bc)i なので:
  |xy| = [(ac − bd)2 + (ad + bc)2]  ‥‥⑪
⑪の根号下を展開すると:
  (ac)2 − 2(ac)(bd) + (bd)2 + (ad)2 + 2(ad)(bc) + (bc)2
   = (ac)2 + (ad)2 + (bc)2 + (bd)2
これは⑩の根号下の式を展開したものと一致。すなわち⑩と⑪は等しい。∎

⑩の平方と⑪の平方も等しいので、副産物として、次の恒等式を得る:
  (a2 + b2)(c2 + d2) = (ac − bd)2 + (ad + bc)2  ‥‥⑫

任意の複素数 w について norm(w) = ww* = |w|2 と定義すると、⑫は次の関係に当たる:
  (norm x)(norm y) = norm (xy)

✿ ✿ ✿


2026-02-10 sin, cos などの「差→積」の公式

#遊びの数論

sin A − sin B のような「三角関数の引き算」を「三角関数の掛け算」の形に変換したいこと(そうすると都合がいいケース)がある。例えば sin x や cos x などの導関数を(定義に従って)求めるとき、
  [sin (x + h) − sin x]/h
のような値(の h→0 における極限値)を評価する必要があり、この分子を処理するのに「差→積」の変換が役立つ。別の例として、 Hua によるガウス和の符号決定では、
  sin (π(x2 + x)/(2p)) − sin (π(x2 − x)/(2p))
のような引き算の整理に、同様の変換が利用される。

tan の「和→積」「差→積」は比較的マイナーだけど、中身は単純。それを利用して tan x の導関数を(商の微分法に依存せず、直接定義から)求めることもできる。

✿

sin, cos の「積→和」「積→差」も、その逆の「和→積」「差→積」も、加法定理から容易に派生する。例えば、
  ア sin (α + β) = sin α cos β + cos α sin β
  イ sin (α − β) = sin α cos β − cos α sin β
の二つの等式を縦に足し算すると:
  ウ sin (α + β) + sin (α − β) = 2 sin α cos β
あるいはアからイを引くと:
  エ sin (α + β) − sin (α − β) = 2 cos α sin β

ウ〚エ〛の両辺を 2 で割って右辺から左辺を見れば、 sin と cos の積を sin の和〚差〛に変換する式となる。逆に、「和」や「差」を「積」の形にするには、
  カ α + β = A
  キ α − β = B
と置けばいい。カとキを足すと 2α = A + B なので
  ク α = (A + B)/2
となる。カからキを引くと 2β = A − B なので
  ケ β = (A − B)/2
となる。

カ・キ・ク・ケをウに代入すると:
  サ sin A + sin B = 2 sin [(A + B)/2] cos [(A − B)/2]
これが sin の「和→積」の公式だ。同様に、カ・キ・ク・ケをエに代入して:
  シ sin A − sin B = 2 cos [(A + B)/2] sin [(A − B)/2]
これが今回のテーマ、 sin の「差→積」の公式。

サ・シは、次のように一つの式で表現されることもある(シ右辺の掛け算の順序を逆にして):
  sin A ± sin B = 2 sin [(A ± B)/2] cos [(A ∓ B)/2]

二つの式をコンパクトに要約できることはメリットだが、実用上、シのままの順序の方が分かりやすいかも。

✿

余弦の加法定理を出発点として、同様のことをやってみる。
  タ cos (α + β) = cos α cos β − sin α sin β
  チ cos (α − β) = cos α cos β + sin α sin β
タとチを足すと:
  ツ cos (α + β) + cos (α − β) = 2 cos α cos β
タからチを引くと:
  テ cos (α + β) − cos (α − β) = −2 sin α sin β

ツの両辺を 2 で割って〚テの両辺を −2 で割って〛整理すれば、 cos 同士〚sin 同士〛の「積」を cos の和〚差〛で表す式を得る。一方、変数 α, β をカ・キ・ク・ケによって変数 A, B に置き換えると、ツは
  ナ cos A + cos B = 2 cos [(A + B)/2] cos [(A − B)/2]
となり(「和→積」)、テは、
  ニ cos A − cos B = −2 sin [(A + B)/2] sin [(A − B)/2]
となる(「差→積」)。

✿

サ・シ・ナ・ニなどの公式を一つ一つ丸暗記しようとすると、符号や三角関数の種別が少々紛らわしい。加法定理(ア・イ・タ・チ)さえ知っていれば導出は容易なので、このような公式については、無理に細かく覚える必要ないと思われる(個々の導出結果を覚えるより、導出法を覚えた方が効率的)。

とはいうものの、導出過程を踏まえると、
  ① sin (α ± β) = sin α cos β ± cos α sin β
の右辺後半、ないし
  ② cos (α ± β) = cos α cos β ∓ sin α sin β
の右辺後半から「差→積」が生じるのだから、
  sin の差 = 2 cos α sin β
  cos の差 = −2 sin α sin β
であることは明白。この形を考えるなら、あとは単に α を A, B の平均(足して 2 で割る)で置き換え、 β を A, B の「逆平均」(引いて 2 で割る)で置き換えるだけでいい。同様に、「和→積」は①ないし②の前半から生じる。一つ一つの式を個別に丸暗記するのは大変でも、全体をまとめて考えると単純明快。

✿

tan バージョンの「和→積」「差→積」は、ほぼワンステップで導出される:
  tan α ± tan β = sin α/cos α ± sin β/cos β = (sin α cos β ± cos α sin β)/(cos α cos β)
(単に算数的に、分数を通分。)この分子は sin (α ± β) に等しいので(上記①参照):

tan α ± tan β = [sin (α ± β)]/[cos α cos β] = sin (α ± β) sec α sec β
ただし分母 ≠ 0 とする。すなわち αβπ/2 の奇数倍ではない。

内容はシンプルだが、比較でいえばかなりマイナーな存在。「そんな公式、何の役に立つの?」という疑問も生じるかもしれない。

この公式を使うと、 tan x の導関数が sec2 x つまり 1/(cos2 x) であることを(定義から直接)証明できる。話の便宜上、ここでは「h→0 のとき (sin h)/h = 1 であること」を既知としよう。導関数の定義によると、 tan x の導関数は、与えられた入力 x に対して、 h→0 のときの
  [tan (x + h) − tan x]/h
の値を出力とする。上記の公式から(α = x + h, β = x と置く)、この分子は、次の値に等しい:
  sin ((x + h) − x) sec (x + h) sec x = sin h sec (x + h) sec x
従って:
  [tan (x + h) − tan x]/h = ((sin h)/h) sec (x + h) sec x
h→0 のとき、この右辺の第1因子は 1 になり、 sec (x + h) は sec x になるので、結局
   = 1⋅sec x sec x = sec2 x
だ。

✿ ✿ ✿


2026-02-14 三角不等式とコーシーの不等式

#遊びの数論

三角不等式とは、「三角形の二辺の長さの和は、もう一つの辺の長さ以上」という(当たり前の)主張。△ABCを考えると、「頂点 A から頂点 C へ、辺 AC 上を真っすぐ行く」のと比べ、「別の頂点 B に寄り道して A → B → C と折れ線状に進む」のは、遠回りになる(少なくとも近道にはならない)。

そんなの、当たり前! と感じられる。確かに直観的には超当たり前。けれど証明しようとすると、意外と手間がかかる。「フン、折れ線は直線より長い、なんていう当たり前の不等式、証明したところでどーせ何の役にも立つまい!」とも思えるが、この種の不等式は文字通りの「三角形の辺についての自明な命題」という以上の意味を持ち、いろんな分野で(基本ツールとして)常用される。そのうち最も身近なのは、たぶん実数や複素数の「和の絶対値」の扱いだろう。

✿

文字通り「三角形の辺の長さの話」と解釈するなら、三角不等式は幾何学の問題だ(ユークリッド I.18 ~ I.20 で証明されている)。今、 O を原点、 P, Q を平面上の任意の点とする。「平面」を「複素平面」と解釈して、 P, Q がそれぞれ複素数 p, q に対応すると仮定するなら、
  OP の長さ = p の絶対値 |p|
  OQ の長さ = q の絶対値 |q|
であり、もし OPRQ が平行四辺形になるように点 R を選択するなら、点 R は p + q に対応。この文脈において △OPR を考えると、三角不等式とは、「上記二つの絶対値の和は
  平行四辺形の対角線 OR の長さ = p + q の絶対値 |p + q|
以上」という主張だ。つまり、幾何学的な作図・証明の代わりに、単に
  |p + q| ≤ |p| + |q|  ‥‥①
を証明すればいい。

〔補足〕 ▱OPRQ の辺 PR は辺 OQ と平行で(つまり方向が同じで)、長さ(つまり絶対値)も同じなので、ベクトルとしては PR と OQ は等しい。よって OP = p と OQ = q の和 p + q は OP と PR の和に等しく、足し算の結果は OP に PR を継ぎ足したもの、すなわちベクトル OR が指し示す点 R に対応する。 O, P, Q が同一直線上にある場合、 ▱OPRQ は普通の意味での平行四辺形にはならないけれど、その場合でも、 OQ と方向・長さが同じ線分(ベクトル)を OP に継ぎ足して、それが指し示す点を R とする。つまり ∠POQ = 0° ないし = 180° の「つぶれた平行四辺形」も、平行四辺形の一種と認めることにする。

† https://mathcs.clarku.edu/~djoyce/java/elements/bookI/propI18.html

ここで絶対値というのは、もちろん(複素平面上での)原点からの距離。 w = u + vi を任意の複素数とすると(u, v: 実数)、その絶対値は、
  |w| = (u2 + v2)
だ。従って、仮に p = a + bi, q = c + di とすると p + q = (a + c) + (b + d)i であり(a, b, c, d: 実数)、証明されるべき不等式①は
  [(a + c)2 + (b + d)2] ≤ (a2 + b2) + (c2 + d2)  ‥‥②
となる。両辺を平方して:
  (a + c)2 + (b + d)2 ≤ (a2 + b2) + (c2 + d2) + 2(a2 + b2)(c2 + d2)  ‥‥③

③の左辺(の二つの平方)を展開後、両辺から a2 と b2 と c2 と d2 を引くと:
  2ac + 2bd ≤ 2(a2 + b2)(c2 + d2)
  ∴ ac + bd ≤ (a2 + b2)(c2 + d2)  ‥‥④
再び両辺を平方して:
  (ac)2 + (bd)2 + 2(ac)(bd) ≤ (a2 + b2)⋅(c2 + d2) = a2c2 + a2d2 + b2c2 + b2d2  ‥‥⑤
両辺から (ac)2 と (bd)2 を引くと:
  2(ac)(bd) ≤ a2d2 + b2c2
  ∴ 0 ≤ (ad)2 + (bc)2 − 2acbd = (ad − bc)2  ‥‥⑥

不等式⑥は、常に成り立つ(なぜなら a, b, c, d は実数なので ad − bc も実数、その平方は必ず 0 以上)。すなわち、三角不等式①は、「常に成り立つ不等式」⑥を含意する。このことから「不等式①自身も成り立つ」と断言できるであろうか?

もし逆に、常に成り立つ⑥を仮定してそこから①が導かれるなら、確かに①は正しいと結論される。でも一般には、ある事柄が真だからといって、その逆も真とは限らない。上記の導出で注意すべき点として、 X ≤ Y なら X2 ≤ Y2 だ、というのは常に正しいが(X, Y: 実数)、逆に X2 ≤ Y2 だからといって、それだけでは X ≤ Y とは言い切れない(例えば X = 3, Y = −4 のとき 32 ≤ (−4)2 は正しいが、そのことをもって 3 ≤ −4 とは結論できない)――どんなに Y2 が巨大でも Y は負かもしれない(もしかしたら Y はマイナスの数で、ものすごく小さいかも)、という落とし穴。

もし Y が負でないこと(0 以上であること)が保証されていれば、この落とし穴はなくなって、 X2 ≤ Y2 なら X ≤ Y だ、と単純に言える。

Y が負でない保証さえあれば、 X は正でも 0 でも負でもいい。もし X, Y が両方負でないなら、単純な大小の比較が可能。一方、もし Y が負でなく X が負なら、具体的な値を考えるまでもなく、もちろん Y は X より大きい。

④の右辺を Y とすると、それは(0 以上の数の平方根の積であり)負ではないから、⑤は④を含意する。同様に②の右辺を Y′ とすると、それも(0 以上の数の平方根の和であり)負ではないから、③は②を含意する。よって②⇒③と④⇒⑤は、逆も真。その他の変形は、定義に基づく表現や単なる移項(両辺に同じ数を加減すること)などであり、問題なく逆も真。結局、①と⑥は同値であり、しかも⑥は常に正しいので、①も常に正しい。三角不等式が証明されたっ!

✿

④の両辺を平方した
  (ac + bd)2 ≤ (a2 + b2)(c2 + d2)  ‥‥⑦
の形式――あるいはその両辺の平方根(右辺については、負でない平方根)、つまり④そのもの――は、コーシーの不等式と呼ばれるものの一種。それを利用すると、三角不等式は、次のように簡潔に証明される。いわく、コーシーの不等式から④が成り立つ。その両辺を 2 倍してから両辺に a2 + b2 + c2 + d2 を足し、左辺・右辺それぞれの(負でない)平方根を考えると、②を得る。証明終わり。∎

ちなみに、コーシーの不等式の一般形は…

コーシーの不等式Augustin-Louis Cauchy, 1821
  AB + A′B′ + A″B″ + ··· ≤ (A2 + A′2 + A″2 + ···)(B2 + B′2 + B″2 + ···)
言い換えれば:
  (AB + A′B′ + A″B″ + ···)2 ≤ (A2 + A′2 + A″2 + ···)(B2 + B′2 + B″2 + ···)
すなわち、「積の和の平方」は、対応する「平方和の積」を超えない。ここで A たちと B たちは任意の実数で、等しい項数を持つ(何項あってもいい)。項数を n として、総和記号を使うと:
  ({k=1 to n} Ak Bk)2 ≤ {k=1 to n} (Ak)2 {k=1 to n} (Bk)2

⑦は n = 2 の例で、 A1 = a, A2 = b; B1 = c, B2 = d に当たる。

† https://gallica.bnf.fr/ark:/12148/btv1b8626657t/f481.item

コーシーの不等式は、後に複数の形式で拡張された。拡張されたバージョン(離散的な総和に限らず、積分についても同様の不等式が成り立つ)は、コーシー゠ブニャコフスキー゠シュワルツ不等式(略して CBS 不等式、または CS 不等式)と呼ばれる。それは元祖コーシーの不等式の約半世紀後、ブニャコフスキー(Буняковский: Viktor Bunyakovsky)によって記述され、そのまた四半世紀後、シュワルツ(Hermann Schwarz: シュヴァーツ、シュヴァルツ)により応用された。上掲の元祖コーシーの不等式も(一般化されたバージョンに包摂されるので)、コーシー゠シュワルツ不等式と呼ばれることがある。

コーシーの不等式の Cauchy 自身による証明は次の通り。素直で明快。

証明 不等式の左辺を P としよう。
  P = (A1 B1 + A2 B2 + ··· + An Bn)2
を展開すると、 (Aj Bj)2 の形の各項(1 ≤ j ≤ n)の他に、 2(Aj Bj)(Ak Bk) の形の多数の項(1 ≤ j < k ≤ n)が生じる。さて、 P に
  Q = (A1 B2 − A2 B1)2 + (A1 B3 − A3 B1)2 + ··· + (A2 B3 + A3 B2)2 + ···
を足した和は、不等式の右辺より小さくない(Q は実数の平方の和であり、負ではないから)。ただし、足し算される Q の各項は、
  ★ (Aj Bk − Ak Bj)2  1 ≤ j < k ≤ n
の形とする。足し算 P + Q の結果として(★ の展開を考えると)、もともと P の展開に含まれていた 2(Aj Bj)(Ak Bk) たちは全部消滅する。同時に、もともとは含まれていなかった (Aj Bk)2 + (Ak Bj)2 たちが追加される。要するに P + Q は、
  [(A1)2 + (A2)2 + ··· + (An)2] × [(B1)2 + (B2)2 + ··· + (Bn)2]
を展開したものに等しい。ところが、この積は不等式の右辺に他ならない。上述のように、それは不等式の左辺より小さくない。∎

次のような面白い別証明もある(少々天下り的だが)。

別証明 A たち(Ak)が全て = 0 なら不等式は自明(0 ≤ 0)。それ以外の場合を検討する。 t を実変数として、
  ƒ(t) = {k=1 to n} (tAk + Bk)2
と置くと、それは n 個の「実数の平方」の和なので、 ƒ(t) の値は、決して負にならない。さて、
  ƒ(t) = t2 [{k=1 to n} (Ak)2] + t [2 {k=1 to n} (Ak Bk)] + [{k=1 to n} (Bk)2]
は t についての2次式だが(角かっこ [ ] 内のゴチャゴチャは A たち、 B たちによって決まる実数の定数であり、係数である!)、 ƒ(t) は負にならないので、そのグラフは決して第3・第4象限に入り込まず、従って横軸と交わらない(横軸に接する可能性はある)。言い換えると、実係数の2次方程式 ƒ(t) = 0 は、実数解を一つも持たないか、または実数の重解を一つだけ持つ。よって ƒ(t) の判別式の符号は正ではない。この判別式の 4 分の 1 を δ とすると
  δ = [{k=1 to n} (Ak Bk)]2 − [{k=1 to n} (Ak)2][{k=1 to n} (Bk)2]  ☆
であり、上記のことから δ ≤ 0 なので、☆ の右辺第1項は、第2項を超えない。それが証明されるべきことだった。∎

‡ https://proofwiki.org/wiki/Cauchy%27s_Inequality

✿

「複素数の絶対値についての三角不等式」はとても重要なので、コーシーの不等式と無関係の別経路からも、それを証明しておく――「共役複素数の基本性質」を使う。

任意の複素数 w = u + vi が与えられたとき(u, v: 実数)、その w と比べて実部が同じで、虚部が −1 倍されている数、つまり u − vi は、記号 w* で表され、 w の共役複素数(または複素共役、略して共役)と呼ばれる(同じ意味で記号 w [w の上に横線を引いたもの] が使われることも多いが、ここでは w* を使う)。共役複素数の性質のうち、当面の議論に必要なものを列挙すると:

㋐ 任意の複素数 w の絶対値の平方は、「その数自身」と「その数の共役」の積 ww* に等しい。実際:
  ww* = (u + vi)(u − vi) = u2 − v2(i2) = u2 + v2

㋑ 共役の共役は、もともとの数に等しい:
  (w*)* = (u − vi)* = u − (−vi) = u + vi = w

㋒ 任意の複素数とその共役複素数は、絶対値が等しい。そのことは、直接計算によっても容易に確認可能だが、 w* の絶対値の平方が
  (w*)(w*)* = (w*)(w) = ww*
であること(つまり w の絶対値の平方と一致すること)からも、明らか(絶対値は負でないので、絶対値の平方が一致すれば絶対値そのものも一致)。

㋓ 和の共役と、共役の和は一致する:
  (x + y)* = x* + y*
実際 x = a + bi, y = c + di とすると、上記の左辺は ((a + c) + (b + d)i)* = ((a + c) − (b + d)i)* であり、それは上記の右辺に等しい。

㋔ 同様に、積の共役は、共役の積:
  (xy)* = x* y*
実際 (a + bi)(c + di) = (ac − bd) + (ad + bc)i の共役は (ac − bd) − (ad + bc)i であり、それは
  (a − bi)(c − di) = (ac − bd) − (ad + bc)i
に一致。

〔付記〕 「積の絶対値」が「絶対値の積」であることは、直接計算によって容易に確認可能だが、性質㋔からも証明可能。便宜上、「絶対値」の代わりに「絶対値の平方」を使って記す。「xy の絶対値の平方」は、㋐と㋔から
  (xy)(xy)* = (xy)(x*y*) = (xx*)(yy*)
であり、この右端の積は、再び㋐から、「x の絶対値の平方」と「y の絶対値の平方」の積に、等しい。

㋕ 任意の複素数 w = u + vi とその共役複素数の和は、両者に共通する実部の 2 倍に等しい:
  w + w* = 2 Re w
ここで Re w は w の実部、つまり u を表す。実際:
  (u + vi) + (u − vi) = 2u

㋖ 任意の複素数 w = u + vi の実部 u は、最大でも w の絶対値 |w| = (u2 + v2) を超えない。実際、もしも u が |w| より大きかったら u2
  |w|2 = u2 + v2
より大きいはずだが、だとしたら u2 は u2 + v2 よりも――従って自分自身(u2)よりも――大きい。それは不合理(「ある数がそれ自身より大きい」というのは、ばかげている)。 u2|w|2 と等しいこと、すなわち u が |w| と等しいことなら、起こり得る(v = 0 のとき)。

――たかが(?)三角不等式の証明に、以上七つも補助命題を準備するとは、ちょっと予想外。三角不等式は、第一印象「超当たり前」だけど、「意外と微妙」っていうか、第一印象ほど浅くはないようだ。

証明 x, y を任意の複素数とする。三角不等式
  |x + y| ≤ |x| + |y|
を示す代わりに、その両辺(どちらも負でない)を平方した不等式
  |x + y|2 ≤ (|x| + |y|)2
を示そう(第一の不等式が成り立てば、第二の不等式が成り立つことは明白。逆に、第二式が成り立てば第一式も成り立つ。なぜなら絶対値は負ではないので、第一式の右辺は負ではない)。

㋐㋓から:
  |x + y|2 = (x + y)(x + y)* = (x + y)(x* + y*)
   = xx* + xy* + yx* + yy* = |x|2 + xy* + x*y + |y|2

この最後の式に含まれる xy* + x*y は 2 Re (xy*) に等しい。なぜなら (xy*)* = (x*)⋅(y*)* であり(㋔)、それは = x*y なので(㋑)、要するに x*y は xy* の共役。従って、
  xy* + x*y つまり xy* + (xy*)*
は xy* とその共役の和。それは 2 Re (xy*) に等しい(㋕)。ところが
  Re (xy*) ≤ |xy*|
なので(㋖)、結局:
  |x + y|2 = |x|2 + xy* + x*y + |y|2
   = |x|2 + 2 Re (xy*) + |y|2 ≤ |x|2 + 2 |xy*| + |y|2
積の絶対値は絶対値の積であり(㋔の〔付記〕参照)、ある複素数とその共役複素数は絶対値が等しいから(㋒)、上記の右辺について、
   = |x|2 + 2 |x| |y*| + |y|2 = |x|2 + 2 |x| |y| + |y|2
   = (|x| + |y|)2
が成り立つ。これが示されるべきことだった。∎

✿

任意の二つの複素数 x, y について
  |x + y| ≤ |x| + |y|
が成り立つことから、任意の三つ以上の複素数についても、同様の不等式が成り立つ。実際、上記の不等式で x = a, y = b + c と置くと:
  |a + (b + c)| ≤ |a| + |b + c|  (✽)
ところが、再び三角不等式によって
  |b + c| ≤ |b| + |c|
であり、(✽)と組み合わせると:
  |a + b + c| ≤ |a| + |b + c| ≤ |a| + |b| + |c|

同様にして、
  |a + b + c + d| ≤ |a| + |b| + |c| + |d|
等々が示され、より一般的に、任意の n 個の複素数は
  |z1 + z2 + ··· + zn| ≤ |z1| + |z2| + ··· + |zn|
を満たす。あるいは、同じことだが:
  | {k=1 to n} zk | ≤ {k=1 to n} | zk |

これらはいずれも、三角不等式の事例だ(任意の複素数の絶対値に関して、普遍的に成り立つ)。「実数は、複素数の特別な場合(虚部が 0)」と考えることができ、従って、任意の実数(正または 0 または負)も、その絶対値に関して、全く同じ形の不等式に従う。

✿ ✿ ✿


2026-02-19 三角不等式・逆三角不等式(実践バージョン)

#遊びの数論

逆三角不等式は、第一印象、意味が分かりにくい。
  ||x| − |y|| ≤ |x ± y| ≤ |x| + |y|
二つ目の不等号は、通常の三角不等式。一つ目の不等号が、逆三角不等式。二重の絶対値記号が、なにやら「おれさまは複雑で難しいんだぜ」というムードを漂わせている…

真ん中の ± は + でも − でも構わない。どちらでもいいのに(そのことが応用上、重要なのに)、文献では三角不等式のときには + だけが記され、逆三角不等式のときには − だけが記されていることが多い。少々不親切だ!

✿

一般に、
  x = ±a ± b ± c ± d
のような式があるとき(項は何個でもよく、各項の符号は + でも − でもいい)、その式全体の絶対値
  |x| つまり |±a ± b ± c ± d|
は、項ごとの絶対値の和
  |a| + |b| + |c| + |d|
を超えない(証明については後述)。

例えば、 x = 5 − 3 + 10 = 12 の絶対値(12)も、 x = 5 − 3 − 10 = −8 の絶対値(8)も、項ごとの絶対値の和
  |5| + |−3| + |±10| = 5 + 3 + 10 = 18
を超えない。 x = 5 + 3 + 10 = 18 または x = −5 − 3 − 10 = −18 のように、各項の符号が同じ場合に限って(複素数でいえば、各項の偏角が同じ場合に限って)、 x の絶対値は「項ごとの絶対値の和」に等しくなるが、最大でも「等しくなる」だけで、項ごとの絶対値の和を「超える」ことはない。

感覚的には、次のようにイメージすることもできる。

理想の共同作業では、各メンバーのポテンシャルの和が、そのままチーム全体のポテンシャルとなる。しかし、チームの全員が潜在能力をフルに発揮できるようにすることは、なかなか難しい。

チームで作業すれば一人一人では不可能な事業が可能になるけど、当然ながら、一人一人の物理的限界の和を超える労働力は得られない。複数の人がアイデアを出し合えば名案が浮かぶことがあるけど、その場合でも、結局メンバーの誰かがその名案を思い付くわけで、いくら話し合ったところで「どのメンバーにとっても、潜在能力の範囲外のアイデア」は生じ得ない。「チームの潜在能力」の最大値は「メンバーの潜在能力の和」だ。往々にして、チーム内では意見の対立、足の引っ張り合いなどのマイナス要素もあり、実際に最大値が得られることは、まれだろう。

その例えでいくと、三角不等式
  |x + y| ≤ |x| + |y|
の解釈は: x と y が力を合わせれば(x + y)、 x 一人ではできないこと、 y 一人ではできないことが可能になる。けれど最良の場合でも、二人が力を合わせたときのポテンシャルは、 x 個人のポテンシャルと y 個人のポテンシャルの和を超えない。一般には x と y は符号が同じとは限らず(複素数の場合には、偏角が同じとは限らず)、「ベクトルの向き」が違うので、多少の「足の引っ張り合い」が生じ、 |x + y||x| + |y| 以下だよ、と。

「複素数の和の絶対値」(チームのポテンシャル)と「各複素数の絶対値の和」(各メンバーのポテンシャルの和)の大小関係について、前回、2種類の証明を紹介した。その一つを要約しておく。

証明 x = a + bi, y = c + di を任意の複素数として(a, b, c, d: 実数)、
  |x + y| ≤ |x| + |y| すなわち
  [(a + c)2 + (b + d)2] ≤ (a2 + b2) + (c2 + d2)
を示したい。実数の和は実数。実数の平方は 0 以上の実数、その平方根も 0 以上の実数。つまり上記の両辺は 0 以上。よって、左辺・右辺をそれぞれ平方した不等式
  (a + c)2 + (b + d)2 ≤ ((a2 + b2) + (c2 + d2))2  ‥‥⓵
を示せば、同じことになる。

コーシーの不等式
  ac + bd ≤ (a2 + b2)(c2 + d2)  ‥‥⓶
の両辺を 2 倍し、その両辺に a2 + b2 + c2 + d2 を足すと:
  a2 + c2 + 2ac + b2 + d2 + 2bd ≤ (a2 + b2) + (c2 + d2) + 2(a2 + b2)(c2 + d2)
すなわち、⓵(の左辺・右辺をそれぞれ展開したもの)は確かに成り立つ。∎

上記の証明は、それだけ見ると「突然、天下り的にコーシーの不等式を持ち出している」ようだが、証明の舞台裏では、単に⓵(示したい不等式から自然に生じる)を展開して、それがコーシーの不等式(常に成り立つ)と同値になることを観察し、その同値関係の連鎖を逆順に記している。

✿

⓶(コーシーの不等式の一種)自体の証明は次の通り。⓶が成り立つなら、両辺を平方した次の不等式も成り立つ。
  (ac + bd)2 ≤ (a2 + b2)(c2 + d2)  ‥‥⓷
  つまり a2c2 + 2abcd + b2d2 ≤ a2c2 + a2d2 + b2c2 + b2d2
  整理すると 2abcd ≤ (ad)2 + (bc)2  ‥‥⓸

逆に、⓷(あるいは、それを整理した⓸)が成り立つなら、⓶も成り立つ。そのことは ac + bd が――従って⓶の両辺が―― 0 以上なら明白だが、 ac + bd が(つまり⓶の左辺が)負であっても、同じことがいえる。というのも、 a, b, c, d は実数なので、⓶の右辺は 0 以上。よって、もし⓶の左辺が負なら、⓶は「0 以上である右辺は、左辺の負の数以上」という自明な主張。

結局、⓶を証明するには、不等式⓸を証明すればいい。それは簡単。左辺を移項すると⓸は、
  0 ≤ (ad)2 + (bc)2 − 2(ad)(bc) = (ad − bc)2
になるが、この不等式が成り立つことは明白(右端の式は実数の平方なので 0 以上)。∎

✿

「絶対値が最大でどのくらいか」を評価したい対象は、「足し算ばかり」とは限らない。一般には、式にはプラスの項とマイナスの項が交ざっているので、「プラスの項・マイナスの項どちらにも対応できる」ことが、応用上、重要。

三角不等式の標準形は |a + b| ≤ |a| + |b| だが、実は左辺の + を − に変えても、全く同様の不等式
  |a − b| ≤ |a| + |b|
が成り立つ。

三角不等式(実践バージョン)
  |a ± b| ≤ |a| + |b|
項数が三つ以上でも同様:
  |a ± b ± c ± ···| ≤ |a| + |b| + |c| + ···

「足し算でも引き算でも、絶対値の上界(最大値)は同じ」というのは、直観に反するように感じられるかもしれない。しかし「引き算」といっても、もしマイナスの数を引くのなら実質「足し算」だし、「足し算」といっても、もしマイナスの数を足すのなら実質「引き算」。従って、符号が不明の実数を扱うときには、「足し算」と「引き算」の区別は曖昧。一般の複素数はそもそも正でも負でもなく、 −w とは、 w から見て絶対値が同じで偏角が 180° 反対の数に過ぎない。

他方において、実践バージョンの右辺各項は、負でないことが確定している(絶対値なので)。よって右辺では、足し算と引き算の区別は厳然としており、
  |a − b| ≤ |a| + |b|
の代わりに、
  |a − b| ≤ |a| |b| ??
などとしてはいけない。

?? が一般には成り立ち得ないことは明白。というのも、左辺は絶対値なので 0 以上。しかし b の絶対値がでかければ、右辺は負になってしまう!

通常バージョン(標準形)の三角不等式を既知とすれば、実践バージョンの証明は易しい。まず w が任意の複素数(あるいは実数)のとき、
  |−w| = |w|
であることに留意する。実際、任意の w = u + vi について(u, v: 実数)、 −w = −u − vi の絶対値
  [(−u)2 + (−v)2] = [u2 + v2]
は w の絶対値と一致。今、三角不等式の標準形
  |x + y| ≤ |x| + |y|
において x = a, y = −b とすると:
  |a + (−b)| ≤ |a| + |−b|
  つまり |a − b| ≤ |a| + |b|

よって(a + b だけでなく) a − b も、その絶対値は |a| + |b| 以下。同様に x = a ± b, y = c と置くと、 x + y も x − y も(すなわち a ± b + c も a ± b − c も)、その絶対値は、次の不等式を満たす:
  |x| + |y| = |a ± b| + |c| ≤ |a| + |b| + |c|
すなわち a ± b ± c についても(符号の組み合わせは自由)、実践バージョンは正しい。 x = a ± b ± c, y = d 等々と置けば、全く同様にして 4 項以上の場合も証明される。

例題1 2iZ = a − bx + cy であることが分かっているが、複素数 a, b, c, x, y の値は不明。このとき Z の絶対値は最大でいくつか。

 与式の両辺の絶対値を考えると:
  |2iZ| = |a − bx + cy| ≤ |a| + |bx| + |cy|
上記の左辺は 2⋅|Z| に等しいの両辺を 2 で割ると:
  |Z| ≤ (|a| + |bx| + |cy|)/2 ∎

† |2iZ| = |2i||Z| だが(積の絶対値は絶対値の積)、 2i = 0 + 2i の絶対値は、 (02 + 22) = 2。

ある式全体の絶対値を考えるとき、その式の + の項も − の項も、三角不等式による上界(最大値の表現)においては、絶対値の和(+)になる(例題1の −bx の部分参照)。通常バージョンの三角不等式を使って、
  |a − bx + cy| = |a + (−bx) + cy| ≤ |a| + |−bx| + |cy|
として、関係 |−bx| = |bx| を利用しても、同じ結論に。

✿

x, y を任意の複素数(あるいは実数)とする。三角不等式は |x ± y| が取り得る最大値を |x||y| についての式として、表現してくれる。

では |x ± y| が取り得る最小値は何か。それを |x||y| についての式として、表現できるか。この自然な問いに答えてくれるのが、悪名高い(?)逆三角不等式。

逆三角不等式と三角不等式
  ||x| − |y|| ≤ |x ± y| ≤ |x| + |y|

〔注〕 左辺の表記は少々紛らわしいが、 |x| − |y| という「絶対値同士の引き算」全体が、別の(外側の)絶対値記号に囲まれている。つまり |x| − |y| の値を d とするなら |d| に当たる。

二つ目の不等号は、証明済みの三角不等式。問題は一つ目の不等号。まず「外側の絶対値記号」がないバージョン
  |x| − |y| ≤ |x ± y|  ‥‥⓹
を証明するのが、分かりやすい早道だろう。

二つの数 x − y と y に通常の三角不等式を適用すると:
  |(x − y) + y| ≤ |x − y| + |y|
  つまり |x| ≤ |x − y| + |y|
右辺の |y| を移項して:
  |x||y| ≤ |x − y|
⓹の − バージョンが証明された。代わりに二つの数 x + y と −y からスタートすれば(あるいは単に上記の式の y を −y に置き換えれば)、容易に + バージョンを得る。

さて、逆三角不等式では、⓹の左辺に「外側の絶対値記号」が付いている。

⓹の左辺を d = |x||y| としよう。もし d が 0 以上なら |d| = d なので、⓹の左辺全体を囲むように「外側の絶対値記号」を付けても(付けなくても)、⓹の実質的意味に変わりはない。この場合、 d 以上である⓹の右辺は、もちろん |d| 以上だ(あえてややこしく言うなら)。

一方、もし d が負なら、⓹は自明。どんな絶対値であれ絶対値は 0 以上なので、それが「負の数以上」であることは当然で、情報として価値がない。しかし d が負の数の場合にも、⓹の右辺が正の数 |d| = −d 以上であること、すなわち
  |d| = |y| − |x| ≤ |x ± y|  ‥‥⓺
が成り立つことが証明可能で、この不等式には一定の価値がある(少なくとも自明ではない)。

† この場合 d = |x| − |y| は負なので、符号を変えた正の数 −d = |d| は、
  −(|x| − |y|) = |y| − |x|
に等しい。

⓺の証明。任意の数に対して⓹が成り立つことは証明済みなので、
  |d| = |y| − |x| ≤ |y ± x|  ‥‥⓻
も成り立つ(⓹において、単に変数名 x, y を入れ替え)。ところが⓻の右辺は |x ± y| に等しい(複号同順)。なぜなら、
  |y + x| = |x + y|
であり、
  |y − x| = |−(x − y)| = |x − y|
だ(最後の等号は |−w| = |w| による)。従って、⓻と⓺は同じ意味を持ち、⓻が成り立つのだから⓺も成り立つ。∎

‡ そうしたければ、二つの数 y − x と y などからスタートして、最初と同じように直接素朴に証明してもいい。

✿

d つまり |x| − |y| を囲む「外側の絶対値記号」は、 d が 0 以上のときは、あってもなくても同じこと。 d が負の場合には、外側の絶対値記号によって、「自明な不等式」が「非自明な不等式」に昇格する。

「外側の絶対値記号」がないバージョン⓹は、
  |x ± y| は d 以上だ
という含意を持つ。もし d が正なら、その含意には一定の価値があるので、⓹の形が役立つケースもあるだろう。しかしながら、絶対値は必ず 0 以上なので、もし d が負の場合、上記の含意は言うまでもないこと、実質的に無意味な主張になってしまう。そこで、単に「d 以上」と言うだけでなく、「d が負の場合には |d| 以上」という限定を付けるなら、 d が負の場合にも(「絶対値は必ず 0 以上」という自明な主張よりは)強い主張となる。

d が負かどうかで場合分けするのを避けるには、 d の符号と無関係に、常に d に絶対値記号を付けておけばいい。それが、逆三角不等式の「外側の絶対値記号」。分かりやすいかはともかく、コンパクトな表記ではある。

例題2 3 以上のどんな整数 n を選択しても、 t = i は、 t についての n−1 次方程式
  (t + 1)n − tn − 1 = 0
の解にならないことを示したい。

これはコーシー・ミリマノフ多項式と呼ばれるものの一種。例えば n = 11 のとき、
  (t + 1)11 − t11 − 1 = t(t + 1)(t2 + t + 1)(t6 + 3t5 + 7t4 + 9t3 + 7t2 + 3t + 1) = 0
がどんな複素数解を持ち得るのか(持ち得ないのか)、必ずしも明らかではない。 n が大きくなれば、ますます話は複雑になるかも…。この例題では、 i が解になり得ないことを示す。他の解法もあるけど、ここでは逆三角不等式を使ってみたい。

 もしも t = i が解になったとしたら、
  (i + 1)n − in − 1 = 0  ‥‥⓼
が成り立ち、そのとき⓼左辺の絶対値は = 0 になる。裏を返せば、⓼左辺の絶対値が決して 0 にならないことを示せば(つまり、絶対値が最小でも 0 より大きいことを示せば)、目的が達成される。この観点からは、
  |(i + 1)n − in − 1| = |(i + 1)n − (in + 1)|
の最小値が問題の核心だ。

x = (i + 1)n, y = in + 1 と見て、逆三角不等式を使うと:
  |(i + 1)n − (in + 1)| ≥ ||(i + 1)n| − |in + 1||  ‥‥⓽

この右辺の、(「外側の絶対値記号」内で引き算されている)二つの絶対値について:

第一に、 |(i + 1)n| = |i + 1|n = (2)n であ仮定により n ≥ 3 なので、この絶対値は最小でも (2)3 = 22 だ。

第二に、三角不等式から、
  |in + 1| ≤ |in| + |1| = |i|n + 1 = 1n + 1 = 2
であり、この絶対値は、最大でも 2 を超えない。

つまり、⓽右辺の「外側の絶対値記号」内では、「最小でも 22 以上の値」から、「最大でも 2 以下の値」が、引き算されている。結果は明らかに正なので、これは「外側の絶対値記号」がなくてもいいケース(⓹)に当たり、⓽から、
  |(i + 1)n − (in + 1)| ≥ |(i + 1)n| − |in + 1| ≥ 22 − 2 > 0
が成り立つ。すなわち、⓼左辺の絶対値は決して 0 にならず、⓼が成り立つ可能性はない。∎

† 一つ目の等号について。「積の絶対値は絶対値の積」という性質を繰り返し使うと、
  |w2| = |w⋅w| = |w||w| = |w|2
  |w3| = |w2⋅w| = |w2||w| = |w|2|w| = |w|3
等々となって、一般に |wk| = |w|k が成り立つ(k: 正の整数)。二つ目の等号について。 i + 1 = 1 + 1i の絶対値は (12 + 12)

‡  i = 0 + 1i の絶対値は (02 + 12) = 1。

〔参考文献〕 Abramowitz & Stegun: Handbook of Mathematical Functions, 3.7.29

✿ ✿ ✿ ✿ ✿

遊びの数論56』へ続く。

<メールアドレス>