矩阵理论佯谬两则

我是一个喜欢多想的人,有时候想的太多,会把自己也给绕进去。
以下两则就是在学矩阵的时候,自己把自己绕进去的两个逻辑。
逻辑上看起来是对的,但是结论是反直觉的,是以称之为佯谬。
第一个可能触及本质些,第二个其实回过头来看看很扯淡。估计只有我这样的,在思考的时候只愿意抱着『1+1=2』之类的基本公理前进,拒绝任何一丁点儿的直觉的人,才会被绕进去罢。

其一:实正定矩阵一定是对称阵?

Updated:
在评论区与人发生了争执,我觉得关键在于,我们对于『正定』的理解不同。我理解的正定,可能是广义的正定,其定义为:在某个数域上,如果对于任意的列向量 $x$ 和方阵 $A$,都有 $x^*Ax>0$,则称 $A$ 为正定的。而在某些地方,对 A 有 Hermite 阵的要求,从实用的角度来说,这是无可厚非的:毕竟用 Hermite 阵就可以表示所有二次型了。
如果按照狭义的定义来的话,这个所谓的『佯谬』从定义上就被确定了,没有了讨论的必要。
另外,半年之后,我重新审视这文章的时候,发现在某几个地方我把正定和半正定搞混了。やれやれ,不想修改了,就这样吧。


初看这个命题,毫无疑问可以判断其为错误的。显然可以举一个反例,既是非对称阵,又是实正定矩阵。最简单的,二阶阵中,考虑如下矩阵:
$$ A = \left( \begin{array}{cc} 1 & x \\ y & 1 \end{array} \right) $$
只要 $x + y = 2$,那么只要展开该矩阵的二次型,就可以发现,该矩阵必然是实正定矩阵。显然它不一定是对称阵。
那么现在来看这个命题,复数域下的正定矩阵 A 一定为 Hermite 阵。这个也是伪命题吗?
不,它是个真命题。如何证明呢?方法比较扯淡,大概思路就是 $ A = (A - A^* )/2 + (A + A^* )/2 $,然后把这个矩阵等式改成对应的二次型等式,那么因为右边第一个矩阵是反 Hermite 阵,其二次型只能是 0 或者纯虚数。又因为 A 正定,因此左边二次型是实数,又由于右边第二项是 Hermite 阵的二次型,也为实数,所以右边第一项二次型必然是实数,所以它只能是 0,也就是说 A 是 Hermite 阵。
那么,可以显然把所有的复数域下的正定矩阵分成两类,一类元素全是实数,一类元素有非实数。显然前者就是所有实数域下的正定矩阵,根据这个真命题,他们都是 Hermite 阵,而实数 Hermite 阵不就是对称矩阵嘛?所以说所有实正定矩阵都是对称阵?这不是和之前提到的那个伪命题一样了吗?也就是说一个真命题蕴含了一个伪命题,而这显然是不科学的。
此为佯谬一。

其二:旋转和反射是同一种变换?

这个佯谬似乎要 low 一点,且待我尝试运用一下马赛克诡计。
首先声明,这里讨论的是欧氏空间,也就是定义了正常内积的实线性空间。
显然,根据生活常识,旋转和反射看上去就不是同一种变换,实际上它们当然不是同一种变换。
现在考虑二阶的情况,在 I - I 基下,所有的正交变换对应的矩阵只可能是以下两种形式之一:
$$ \left( \begin{array}{cc} c & s \\ -s & c \end{array} \right) \quad or \quad \left( \begin{array}{cc} c & s \\ s & -c \end{array} \right) $$
其中 $c^2 + s^2 = 1$ 。
矩阵理论的课本告诉我们,前者对应的变换为旋转变换,后者对应的变换为反射变换。
那么现在考虑二维空间中的任意两个向量 $\alpha$ 和 $\beta$,根据直觉,显然有一个旋转变换能把 $\alpha$ 变换成 $\beta$ ,同样的,也有一个镜面反射变换能把 $\alpha$ 变成 $\beta$,也就是说,这两个变换的效果是一样的,所以这两个变换对应的矩阵就是一样的,也就是说:
$$ A_{rotation}=A_{reflection}=\left( \begin{array}{cc} c_1 & s_1 \\ -s_1 & c_1 \end{array} \right) = \left( \begin{array}{cc} c_2 & s_2 \\ s_2 & -c_2 \end{array} \right) $$
矩阵相等,对应元素相等,所以 $c_1=c_2=-c_2$,所以 $c_1=c_2=0$,所以两个矩阵都是零。这显然是不对的。
此为佯谬二。

外一篇:为什么可以用二次方程的特征根解数列通项?

学矩阵理论对于重建世界观还是很有帮助的,曾经看不到意义的东西,现在看来非常明了了。
高中的时候我们就知道,如果遇到有二阶递推的数列,比如 Fibonacci 数列,可以列一个二次方程求特征根来求解数列的通项公式,此为不动点法。
但是这是为什么呢?数列的递推跟二次方程有个毛关系呢?为什么一定要这样呢?高中的时候我就思考过这个问题,曾经尝试在解析几何上去想像它,在纸上画了一个阿基米德螺旋线一样的玩意儿,好像是收敛到不动点的样子。然而还是不大懂。
有了矩阵,一切就好办多了。最简单的,考虑 Fibonacci 数列的递推 $a_{n}=a_{n-1}+a_{n-2}$,则可以列出以下矩阵递推,顺手就可以得到通项:
$$ \left( \begin{array}{c} a_n \\ a_{n-1} \end{array} \right)= \left( \begin{array}{cc} 1 & 1 \\ 1 & 0 \end{array} \right) \left( \begin{array}{c} a_{n-1} \\ a_{n-2} \end{array} \right)= {\left( \begin{array}{cc} 1 & 1 \\ 1 & 0 \end{array} \right)}^{n-1} \left( \begin{array}{c} a_1 \\ a_0 \end{array} \right)$$
接下来只要解决矩阵乘方的问题就好了,例子里的这个矩阵,显然可以正交对角化。更一般的,只要 $a_{n-2}$ 前面的系数是 1 ,这个矩阵就可以酉对角化。
那么如果递推矩阵不是对称阵,怎么办呢?那就没得破了,唯一的好消息是矩阵的任意次方都可以用它的 0 到 n - 1 次方来线性表示(Cayley-Hamilton 定理),所以至少做多要算 n 个乘法罢……