Orthogonal 矩阵
Orthonormal Bases
对于一个给定的空间 $R^n$,有无限多的基。 每组基都可以线性组合成该空间的向量。 在这么多组基中,最好的基,就叫做 Orthonormal Bases,常用 $q_1, q_2,… q_n$ 来表示。
对于一个给定的空间 $R^n$,有无限多的基。 每组基都可以线性组合成该空间的向量。 在这么多组基中,最好的基,就叫做 Orthonormal Bases,常用 $q_1, q_2,… q_n$ 来表示。
两个向量的夹角为: $$ \cos\theta = \frac{a^Tb}{\parallel{a}\parallel\parallel{b}\parallel} $$
两个向量正交,则内积 $a^Tb = 0$。
向量 $b$ 投影到向量 $a$,可以形象的理解成 $b$ 会按照与 $a$ 垂直的方向投射到 $a$ 上。所以 $b$ 投影到 $a$ 的结果是一个与 $a$ 方向一样的向量,我们称为 $p = \hat{x}a$,其中 $\hat{x}$ 为标量。 因此有 $(b-p) \perp a$,也就是他们的内积为 0: $a^T(b - \hat{x}a) = 0$ 。可以进一步推导出 $a^Tb - \hat{x}a^Ta = 0$ ,因此: $$ \hat{x} = \frac{a^Tb}{a^Ta} $$ 投影结果 $p$ 就为: $$ p = \hat{x}a = \frac{a^Tb}{a^Ta} a = a \frac{a^Tb}{a^Ta} = \frac{aa^T}{a^Ta}b $$
给定一个方程式 $Ax = b$,我们需要回答几个基本问题:
也可以把上面这几个问题从工程的观点上进行提问:
线性代数的矩阵可以看做一个系统,一个 input 被矩阵进行转换,从而产生出一个 output,就好像函数,线性代数研究的就是矩阵系统,矩阵是线性代数中的一等公民,就好像函数是函数式编程中的一等公民,因此需要从更高层面看矩阵,而非关注矩阵中的具体某个数字。
在我看来,
合格的代码追求正确性,优秀的代码追求与人交流,追求表达意图,追求用户体验。
写代码关注用户体验,就是关注琢磨自己的代码,对于使用者和读者: