<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>线性代数 on FoldRight</title><link>https://www.foldright.com/tags/%E7%BA%BF%E6%80%A7%E4%BB%A3%E6%95%B0/</link><description>Recent content in 线性代数 on FoldRight</description><generator>Hugo -- gohugo.io</generator><language>en</language><lastBuildDate>Sun, 12 Jan 2025 18:29:00 +0000</lastBuildDate><atom:link href="https://www.foldright.com/tags/%E7%BA%BF%E6%80%A7%E4%BB%A3%E6%95%B0/index.xml" rel="self" type="application/rss+xml"/><item><title>Orthogonal 矩阵</title><link>https://www.foldright.com/post/relearn-matrix-4/</link><pubDate>Sun, 12 Jan 2025 18:29:00 +0000</pubDate><guid>https://www.foldright.com/post/relearn-matrix-4/</guid><description>&lt;h3 id="orthonormal-bases"&gt;Orthonormal Bases&lt;/h3&gt;
&lt;p&gt;对于一个给定的空间 $R^n$，有无限多的基。 每组基都可以线性组合成该空间的向量。
在这么多组基中，最好的基，就叫做 &lt;strong&gt;Orthonormal Bases&lt;/strong&gt;，常用 $q_1, q_2,&amp;hellip; q_n$ 来表示。&lt;/p&gt;
&lt;p&gt;Orthonormal Bases 有以下性质：
$$
q_i^Tq_j =
\begin{cases}
0 &amp;amp; if &amp;amp; i \ne j &amp;amp; (orthogonality) \
1 &amp;amp; if &amp;amp;i = j &amp;amp; (normalization)
\end{cases}
$$&lt;/p&gt;
&lt;p&gt;由 Orthonormal Bases 组成的矩阵一般称为 $Q$ ，一般来说矩阵 $Q$ 都是比较高的，也就是 $Q_{m\times n}$ 中的 $m \geqslant n$ ，因为 Othonormal Bases 是互相垂直的，且是$m$ 维的向量组成的，所以 $m$ 一定要比 $n$ 大，否则就很难相互之间垂直了。&lt;/p&gt;
&lt;p&gt;如果 $m = n$ ，则 Orthonormal Bases 形成一个方阵，这个方阵的名字叫做 &lt;strong&gt;Orthogonal Matrix&lt;/strong&gt;。 注意 Bases 是 Orthonormal， 而 Matrix 是 Orthogonal 。&lt;/p&gt;
&lt;h3 id="orthogonal-matrix-的特点"&gt;Orthogonal Matrix 的特点&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;结合 Orthonormal Bases 的性质，&lt;strong&gt;Orthogonal Matrix 的各列都是正交的，而且各列的长度为 1&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;$\bf Q^TQ = I$ ， &lt;strong&gt;也就是 $\bf Q^T = Q^{-1}$&lt;/strong&gt; ， &lt;strong&gt;同时 $\bf QQ^T = I$&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;这点特别重要，因为求 Orthogonal Matrix 的 $Q^{-1}$ 会变的特别简单，只要 $Q^T$ 就可以了。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;第二点要证明也很简单，如下：&lt;/p&gt;
&lt;p&gt;$$
Q^TQ =
\begin{bmatrix}
q_1^T \\
q_2^T \\
q_3^T \\ \vdots
\end {bmatrix}
\begin{bmatrix}
q_1 &amp;amp; q_2 &amp;amp; q_3 &amp;amp; \dots
\end{bmatrix} =
\begin{bmatrix}
1 &amp;amp; 0 &amp;amp; 0 &amp;amp; \dots \\
0 &amp;amp; 1 &amp;amp; 0 &amp;amp; \dots \\
0 &amp;amp; 0 &amp;amp; 1 &amp;amp; \dots \\
\end{bmatrix}
= I = Q^{-1}Q
$$&lt;/p&gt;
&lt;p&gt;$$
QQ^T = (Q^TQ)^T = I^T = I
$$&lt;/p&gt;
&lt;h3 id="orthogonal-matrix-对向量的操作"&gt;Orthogonal Matrix 对向量的操作&lt;/h3&gt;
&lt;p&gt;orthogonal Matrix 对向量的操作，主要就是用来 旋转、反射向量，或者是这两个操作的结合。&lt;/p&gt;
&lt;h3 id="orthonormal-bases-好什么好处"&gt;Orthonormal Bases 好什么好处？&lt;/h3&gt;
&lt;p&gt;如果一个向量可以用 Orthonormal Bases 来表示，那么很容易就能找到他们的系数。 比如：
$$
b = x_1q_1 + x_2q_2 + \dots + x_nq_n
$$
只要 $q_1, q_2, \dots, q_n$ 是一组 Orthonormal Bases，那么找到 $x$ 会很简单。因为如果两边同时左乘 $q_1^T$,参考开头 $q_i^Tq_j$ 的定义， 就能进行推导：
$$\begin{align}
q_1^Tb &amp;amp;= x_1q_1^Tq_1 + x_2q_1^Tq_2 + \dots + x_nq_1^Tq_n \\
&amp;amp;= x1
\end{align}
$$&lt;/p&gt;
&lt;p&gt;或者直接用用矩阵的方式来解决，让 $Q$ 为 Orthogonal Matrix：&lt;/p&gt;
&lt;p&gt;$$
\begin{align}
Qx &amp;amp;= b \\
Q^{-1}Qx &amp;amp;= Q^{-1}b \\
x &amp;amp;= Q^{-1}b \\
x &amp;amp;= Q^Tb
\end{align}
$$&lt;/p&gt;
&lt;p&gt;这里可以看出来，由于 $A^{-1} = A^{-T}$ ，所以求解线性方程组会变得非常简单，毕竟 $x^{-1}$ 还是有计算量的，而 $x^T$ 就很容易看出来了。&lt;/p&gt;
&lt;p&gt;到这里可以看出来，在 Orthogonal Matrix 中，一个向量可以分别投影到各个 base 向量中，而各个 base 是垂直的。一个最简单的想象方式就是小时候经常训练的由 $(x, y)$ 组成的二维平面。&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.foldright.com/post/relearn-matrix-3/"&gt;上一篇&lt;/a&gt;文章中提到的投影矩阵 $P = A(A^TA)^{-1}A^T$，如果 $A$ 为 $Q$，则 $P = Q(Q^TQ)^{-1}Q^T = QQ^T$。 注意这里的 $Q_{m\times n}$ 中的 $m$ 可能和 $n$ 不相等。如果 $m = n$，那么 $P = I$ 。&lt;/p&gt;
&lt;p&gt;在 $Ax=b$ 的问题上，如果 $A$ 为 $Q$ ，则 $x = Q^Tb$。&lt;/p&gt;
&lt;h3 id="如何把普通的-a-转换为-q"&gt;如何把普通的 A 转换为 Q&lt;/h3&gt;
&lt;p&gt;使用 Gram-Schmidt 方法，把相互独立的 bases，转换成相互垂直的 bases，同时使得两者 span 成的空间不变。具体的方法这里就不展开了。&lt;/p&gt;</description></item><item><title>投影矩阵</title><link>https://www.foldright.com/post/relearn-matrix-3/</link><pubDate>Mon, 06 Jan 2025 23:21:02 +0000</pubDate><guid>https://www.foldright.com/post/relearn-matrix-3/</guid><description>&lt;h3 id="夹角与垂直"&gt;夹角与垂直&lt;/h3&gt;
&lt;p&gt;两个向量的夹角为：
$$
\cos\theta = \frac{a^Tb}{\parallel{a}\parallel\parallel{b}\parallel}
$$&lt;/p&gt;
&lt;p&gt;两个向量正交，则内积 $a^Tb = 0$。&lt;/p&gt;
&lt;h3 id="向量投影到向量"&gt;向量投影到向量&lt;/h3&gt;
&lt;p&gt;向量 $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
$$&lt;/p&gt;
&lt;p&gt;换个视角，如果把投影的过程当成一个线性系统，也就是输入为 $b$，输出结果为 $p$，投影过程所代表的转换矩阵为 $P$，则： $Pb = p$ 。通过代入计算可得：&lt;/p&gt;
&lt;p&gt;$$
P = \frac{aa^T}{a^Ta}
$$&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;$P$ 就称为投影矩阵&lt;/strong&gt;。&lt;/p&gt;
&lt;p&gt;如果向量的维度为 $n$， 则 $P$ 为 $n\times{n}$ 矩阵。$P$ 投影矩阵的 rank 为 1，因为上面式子揭露了矩阵是由向量 $a$ 和 $a^T$ 相乘决定的。并且 nullspace 的 basis 为 $n-1$ 个，row space 和 column space 的 basis 为 1 个，都为 $a$， left nullspace 的 basis 也为 $n-1$ 个。&lt;/p&gt;
&lt;h4 id="向量投影向量的矩阵是对称的"&gt;向量投影向量的矩阵是对称的&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;同时$P$为对称矩阵&lt;/strong&gt;，即： $P^T = P$。证明：
$$
P^T = \left(\frac{aa^T}{a^Ta}\right)^T = \frac{(a^T)^Ta^T}{a^Ta} = \frac{aa^T}{a^Ta} = P
$$&lt;/p&gt;
&lt;h4 id="向量投影到向量的矩阵是幂等的"&gt;向量投影到向量的矩阵是幂等的&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;同时还有 $P^2 = P$&lt;/strong&gt;。 在几何上很容易理解，投影之后再投影，对输入肯定是没有任何作用了。证明：&lt;/p&gt;
&lt;p&gt;$$
P^2 = \frac{aa^T}{a^Ta}\frac{aa^T}{a^Ta} = \frac{aa^Taa^T}{a^Taa^Ta}
= \frac{a(a^Ta)a^T}{(a^Ta)a^Ta} = \frac{aa^T}{a^Ta} = P
$$&lt;/p&gt;
&lt;h4 id="向量投影到向量的矩阵没有逆矩阵"&gt;向量投影到向量的矩阵没有逆矩阵&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;$P$ 没有逆矩阵&lt;/strong&gt;，因为 $P$ 是 singlar 的， rank 不为 $n$。几何上可以理解为，&lt;strong&gt;向量 $b$ 被投影之后，再也还原不回来了&lt;/strong&gt;。&lt;/p&gt;
&lt;h3 id="向量投影到多维子空间"&gt;向量投影到多维子空间&lt;/h3&gt;
&lt;p&gt;如果把 $a$ 当成未知的向量，它在一个平面上，向量 $b$ 投影到该平面上的情况分析也类似。我们可以先把这个平面的 basis 形成矩阵，用 $A$ 表示，这样与 $b$ 投影到该平面的向量就是 $a = Ax$ ，这样就能使用上面同样的思路， $(b-Ax)·Ax = 0$ ，这个是点积，有点推导不动了。&lt;/p&gt;
&lt;p&gt;换一种思路，因为 $a$ 是由 $A$ 的 column 的线性组合，属于$A$的 column space，所以与 $a$ 垂直的向量必定是落在 $A$ 的 left nullspace 中，也就是 $(b - Ax)$ 落在 $A$ 的 left nullspace 中， 在 left nullspace 中的向量有 $y^TA = A^Ty = 0$ ，所以 $A^T(b-Ax) = 0$，再进行推导得到 $A^TAx = A^Tb$ （好像就是 $Ax=b$ 两边同时用 $A^T$ 来做转换），从而得到 $x=(A^TA)^{-1}A^Tb$ 。&lt;/p&gt;
&lt;p&gt;所以，向量 $b$ 投影到 $A$ 的结果就为 $Ax = A(A^TA)^{-1}A^Tb$。投影矩阵就是 $P = A(A^TA)^{-1}A^T$。&lt;/p&gt;
&lt;p&gt;需要注意的是，上面$P$ 出现了 逆矩阵 $(A^TA)^{-1}$，而逆矩阵的出现是有条件的，即 $(A^TA)$ 需要是方阵，假设 $A$ 为 $m\times n$ 的矩阵，则 $(A^TA)$ 则为 $n\times n$ 的方阵。同时也需要 $(A^TA)$ 的 rank 为 $n$ ，也就是 non-singlar 。&lt;/p&gt;
&lt;p&gt;同时 $(A^TA)$ 的 nullspace， 也就是 $A$ 的 nullspace，证明如下：
$$\begin{align}
&amp;amp; &amp;amp;Ax &amp;amp;= 0 &amp;amp; A的\ nullspace\ 性质
\\&amp;amp;\Rightarrow &amp;amp;A^T(Ax) &amp;amp;= 0 &amp;amp; 左边同时乘\ A^T
\\&amp;amp;\Rightarrow &amp;amp;(A^TA)x &amp;amp;= 0 &amp;amp; 结合律
\end{align}$$
上面式子说明，$A$ 的 nullspace 是 $A^TA$ 的 nullspace。&lt;/p&gt;
&lt;p&gt;接下来看：&lt;/p&gt;
&lt;p&gt;$$\begin{align}
&amp;amp; &amp;amp;(A^TA)x &amp;amp;= 0 &amp;amp;(A^TA) 的\ nullspace\ 性质
\\&amp;amp;\Rightarrow &amp;amp;x^T(A^TA)x &amp;amp;= 0 &amp;amp;左边同时乘 x^T
\\&amp;amp;\Rightarrow &amp;amp;(x^TA^T)Ax &amp;amp;= 0 &amp;amp;结合律
\\&amp;amp;\Rightarrow &amp;amp;(Ax)^TAx &amp;amp;= 0 &amp;amp;利用\ (Ax)^T = x^TA^T
\\&amp;amp;\Rightarrow &amp;amp;\parallel Ax \parallel^2 &amp;amp;= 0 &amp;amp; 利用A^TA=\parallel A \parallel^2
\\&amp;amp;\Rightarrow &amp;amp;\parallel Ax \parallel &amp;amp;= 0
\\&amp;amp;\Rightarrow &amp;amp;Ax&amp;amp;= 0
\end{align}$$&lt;/p&gt;
&lt;p&gt;上面式子说明，$(A^TA)$ 的 nullspace 是 $ax$ 的 nullspace 。
所以 &lt;strong&gt;$(A^TA)$ 的 nullspace 与 $A$ 的 nullspace 等价，也就是说如果 $A$ 要有 $P$，则 $A$ 必须 full rank&lt;/strong&gt;。&lt;/p&gt;
&lt;p&gt;上面得到的投影矩阵 $P$ 是一个一般化的情形，和一维向量投影的性质类似。&lt;/p&gt;
&lt;h4 id="投影矩阵是对称矩阵"&gt;投影矩阵是对称矩阵&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;$P$ 为对称矩阵&lt;/strong&gt;，即 $P^T = P$，证明：
$$\begin{align}
P^T &amp;amp;= (A(A^TA)^{-1}A^T)^T&lt;br&gt;
\\ &amp;amp;= (A^T)^T((A^TA)^{-1})^TA^T
\\ &amp;amp;= A(((A^TA)^T)^{-1}A^T)
\\ &amp;amp;= A(A^TA)^{-1}A^T
\\ &amp;amp;= P
\end{align}$$&lt;/p&gt;
&lt;h4 id="投影矩阵是幂等矩阵"&gt;投影矩阵是幂等矩阵&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;同时也有 $P^2 = P$&lt;/strong&gt;。证明：&lt;/p&gt;
&lt;p&gt;$$\begin{align}
P^2 &amp;amp;= PP
\\ &amp;amp;= (A(A^TA)^{-1}A^T)(A(A^TA)^{-1}A^T)
\\ &amp;amp;= A(A^TA)^{-1}((A^TA)(A^TA)^{-1})A^T
\\ &amp;amp;= A(A^TA)^{-1}A^T
\\ &amp;amp;= P
\end{align}$$&lt;/p&gt;
&lt;p&gt;几何意义也类似，投影之后再投影，对输入肯定是没有任何作用了。&lt;/p&gt;
&lt;h4 id="投影矩阵没有逆矩阵"&gt;投影矩阵没有逆矩阵&lt;/h4&gt;
&lt;p&gt;类似的，&lt;strong&gt;$P$ 没有逆矩阵，因为向量 $b$ 被投影之后，再也还原不回来了&lt;/strong&gt;。&lt;/p&gt;
&lt;h3 id="投影到四个子空间的矩阵"&gt;投影到四个子空间的矩阵&lt;/h3&gt;
&lt;p&gt;另外，&lt;strong&gt;既然 $P$ 是把 $b$ 投影到 $A$ 的 column space，那么 $I-P$ 就是把 $b$ 投影到 $A$ 的 left nullspace&lt;/strong&gt;，证明：$b - Pb$ 落在 $A$ left nullspace 上，那么 $b - Pb = Ib - Pb = (I-P)b$，也就是说$ (I-P)$ 把 $b$ 投影到 $A$ 的 left nullspace 上。&lt;/p&gt;
&lt;p&gt;对应的， &lt;strong&gt;$P_2 = A^T(AA^T)^{-1}A$ 把 $b$ 投影到 $A$ 的 row space 上，对应的 $I-P_2$ 把 $b$ 投影到 $A$ 的 nullspace 上&lt;/strong&gt;。&lt;/p&gt;
&lt;p&gt;也就是说，我们可以把向量 $b$ 投影到 $A$ 的四个子空间：&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;投影矩阵&lt;/th&gt;
&lt;th&gt;投影到A的子空间&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;$P = A(A^TA)^{-1}A^T$&lt;/td&gt;
&lt;td&gt;column space&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;$P = I - A(A^TA)^{-1}A^T$&lt;/td&gt;
&lt;td&gt;left nullspace&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;$P = A^T(AA^T)^{-1}A$&lt;/td&gt;
&lt;td&gt;row space&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;$P = I - A^T(AA^T)^{-1}A$&lt;/td&gt;
&lt;td&gt;nullspace&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;</description></item><item><title>矩阵的四个子空间</title><link>https://www.foldright.com/post/relearn-matrix-2/</link><pubDate>Sat, 04 Jan 2025 14:19:02 +0000</pubDate><guid>https://www.foldright.com/post/relearn-matrix-2/</guid><description>&lt;p&gt;给定一个方程式 $Ax = b$，我们需要回答几个基本问题：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;$x$ 是否&lt;strong&gt;存在&lt;/strong&gt;解？&lt;/li&gt;
&lt;li&gt;如果存在的话，解是否&lt;strong&gt;唯一&lt;/strong&gt;？&lt;/li&gt;
&lt;li&gt;需要满足什么条件，才能让方程式有解？&lt;/li&gt;
&lt;li&gt;如果有解的话，如何找到所有满足方程式的解 $x$&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;也可以把上面这几个问题从工程的观点上进行提问：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;如果有一个系统 $A$，我们期望它能输出 $b$，我们想知道这个系统是否具备这个能力，使得某个 input 可以变成 $b$。 或者反过来说，某个输出 $b$ 非常讨厌，我们不想让系统 $A$ 产生，$A$ 会不会有可能会输出 $b$ ？&lt;/li&gt;
&lt;li&gt;如果可以，input 是唯一的吗？&lt;/li&gt;
&lt;li&gt;否则，这个系统 $A$ 应该如何设计，才能让我们能够输出 $b$&lt;/li&gt;
&lt;li&gt;并且通过这个系统的设计，找出所有可能的 input，让 input的生产也变得更简单些&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;为了回答上述问题，我们需要去了解矩阵(系统) $A$ 的特性。&lt;/p&gt;
&lt;h3 id="column-space"&gt;Column space&lt;/h3&gt;
&lt;p&gt;Column Space 能让我们回答一个问题，即 $Ax = b$ 是否存在解？&lt;/p&gt;
&lt;p&gt;Column Space 就是 $A$ 中的每列向量，通过线性组合而成的空间，就是$A$ 的 Column Space，符号为 $C(A)$ ，或者叫 $R(A)$ ，也就是 Range of $A$，$A$ 的值域，很贴切。 其实 $Ax$ 描述的空间就是 $C(A)$。&lt;/p&gt;
&lt;p&gt;而只有当 $b$ 落到 $C(A)$ 上，才有解。因为 $x$ 对每列做线性组合只能覆盖到 $C(A)$。&lt;/p&gt;
&lt;p&gt;那如何判断 $b$ 落在了 $C(A)$ 上？如果 $b$ 是可以由 $A$ 的 pivot 所在列对应的列能够线性组合而成的话，就说明 $b$ 落在了 $C(A)$ 上。&lt;/p&gt;
&lt;p&gt;这样就回答了 $x$ 是否有解的问题。&lt;/p&gt;
&lt;p&gt;同时，$C(A)$ 的维度，可以通过 $A$ 的 pivot 数量来定的，也就是 Rank，所以 $A$ 的 Rank 告诉我们 $C(A)$ 的维度。另外一个需要知道的是 $A$ 的转置 $A^t$ 的维度数量，和 $A$ 是一样的。&lt;/p&gt;
&lt;h3 id="nullspace"&gt;Nullspace&lt;/h3&gt;
&lt;p&gt;为什么要找 nullspace？&lt;/p&gt;
&lt;p&gt;如果我们通过 Column Space 知道了$Ax = b$ 存在解，接下来我们就要回答 $Ax = b$ 是否有唯一解。&lt;/p&gt;
&lt;p&gt;如果 nullspace 不只有零向量，说明 $Ax = b$ 没有唯一解。&lt;/p&gt;
&lt;p&gt;而 nullspace 就是看 $Ax = 0$ 的解空间。&lt;/p&gt;
&lt;p&gt;可以这样想，如果 $x&amp;rsquo;$ 是 $Ax = b$ 的一个解，而 $y&amp;rsquo;$ 是 Nullspace 中的任意一个非零向量，那么 $Ay&amp;rsquo; = 0$。我们可以把 $Ax&amp;rsquo; = b$ 等价改写成 $A(x&amp;rsquo; + y&amp;rsquo;) = 0$ ，接着根据分配率， $A(x&amp;rsquo; + &amp;lsquo;y) = Ax&amp;rsquo; + Ay&amp;rsquo;$，而因为 $Ay&amp;rsquo; = 0$，所以 $A(x&amp;rsquo; + &amp;lsquo;y) = Ax&amp;rsquo; + Ay&amp;rsquo; = Ax&amp;rsquo; = b$ 。&lt;/p&gt;
&lt;p&gt;所以一旦有 $x&amp;rsquo;$，那么 $y&amp;rsquo;$ 是多少，就有多少的解。就回答了 $Ax = b$ 是否有唯一解。&lt;/p&gt;
&lt;p&gt;通过了解 Column Space 和 Nullspace ，可以回答 存在性和唯一性的问题。通过分析 Column Space，我们可以知道 $b$ 要满足什么条件会有解决，这样就回答了第三个问题。通过分析 Nullspace，我们知道了怎么样的 $x$ 是解，所以能回答第四个问题。&lt;/p&gt;
&lt;h3 id="row-space"&gt;Row space&lt;/h3&gt;
&lt;p&gt;$A$ 的 Row space ，就是 $A$ 的所有行(row) span(张成) 出来的空间。换句话说，就是 $A$的转置 $A^t$ 的 Column space，也就是 $C(A^t)$ 。&lt;/p&gt;
&lt;p&gt;对于 $m*n$ 的 $A$ 来说， Row space 是来自 $n$ 维空间 $R^n$ 的向量组合成的 $r$ 维空间（$r$ 是 $A$ 的 rank）。&lt;/p&gt;
&lt;h3 id="left-nullspace"&gt;Left Nullspace&lt;/h3&gt;
&lt;p&gt;对称的， $A$ 的 Left Nullspace，就是$A^t$ 的 Nullspace。&lt;/p&gt;
&lt;p&gt;如果说 Nullspace 是对 $A$ 的各列做线性组合后结果为 $0$ 的 $x$ 向量所形成的空间。
那么 Left Nullspace 就是对 $A$ 的各行做线性组合后结果为 $0$ 的 $y$ 向量所形成的空间，表示为寻找 $y^t X = 0$ 的 $y$ 形成的空间。此是 $y$ 在 $x$ 的左边，所以叫做 Left Nullspace。&lt;/p&gt;
&lt;p&gt;对于 $m*n$ 的 $A$ 来说， Left Nullspace 是来自 $n$ 维空间的向量组合成的 $(m-r)$ 维空间（$r$ 是 $A$ 的 rank）。&lt;/p&gt;
&lt;p&gt;对于 Row space 和 Left Nullspace，我们能解决 $y^tA = b$ 的问题。&lt;/p&gt;
&lt;h3 id="了解这四个矩阵子空间有什么用呢"&gt;了解这四个矩阵子空间有什么用呢？&lt;/h3&gt;
&lt;p&gt;如果我们在分析一些系统时，能够将系统转换成矩阵，我们就可以使用通过分析矩阵的四个子空间，来对这个系统进行分析。也就是把现实世界的系统建模成矩阵，通过矩阵来了解系统。&lt;/p&gt;
&lt;p&gt;比如，如果代表系统的矩阵， 是非满秩的，那就代表着矩阵 $Ax = 0$ 有无数解，也就意味着从系统把 input 转成 output 之，就转不回 input 了。因为矩阵 A非满秩，没有逆矩阵。这样就可以直接利用现有的矩阵知识，来深入理解我们的系统了。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;row space 维度为 $r$, nullspace 维度为 $(n-r)$ ，互相垂直。&lt;/li&gt;
&lt;li&gt;column space 维度为 $r$， left nullspace 维度为 $(m-r)$，互相垂直。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src="https://github.com/user-attachments/assets/6be75c77-ba2f-4727-9e06-105eecb1604f" alt=""&gt;&lt;/p&gt;
&lt;p&gt;上面这张图的是从几何观点来看矩阵 $A$ 的，把$A$ 当成系统，输入 $x$，则可以 你被拆解为 row space 的线性组合 加上 Nullspace中的线性组合。对于在 row space上的成分，会被映射到右边的 column space上，而 null space上的成分，则被转换成 $0$。&lt;/p&gt;
&lt;h3 id="附找-nullspace-的步骤"&gt;附：找 nullspace 的步骤&lt;/h3&gt;
&lt;p&gt;给出一个矩阵$A$，求出它的 nullspace 的步骤：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;通过高斯消去法找到 $U$，（此是的 $U$ 就不一定叫做上三角了，因为有可能不是方针，所以现在 U 叫做 Row Echelon Form，阶梯形式）&lt;/li&gt;
&lt;li&gt;从高斯消去法得到的 $U$，可以从中找到 &lt;strong&gt;Pivots&lt;/strong&gt; （Pivots的数量就是 rank）&lt;/li&gt;
&lt;li&gt;在 $U$ 中，包含 pivot 的列，叫做 pivot column， 不包含 pivot 的列，叫做 free column&lt;/li&gt;
&lt;li&gt;对应的，如果在方程中，pivot column 对应的变量，叫做 pivot variable，free column 对应的变量，叫做 free variable&lt;/li&gt;
&lt;li&gt;回到方程中，把 pivot variable 使用 free variable 进行代换。因为 pivot variable 太重要了，不能去动它们，我们能动的是 free variable。有点像自变量和因变量，free variable 像自变量，我们可以自由的给他们定义值，但是 pivot variable 不是我们能定的，它们像因变量，一旦 free variable 给出后，它们就定下来了&lt;/li&gt;
&lt;li&gt;由上一步得到的 free variable将原来的 $x$ 替换成 $x&amp;rsquo;$，重新写成方程 $Ax&amp;rsquo; = 0$ 的形式，就可以把 $Ax&amp;rsquo;$ 等价换成各个 free variable 的线性组合，这样的线性组合形成的空间，是 $Ax&amp;rsquo;= 0$ 的解空间。而这样的线性组合形成的空间，就是 &lt;strong&gt;nullspace&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Nullspace 的维度，就是 free variable 的个数。所以从 $A$ 通过高斯消去得到的 $U$ 不仅能告诉我们关于 $A$ 的 rank （pivot column个数），还能告诉我们关于 $A$ 的 nullspace 的维度（free column个数）&lt;/li&gt;
&lt;/ol&gt;</description></item><item><title>理解矩阵</title><link>https://www.foldright.com/post/relearn-matrix/</link><pubDate>Sun, 29 Dec 2024 14:19:02 +0800</pubDate><guid>https://www.foldright.com/post/relearn-matrix/</guid><description>&lt;p&gt;线性代数的矩阵可以看做一个系统，一个 input 被矩阵进行转换，从而产生出一个 output，就好像函数，线性代数研究的就是矩阵系统，矩阵是线性代数中的一等公民，就好像函数是函数式编程中的一等公民，因此需要从更高层面看矩阵，而非关注矩阵中的具体某个数字。&lt;/p&gt;
&lt;p&gt;既然是把矩阵当成一个系统来研究，那就需要从最简单的矩阵研究起，也就是 Identity 矩阵（简称 $I$ ），这个矩阵的作用就是对 input 什么都不做，直接变成 output。 就好像函数中 Identity function ，&lt;code&gt;f(x) = x&lt;/code&gt; 。&lt;/p&gt;
&lt;p&gt;两个矩阵相乘 $AB$，从工程上的观点来讲，就是把 input 先输入到 $B$，出来的结果再输入到 $A$，从而得到最后的结果，就像函数式编程中的函数一样： $g \cdot f$ 。&lt;/p&gt;
&lt;p&gt;所以矩阵中存在 逆矩阵( inverse )，也就是 $AB = I$ ， 也就是 input 先进入 $B$，再进入 $A$，得到的结果还是 input。 在工程上，这个很有用，相当于输入被某个系统作用后，可以再被某个系统还原回来。工程上如果能通过研究一个系统 $A$，得到它的 逆系统 $B$，那就相当给力了，覆水不再难收，时光可以回流，比如可以用来做回滚，也就是如果发布了东西出现了问题，没关系，把这个结果再输入另外一个系统，就能还原。所以线性代数需要研究 invert 矩阵。&lt;/p&gt;
&lt;p&gt;矩阵相乘满足结合律 $A(BC) = (AB)C$ 。满足分配率 $A(B+C) = AB + AC$。但不满足交换律 $ABC = CBA$ 。要知道交换律在工程上是很难的，如果某些操作满足交换律，就说明操作的顺序可以任意更改，没有因果关系，时序任意，随意并发。因此在工程上的操作能满足交换律是很难得的，但往往很难如工程师的愿，比如矩阵操作，就不满足交换律。&lt;/p&gt;
&lt;p&gt;同时还可以进一步研究矩阵的一些线性相关性质。比如矩阵中的各个列( column )，是否是线性相关的，如果是线性相关的，说明矩阵中有些信息是冗余的，就好像在方程组中的，有些方程和另外一些方程的信息量是一样的。这样有存在列线性相关（dependent）的矩阵，称为 singular 。 相反，非线性相关（independent）的称为 nonsingular 矩阵。 我们会说 nonsingular 矩阵是『好矩阵』，因为矩阵中的每个列都是非线性相关的，没有冗余信息。&lt;/p&gt;
&lt;p&gt;同时还有一些矩阵，比如 上三角矩阵（对角线下面的都是 0，0 组成了一个正三角，简称 U），下三角矩阵（对角线上面都是 0，0 组成了一个倒三角，简称 L）。&lt;/p&gt;
&lt;p&gt;对于一个线性系统 $A$（$A$ 是矩阵）， 对于一个输入 $x$， 输出 $y$， 那么就可以表达成 $Ax = y$ 。 对于这样的一个系统 $A$， 我们可以研究它，通过高斯消去法，把 $A$ 分解成 $A = LU$ 的形式。相当于一个系统可以被分解成两个系统的连续作用， 这样就方便了工程上对系统的理解。类似于编程，把复杂的东西拆解成一个个模块，方便理解、推理和维护。&lt;/p&gt;</description></item></channel></rss>