一个“神来之笔”的换元?
问题:若实数 \(x,y\) 满足 \(x^2+4y^2-2xy=36\),求 \(x^2+3y^2-xy\) 的取值范围。
这个问题比较平凡,使用拉格朗日乘数法可以很机械地解决它。
拉格朗日乘数法
记 \(f(x,y)=x^2+4y^2-2xy-36,g(x,y)=x^2+3y^2-xy\), 我们要求 \(\nabla g\) 是 \(\{\nabla f\}\) 的张成空间的元素,在二元的情况下,即
这样,我们可以省略乘数带来的未知数,联立 \(f=0\),得到:
这个方程有四组解,分别是
分别带入 \(g\) 中,得到最小值和最大值分别为 \(36-6 \sqrt3\) 与 \(36+6\sqrt3\)。
但是,可以发现,这个问题使用拉格朗日乘数法涉及到复杂的计算,不借助计算机求解这种非退化的二元二次方程十分痛苦。
我偶然得到了一种更加有趣的做法,它(看似)可以在高中数学的框架下解决这个问题:首先令 \(u=x-y,v=\sqrt3y\),于是
代入 \(x^2+4y^2-2xy=36\),即
化简得到 \(u^2+v^2=36\),于是进一步换元,则
代回所求 \(x^2+3y^2-xy\),得到 \(u^2+v^2+\frac1{\sqrt3}uv\),进一步可得 \(36+12\sqrt3\sin\theta\cos\theta\),考虑到 \(\sin2\theta=2\sin\theta\cos\theta\),故最终可得,所求式子由
给出。显然这个式子的取值范围为 \([36-6\sqrt3,36+6\sqrt3]\)。
这个做法中大部分都是十分平凡的,最后的化简看似取巧,其实即使不能简单化为单个 \(\sin2\theta\),也可以对式子关于 \(\theta\) 求导来分析其最值。这个做法最引人注意的是开头那看似“神来之笔”的换元“令 \(u=x-y,v=\sqrt3y\)”,这是如何得到的?
二次型
上面做法的第一次换元的目的,是将 \(xy\) 项消除,并留下系数相同的 \(x^2\) 项和 \(y^2\) 项,以方便进一步换元。
其中的奥妙在于,从几何上来看,原式 \(x^2+4y^2-2xy=36\) 可以看做一个椭圆,而换元的过程,就是将这个椭圆在一个线性变换后,变为一个正圆 \(x^2+y^2=36\)。
我们使用二次型来刻画这一点,记向量 \(\mathbf{v}=[x\quad y]\)(注意粗体的字母表示向量,和上文的斜体表示的值不一样),则
其中矩阵 \(A\) 为
那么,所谓换元,就是记向量 \(\mathbf{u}=[u\quad v]\),满足 \(\mathbf{u}=P\mathbf{v}\),其中可逆矩阵 \(P\) 就是换元的系数。于是
其中矩阵 \(B=\left(P^{-1}\right)^{\mathsf{T}}AP^{-1}\)。我们希望换元后变成正圆,相当于要求 \(B\) 为单位矩阵的倍数,不妨认为 \(B=\mathrm{I}\)(对于是 \(\mathrm{I}\) 的 \(k\) 倍数的情况,只需将换元矩阵除以 \(\sqrt{k}\) 即可),于是相当于有
只需求出一个满足条件的 \(P\) 即可,在上面的例子中,有
可以发现,确实有
对称矩阵分解与普定理
我们现在把问题转化为了,对于给定的对称矩阵 \(A\), 我们希望找到一个矩阵 $ P $,使得
注:考虑到对称性,\(PP^{\mathsf{T}}\) 和 \(P^{\mathsf{T}}P\) 是一样的,这里采取前一种是为了与大多数线性代数书中的习惯做法保持一致。
首先,我们将矩阵 \(A\) 进行特征值分解:由于 \(A\) 是对称矩阵,我们可以利用对称矩阵的特征值分解:
其中:
- \(Q\) 是一个正交矩阵(即 \(Q^T Q = \mathrm{I}\)),它的列是 \(A\) 的单位特征向量。
- \(\Lambda\) 是一个对角矩阵,包含了 \(A\) 的特征值。
由于 \(Q^T Q = \mathrm{I}\),上式也即
我们所求的矩阵 \(P\) 即满足
我们可以考虑 \(P\) 的形式为
其中 \(\sqrt{\Lambda}\) 是通过对角矩阵 \(\Lambda\) 的每个对角元素取平方根得到的矩阵。
TODO:特征值为负数该怎么办?这可能吗?
现在,我们可以验证 \(P = Q \sqrt{\Lambda}\) 满足 \(P P^{\mathsf{T}} = A\):
用 Mathematica 的话说,就是:
a = {{1, -1}, {-1, 4}};
q = Transpose[Normalize /@ Eigenvectors[a]];
lam = DiagonalMatrix[Sqrt[Eigenvalues[a]]];
p = q . d;(* 验证 *)
Simplify[p . Transpose[p] == a]
待定系数法
上面方法构造的矩阵 \(P\) 并非前文中所使用的矩阵 \(P\),而是一个十分复杂的结果:
这是一个正确,但过于复杂的构造,事实上,我们也可以简单使用待定系数法来构造矩阵 \(P\),设\(P=[k_1\quad k_2;k_3\quad k_4]\),则 \(PP^{\mathsf{T}} = A\) 相当于
四个未知数三个方程,可以任取其中一个未知数的值(注意不要使 \(P\) 不可逆),求解剩下三个,这其实并不困难。
齐次化
对于更一般的,形如 \(ax^2+2bxy+cy^2+2dx+2ey+f=0\) 的式子,我们可以通过齐次化来将其转为二次型,即令 \(\mathbf{v}=[x\quad y\quad 1]\),则
其中矩阵 \(A\) 为