遊びの数論56

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

遊びの数論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種類の
  [(ab − ab)(xy − xy)]
を展開した
   = ab⋅xy − ab⋅xy − ab⋅xyab⋅xy
のうち、第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)、
  (ab − ab)(xy − xy)  ‥‥①
の形の積の和として、簡潔に表現される(ここで「小」は 1 以上「大」未満。「大」は「小」より大きく n 以下)。なぜなら j ≠ k のとき、
  +ajbkxjyk は +abxy または +abxy
であり、
  −ajbkxkyj は −abxy または −abxy
だ。実際 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

✿ ✿ ✿


<メールアドレス>