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

![]()
2026-02-23 コーシーの不等式とコーシー゠シュワルツ不等式
コーシーは、よりにもよって、1789年8月にパリで生まれた(バスティーユ襲撃の翌月)。革命・暴動のさなかでも、赤ちゃんは生まれ、成長する――生命のたくましさ。でも、現実問題、パンがなくて大変だったという。
三角不等式と関連して、コーシーの不等式
(a1b1 + a2b2 + ··· + anbn)2 ≤ [(a1)2 + (a2)2 + ··· + (an)2] [(b1)2 + (b2)2 + ··· + (bn)2]
を導入した(a1, ···, an, b1, ···, bn は任意の実数)。しかしこの不等式、それだけ提示されると、どうも平板というか、中途半端な感じがする。大きな「森」の一部なのに「一本の木」を眺めるような感じ。
もう少し奥行きのある「コーシー゠シュワルツ不等式」の一部として、コーシーの不等式を再検討してみたい。
![]()
n 項から成る実数の数列が 2 種類あるとする:
第一の数列 a1, a2, ···, an
第二の数列 b1, b2, ···, bn
このとき、同じ番号の項同士の積を足したもの
a1b1 + a2b2 + ··· + anbn
は、あまり大きくなれないよ、というのがコーシーの不等式。具体的には、次の積を超えられない:
≤ √[(a1)2 + (a2)2 + ··· + (an)2]⋅√[(b1)2 + (b2)2 + ··· + (bn)2]
両辺を平方して、
(a1b1 + ··· + anbn)2 ≤ ((a1)2 + ··· + (an)2)⋅((b1)2 + ··· + (bn)2) ㋐
のように書いてもいい(簡潔化のため 2 番の項を省いた)。標語的に言えば「積の和の平方は、平方和の積を超えない」。
感覚的には、三角不等式の「チームプレーでは、個人のポテンシャルが100%発揮されにくい」というのと似ている。つまり、平方するなら、個々に平方(個人プレー)してから足した方がポテンシャルが大きく、先に足してから(チームプレー)平方すると、多かれ少なかれ、チーム内で「足の引っ張り合い」が生じる。実数の平方は絶対値の平方なので、似てるのは当たり前かも…
平方してないバージョンも有用で、特に n = 2 の場合の
a1b1 + a2b2 ≤ √[(a1)2 + (a2)2]⋅√[(b1)2 + (b2)2]
は、三角不等式の手っ取り早い証明を与えてくる――あるいは、同じことだが、変数名を簡略化して:
ac + bd ≤ √(a2 + b2)⋅√(c2 + d2)
コーシーの不等式の証明は難しくないけれど、以下ではそれ単体を証明するのではなく、違う角度から考えてみたい。
![]()
仮にコーシーの不等式が証明済みとして、そこから何が言えるか、あるいはどんな拡張が可能か? コーシーの不等式の明らかな制約は、話が実数限定ということだ。とはいえ、不等式は大小の比較なので a1, ··· , an, b1, ··· , bn そのものを複素数にするわけにはいかない。やるとしたら、各複素数の絶対値(それは 0 以上の実数で、大小の比較が可能)を考える必要がある。
今、任意の複素数 w1, ··· , wn が与えられ、それぞれ絶対値が a1, ··· , an だとしよう。
|w1| = a1, |w2| = a2 のように。同様に、複素数 z1, ··· , zn の絶対値を b1, ··· , bn としよう。このような絶対値たちも実数には違いないので、当然㋐を満たす。「複素数の絶対値」というスタイルで㋐を書くと:
(|w1|⋅|z1| + ··· + |wn|⋅|zn|)2 ≤ (|w1|2 + ··· + |wn|2)⋅(|z1|2 + ··· + |zn|2)
「絶対値の積は積の絶対値」なので、左辺を次のように短く書くことができる:
(|w1z1| + ··· + |wnzn|)2 ≤ (|w1|2 + ··· + |wn|2)⋅(|z1|2 + ··· + |zn|2) ㋑
さて、三角不等式から
|w1z1 + ··· + wnzn| ≤ |w1z1| + ··· + |wnzn|
が成り立つ。両辺を平方して:
| w1z1 + ··· + wnzn |2 ≤ (|w1z1| + ··· + |wnzn|)2
これを㋑と組み合わせて、
| w1z1 + ··· + wnzn |2 ≤ (|w1|2 + ··· + |wn|2)⋅(|z1|2 + ··· + |zn|2) ㋒
を得る。
㋒は、コーシー゠シュワルツ(Cauchy–Schwarz: コシ゠シュヴァーツ)不等式と呼ばれるものの一種で、実数限定のコーシーの不等式を、一応、複素数の世界に拡張している。といっても、㋐に含まれる ( )2 を全部 | |2 に置き換えただけ。逆に、もし複素数についての不等式㋒が証明されているなら、コーシーの不等式㋐は、その特別な場合として簡単に導出される――そのためには、単に
r が実数なら |r|2 = r2 ㋓
ということを示せばいい。実際、 w たち z たちが全部実数なら、㋓によって㋒の右辺は㋐の右辺に一致するし、そのとき w1z1 + ··· + wnzn も実数なので、㋓によって㋒の左辺は㋐の左辺に一致する。㋓が成り立つことは、直観的には当たり前。 r が 0 以上なら |r| = r だし、 r が負(−r が正)なら |r| = −r なので、いずれにしても
|r| = ±r
であり、その両辺を平方すれば、
|r|2 = (±r)2 = r2
だ。
この「当たり前」のことを一応、第一原理から導出しておく。任意の複素数 t = r + si について(r, s: 実数)、複素数の絶対値の定義から:
|t| = √(r2 + s2) 両辺を平方して
|t|2 = r2 + s2 ㋔
実数は「虚部が 0 の複素数」と解釈可能。もし虚部 s が = 0 なら t = r + 0i = r であり、㋔はこうなる:
|r|2 = r2 + 02 = r2 ∎
コーシーの不等式と㋒がほとんど同値であることが分かった。この観点からすると、コーシーの不等式を使わずに、別経路から㋒を証明したい。それができれば、コーシーの不等式は㋒の特別な場合として、自動的に証明されるであろう。
![]()
ここで「ビネの恒等式」を導入する。複素数の数列(いずれも n 項)が、4種類あるとしよう:
甲 a1, a2, ···, an
乙 b1, b2, ···, bn
丙 x1, x2, ···, xn
丁 y1, y2, ···, yn
次の2種類の式は、それぞれ二つの(n 項の)因子から成る。各因子は、甲(または乙)と丙(または丁)の「積の和」。
P: (a1x1 + a2x2 + ··· + anxn)(b1y1 + b2y2 + ··· + bnyn)
Q: (a1y1 + a2y2 + ··· + anyn)(b1x1 + b2x2 + ··· + bnxn)
P, Q は巨視的には同じ構造を持つが、両者を細かく比較すると、何が同じで何が異なるか。試しに n = 3 のケースを考えてみる:
P = (a1x1 + a2x2 + a3x3)(b1y1 + b2y2 + b3y3) を展開すると、
ajxj⋅bkyk
の形の 9 項が生じる(j, k はそれぞれ 1, 2, 3 のどれかで、 3 × 3 通りの組み合わせが、総当たり的に 1 回ずつ)。
同様に、 Q = (a1y1 + a2y2 + a3y3)(b1x1 + b2x2 + b3x3) を展開すると、
ajyj⋅bkxk
の形の 9 項が生じる。
P と Q の各 9 項を(積の順序を無視して)比較すると、どちらも
a1b1x1y1, a2b2x2y2, a3b3x3y3
の 3 項を含むが(j = k のケース)、それ以外の各 6 項は一致しない。 P には
ajbkxjyk の形の 6 項(j ≠ k) 【jkjk】
が含まれるが Q にはそれらがないし、 Q には
ajbkxkyj の形の 6 項(j ≠ k) 【jkkj】
が含まれるが P にはそれらがない。
〔注〕 変数名 a, b, x, y は重要ではない。それら四つの変数に付いている添え字に注目すると、一方は (j, k, j, k) で他方は (j, k, k, j) だ。
Q を加工して P を作るとしたら、 Q に【jkjk】の 6 項(P にはあるが Q には不足している)を足して、さらに【jkkj】の 6 項(Q にはあるが P には不要)を引けばいい。次のように、【jkjk】の 6 項を二つの種類に分けることができる:
j が k より小 a1b2⋅x1y2, a1b3⋅x1y3, a2b3⋅x2y3 【ア】
j が k より大 a2b1⋅x2y1, a3b1⋅x3y1, a3b2⋅x3y2 【イ】
同様に【jkkj】の 6 項は:
j が k より小 a1b2⋅x2y1, a1b3⋅x3y1, a2b3⋅x3y2 【ウ】
j が k より大 a2b1⋅x1y2, a3b1⋅x1y3, a3b2⋅x2y3 【エ】
そして P = Q + 【jkjk】 − 【jkkj】 の 【jkjk】 − 【jkkj】の部分を
R = [(a1b2 − a2b1)(x1y2 − x2y1)]
+ [(a1b3 − a3b1)(x1y3 − x3y1)]
+ [(a2b3 − a3b2)(x2y3 − x3y2)]
と書くことができる。なぜなら R 右辺の3種類の
[(a小b大 − a大b小)(x小y大 − x大y小)]
を展開した
= a小b大⋅x小y大 − a小b大⋅x大y小 − a大b小⋅x小y大 + a大b小⋅x大y小
のうち、第1項・第4項によって、それぞれ【ア】と【イ】(の足し算)は網羅され、第2項・第3項によって、それぞれ【ウ】と【エ】(の引き算)は網羅される。つまり、トータルでは【jkjk】 − 【jkkj】と同じこと。要するに P = Q + R だ!
簡潔化のため(そして一般化を容易にするため)、 P = (a1x1 + a2x2 + a3x3)(b1y1 + b2y2 + b3y3) を総和記号で書くと:
P = (∑{j=1 to 3} ajxj) (∑{j=1 to 3} bjyj)
同様に Q = (a1y1 + a2y2 + a3y3)(b1x1 + b2x2 + b3x3) は、
Q = (∑{j=1 to 3} ajyj) (∑{j=1 to 3} bjxj)
となる。
R = [(a1b2 − a2b1)(x1y2 − x2y1)]
+ [(a1b3 − a3b1)(x1y3 − x3y1)]
+ [(a2b3 − a3b2)(x2y3 − x3y2)]
を総和記号で書く方法は少しトリッキーだが、三つの [ ] 内は
(ajbk − akbj)(xjyk − xkyj)
の形で、 j = 1 or 2 であること、そして k は j より大きいこと(ただし 3 以下)から、こう表現できる:
∑{j=1 to 2} ∑{k=j+1 to 3} (ajbk − akbj)(xjyk − xkyj) ★
しかし、こう書いた方がシンプルで分かりやすい:
∑{for 1≤j<k≤3} (ajbk − akbj)(xjyk − xkyj)
この場合、 ∑ の下の条件によると j は1 以上、 3 以下の数 k 未満なので、 j = 1 or 2 であり、 k は j より大きく 3 以下なので、全体として ★ と全く同じ意味。 2 種類のインデックス j, k の範囲を一つの不等式にまとめることで、二重の総和記号と同じ内容を一つの ∑ で表記した。
要するに、 P = Q + R を総和記号で書くと、こうなる:
(∑{j=1 to 3} ajxj) (∑{j=1 to 3} bjyj) = (∑{j=1 to 3} ajyj) (∑{j=1 to 3} bjxj) + ∑{for 1≤j<k≤3} (ajbk − akbj)(xjyk − xkyj)
![]()
上記では P, Q のインデックス j, k を 1, 2, 3 に固定したが、項数がいくつあっても全く同様。インデックスが 1 から n までとすると、 P と Q から生じる
ajbkxjyk ないし ajbkxkyj
の形の各項は、 j = k の場合だけ P, Q に共有され、 j ≠ k の場合には共有されない。共有されない項のうち、 P にあって Q にないものに + を付け Q にあって P にないものに − を付けて、それら全体を R とすると P = Q + R が成り立つ。 R の各項、つまり
+ajbkxjyk ないし −ajbkxkyj
は(j ≠ k)、
(a小b大 − a大b小)(x小y大 − x大y小) ‥‥①
の形の積の和として、簡潔に表現される(ここで「小」は 1 以上「大」未満。「大」は「小」より大きく n 以下)。なぜなら j ≠ k のとき、
+ajbkxjyk は +a小b大x小y大 または +a大b小x大y小
であり、
−ajbkxkyj は −a小b大x大y小 または −a大b小x小y大
だ。実際 j ≠ k ってことは j が「小」で k が「大」か、あるいは j が「大」で k が「小」かのどっちか。上記の「または」は、この「あるいは」に当たる。そして①を展開すれば、これらの各項が過不足なく生じる。
結局、 n = 3 の場合の上記の式は、単に 3 を n に置き換えるだけで一般化され、こうなる:
ビネの恒等式(Jacques Binet, 1812) — cf. TAOCP I, §1.2.3, Ex. 30
(∑{j=1 to n} ajxj) (∑{j=1 to n} bjyj) = (∑{j=1 to n} ajyj) (∑{j=1 to n} bjxj) + ∑{for 1≤j<k≤n} (ajbk − akbj)(xjyk − xkyj)
これが成り立つことは上記の観察により一応確認済みだが、証明の形で再整理しておく。
証明 j, k はどちらも区間 [1, n] を動くものとし、表記の簡潔化のため範囲指定を省く。与式の左辺は
(∑{for j ajxj) (∑{for k bkyk) = ∑{for j,k} ajbkxjyk ‥‥②
に等しい。与式の右辺第1項は
∑{for j,k} ajbkxkyj
に等しく、第2項は
∑{for j<k} [(ajbkxjyk + akbjxkyj) − (ajbkxkyj + akbjxjyk)] = ∑{for j≠k} ajbkxjyk − ∑{for j≠k} ajbkxkyj
に等しいので、与式の右辺は次の値を持つ:
∑{for j,k} ajbkxkyj − ∑{for j≠k} ajbkxkyj + ∑{for j≠k} ajbkxjyk
= ∑{for j=k} ajbkxkyj + ∑{for j≠k} ajbkxjyk ‥‥③
j = k のとき ajbkxkyj = ajbkxjyk なので、③は②に等しい。∎
③の等号の根拠。③の左辺第1項・第2項の総和は、どちらも ajbkxkyj の形の項の和。前者では j, k は任意で、範囲内の可能な組み合わせが総当たり的に生じる。後者では、そのうち j ≠ k の項だけを扱う。前者から後者が引き算(除去)されるのだから、結果として、範囲内の可能な組み合わせのうち j ≠ k 以外の(要するに j = k の)ものだけが残る。従って、③の右辺の最初の総和では j と k は等しい値を取りつつ変化する。よってこの部分に関する限り、 ajbkxkyj を例えば ajbjxjyj と書いてもよく、 ajbkxjyk と書いてもよい。
![]()
ビネの恒等式
(∑ ajxj)(∑ bjyj) = (∑ ajyj)(∑ bjxj) + ∑ (ajbk − akbj)(xjyk − xkyj)
において各 aj を任意の複素数、対応する xj を aj の共役複素数 (aj)* とすると、
∑ ajxj = ∑ aj(aj)* = ∑ | aj |2
であり、同様に各 bj を任意の複素数、対応する yj をその共役とすると、
∑ bjyj = ∑ bj(bj)* = ∑ | bj |2
だ。ゆえに、このとき恒等式の左辺は次の値を持つ:
(∑ | aj |2) (∑ | bj |2) 【左】
上記と同じ仮定において、 ajyj = aj(bj)* と bjxj = xjbj = (aj)*bj も共役。すなわち、
∑ ajyj = ∑ aj(bj)* と ∑ bjxj = ∑ (aj(bj)*)*
は互いに共役。ゆえに、恒等式の右辺第1項は、次の値を持つ:
{∑ aj(bj)*} {∑ aj(bj)*}* = | ∑ aj(bj)* |2 【右1】
ajbk − akbj と xjyk − xkyj = (aj)*(bk)* − (ak)*(bj)* も互いに共役なので、恒等式の右辺第2項は、次の値を持つ:
∑ (ajbk − akbj)(ajbk − akbj)* = ∑ | ajbk − akbj |2 【右2】
【左】は【右1】と【右2】の和だが、これら三つの要素はいずれも 0 以上の実数。
【左】 = 【右1】 + (0 以上の実数)
ということから、【左】は【右1】に等しいか、または【右1】より大きい:
(∑ | aj |2) (∑ | bj |2) ≥ | ∑ aj(bj)* |2
bj の絶対値と (bj)* の絶対値は等しいので、左辺をこう書き換えても、値は変わらない:
(∑ | aj |2) (∑ | (bj)* |2) ≥ | ∑ aj(bj)* |2
論理的には必要ないが、式をすっきりさせるため (bj)* をあらためて bj と呼ぶことにすると:
(∑ | aj |2) (∑ | bj |2) ≥ | ∑ ajbj |2 ‥‥④
具体例。総和が 2 項の場合(n = 2)、④は次の形になる。
(|A|2 + |B|2)(|X|2 + |Y|2) ≥ |AX + BY|2
この不等式が正しいことは、次のように、直接確かめられる。すなわち、
(|AY| − |BX|)2 ≥ 0 つまり
|AY|2 + |BX|2 ≥ 2 |AY⋅BX| = 2 |AX⋅BY|
は明白。その両辺に |AX|2 + |BY|2 を足して、
(|A|2 + |B|2)(|X|2 + |Y|2) ≥ (|AX| + |BY|)2 ≥ |AX + BY|2
を得る。最後の不等号は、三角不等式 |AX| + |BY| ≥ |AX + BY| による(その両辺を平方)。
![]()
∑ の範囲を明示すると、④はこうなる。
ビネの恒等式から派生する命題
任意の複素数 a1, ···, an, b1, ···, bn は、次の関係を満たす(いわゆる Cauchy–Schwarz 不等式)。
( ∑{j=1 to n} | aj |2 ) ( ∑{j=1 to n} | bj |2 ) ≥ | ∑{j=1 to n} aj bj |2
特に、各 aj, bj が実数の場合には、こうなる(Cauchy の不等式):
( ∑{j=1 to n} ( aj )2 ) ( ∑{j=1 to n} ( bj )2 ) ≥ ( ∑{j=1 to n} aj bj )2
コーシーの不等式に関する限り、なかなか眺めの良い展望台だ! つまり、コーシーの不等式とは、複素数版「コーシー゠シュワルツ」において、変数を実数に限定し、絶対値記号を外したものに当たる。のみならず、ビネの恒等式から「コーシー゠シュワルツ」を導出すると、「積和の平方は、平方和の積を超えられない」という一般論だけで終わらず、個々のケースにおいて「積和の平方は、平方和の積に比べ、どのくらい小さいか」が、自然に明示される(【右2】。ただし (bj)* を bj と改名したので、【右2】の bj を (bj)* に読み替える必要がある)。
複素数バージョンは、より広い意味での「コーシー゠シュワルツ」の一例に過ぎないし、ビネの恒等式は、行列に関するある種の公式の特別な場合に過ぎない。依然として、中途半端といえば中途半端…。論理的には、
ビネの恒等式 ⇒ 「コーシー゠シュワルツ」 ⇒ コーシーの不等式
なので「コーシー゠シュワルツ」は「コーシーの不等式」の上位バージョンといえる。最初に記したように、
コーシーの不等式と三角不等式 ⇒ 「コーシー゠シュワルツ」
でもあるから、三角不等式を前提とするなら、コーシーの不等式と「コーシー゠シュワルツ」(複素数バージョン)は同値、ということになる。
![]()
Schwarz と片仮名表記しようとすると「シュワルツ、シュヴァルツ、シュヴァーツ」のような表記の揺れが生じ得る。ドイツ語系の名前 Schwarz 自体にも表記の揺れがある――「t のない Schwarz」(ドイツ語の普通名詞では「黒」という意味)と「t のある Schwartz」の、どちらも一般的な名字だろう。 Cauchy–Schwarz 不等式として名を残す Hermann Schwarz (1843–1921) は、「黒」の Schwarz で t がない。ドイツの数学者とされるが、正確に言うと、現在のポーランドに当たる場所(ポーランド・チェコ・ドイツ三国の境界近く†)で生まれたのだという。
† https://mathshistory.st-andrews.ac.uk/Map/#Sobieszow
![]()