柯西不等式与排序不等式
老教材「不等式选讲」里有两条不必画图象的不等式。一条管住内积:两列数逐位相乘再求和,所得的平方压不过两列各自平方和之积。另一条管住配对方式:两列数配对相乘再求和,同序配对给出最大值,反序配对给出最小值。它们与本系列前几页的路数不同,既不求分界点也不读区间,用到的全部工具是「平方非负」与「交换两项」。
1 · 内积与模长之积
柯西不等式(Cauchy–Schwarz inequality)比较的是两个数量:两列数的内积的平方,与两列数各自平方和之积。
定理 1.1 对任意实数 与 ,
等号成立当且仅当两列数成比例:存在实数 使 对每个 成立,或者 全为零。
两侧之差有闭式,称拉格朗日恒等式(Lagrange's identity):
右端是若干平方之和,非负,定理由此成立;它为零当且仅当每个二阶行列式 都为零,也就是两列数成比例。这条恒等式把定理与取等条件一并给出,代价是要先把它写对——右端的求和跑遍全部下标对,共 项。以下两节各给一条不必先知道这条恒等式的证明。
2 · 判别式给出的证明
把两列数搭成一个关于实变量 的函数:
证明 是若干实数的平方之和,对每个实数 都满足 。设 (否则 全为零,原不等式两侧同为零)。此时 是开口向上的二次函数且没有取到负值,抛物线至多与 轴相切,判别式非正:
两端除以 并移项即得定理 1.1。等号成立要求 ,即存在 使 ;平方和为零迫使每一项为零, 对每个 成立,两列数成比例。∎
判别式在本节的用法与解一元二次不等式时相反:那页用 数抛物线与 x 轴的交点个数,此处用它断言抛物线穿不过 轴。两种用法背后是同一个量。抛物线的顶点值 也有几何含义,见 §3。
浮点下这条判别式并不可靠。取
(三个分量在
到
之间随机、
在
到
之间随机),共线在数学上是精确的,
应当恰为零;实测一百万组里只有 335231 组的
双精度下真的等于零,331932 组为正、332837 组为负,正的一侧最大到
。判别式为正意味着
有两个不同实根,也就是某处的平方和为负。core/cauchy.ts 判「是否取等」因而不看这个量,改看拉格朗日恒等式的右端:它是平方和,浮点下也永不为负,同一批数据里它有 69.9% 不为零,但相对于
最大只有
,按相对阈值判共线在二十万组里零漏判。
3 · 余弦的绝对值与取等条件
取 或 时,两列数就是平面或空间里的两个向量 与 。内积另有一个与坐标无关的表达式:
其中 是两向量的夹角。两边取绝对值, 立刻给出 ,平方后就是定理 1.1。柯西不等式在向量语言里只剩一句话:余弦的绝对值不超过 。取等即 ,即两向量共线;三维以上没有直观的角,但比例关系这个条件照旧。
这条路是否循环论证,取决于 从哪里来。在平面与空间里余弦定理独立于内积成立, 是余弦定理的改写,论证不循环。到了一般的 维空间,情形恰恰反过来:那里的「夹角」根本是被定义出来的,定义 之所以合法,靠的就是柯西不等式保证这个比值落在 与 之间。§2 的判别式法不依赖任何几何,在这个意义上比向量法更基本。
抛物线的顶点值在向量语言里另有一个说法。 是向量 的长度平方,最小值在 到 所在直线的垂足处取到,等于该距离的平方。共线时距离为零,顶点落在 轴上,这与 §2 的相切说的是同一件事。
4 · 三角不等式与柯西的关系
向量和的长度不超过两段长度之和,即 。把两边平方相减:
右端非负这件事,就是柯西不等式。三角不等式在 维、乃至把平方换成 次幂之后仍然成立,一般形式称闵可夫斯基不等式(Minkowski inequality), 的情形即上式。
取等条件比柯西严一档。柯西取等只要求 ,共线即可,方向相反也算;三角不等式取等要求 ,去掉了绝对值,两向量必须同向。 与 共线而反向:柯西两侧同为 ,取到等号;三角不等式左端为 、右端为 ,间隙达到最大。
5 · 顺序和与逆序和
设两列实数都已按升序排好: 与 。把 重排后与 逐位相乘再求和,得到的值随重排方式变化。排序不等式(rearrangement inequality)给出这族值的两端。
定理 5.1 对下标的任一排列 ,
左端称逆序和,右端称顺序和,中间称乱序和。
证明 设 不是恒等排列,则存在一对下标 使 ,于是 而 。把 在这两个位置上的取值互换,配对和的增量是
两个因子同为非正,乘积非负,故这次互换不减小配对和。互换消掉了这一对逆序,逆序对总数严格下降,至多 步后到达恒等排列,其间配对和从未减少,所以顺序和是最大值。把两处不等号方向反过来,同样的论证给出逆序和是最小值。∎
这套「假设最优解与目标解不同,找出一处分歧,做一次局部交换,证明交换后不变差」的模式叫交换论证(exchange argument),它是贪心算法正确性证明的通用骨架:区间调度、最小生成树、哈夫曼编码的正确性都按这个模板写。排序不等式是它在纯数学里最短的一个实例,交换的对象只是两个下标。
交换论证担保的只是「每消掉一个逆序对,配对和不减」,它并不担保「逆序对更少的配对,和一定更大」。把
与
的全部 40320 个配对枚举一遍,按逆序对个数分成 29 档:各档和值的最大值确实随逆序对数单调不增,从 455 一路降到 238;但相邻两档的取值区间在 28 对里有 26 对重叠,逆序对数为
的一档取到过 452,而逆序对数为
的一档最低只有 451。40320 个和里互不相同的只有 218 个,两端各只由唯一一个排列取到。这轮枚举在 node v26 上耗时 15 ms,
增到
就是 215 ms,core/cauchy.ts 的 permutations 只用于
的核对,页面里的直方图最多画到
。
6 · 切比雪夫和不等式
两列数同序时,逐位乘积的和与两列各自的和之间也有比较。
这条称切比雪夫和不等式(Chebyshev's sum inequality)。证明只需把右端拆开: 等于 个循环移位配对和之和,第 个是 (下标按模 取),每一个都是乱序和,都不超过顺序和 , 项相加即得。两列反序时每个循环移位和都不小于逆序和,不等号翻转。
两边除以 换一种读法:乘积的平均不小于平均的乘积。前提是两列同序,这一条不能省——反序时结论整个反过来,而两列毫无单调关系时两侧的大小不定。
同一条恒等式在 §5 的枚举里露过面:40320 个配对和的平均值恰为 346.5,等于
。core/cauchy.test.ts 用这两条互相独立的路径互为参照量,一条走循环移位,一条走全排列的平均。
7 · 平均值不等式链
对正数 ,四个平均排成一条链:
依次是调和平均(harmonic mean)、几何平均、算术平均与二次平均(quadratic mean,也叫均方根)。基本不等式:算术平均与几何平均 只处理了 时中间那一段。
链条的两端由柯西不等式直接给出。取 ,定理 1.1 成为 ,除以 开方即算术平均不超过二次平均。取 与 ,定理 1.1 成为 ,整理即调和平均不超过算术平均。中间那一段涉及几何平均,柯西不等式给不出,需要 元的算术几何平均不等式。
四个平均都是幂平均
在
处的取值,其中
取的是极限,等于几何平均。幂平均关于
单调不减,这条更强的命题把整条链收成一句话,也是 core/cauchy.test.ts 里检验四个平均的参照量:四个定义式各算各的,再与通用的
逐一对照。
8 · 参考文献
- Cauchy–Schwarz inequality. Wikipedia. 不等式的多种证明、取等条件与在各类内积空间中的推广。https://en.wikipedia.org/wiki/Cauchy%E2%80%93Schwarz_inequality
- Lagrange's identity. Wikipedia. 两侧之差的闭式与它同叉积的关系。https://en.wikipedia.org/wiki/Lagrange%27s_identity
- Rearrangement inequality. Wikipedia. 顺序和与逆序和的界,以及交换论证的标准写法。https://en.wikipedia.org/wiki/Rearrangement_inequality
- Chebyshev's sum inequality. Wikipedia. 同序两列的和与积的比较,循环移位证明。https://en.wikipedia.org/wiki/Chebyshev%27s_sum_inequality
- Minkowski inequality. Wikipedia. 三角不等式在 次幂下的一般形式。https://en.wikipedia.org/wiki/Minkowski_inequality
- Power mean inequality. Wikipedia. 幂平均关于指数的单调性,四个平均只是其中四点。https://en.wikipedia.org/wiki/Power_mean_inequality