65.9K
CodeProject 正在变化。 阅读更多。
Home

线性代数之美 – 总结

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.68/5 (11投票s)

2015年3月13日

BSD

13分钟阅读

viewsIcon

29013

本文旨在对该主题进行简要概述,总结基本概念。

近一年来,我一直在密集学习线性代数(有时每天 4-6 小时),这门学科不需要太多先验知识即可理解。你只需要了解加法和乘法,仅此而已。然而,线性代数在现实世界问题(以及高度理论性问题)中具有强大的力量。本文旨在对该主题进行简要概述,总结基本概念。

引言

将问题转化为矩阵方程可能会非常有益。它可以让我们执行诸如配平化学方程式(使用 Ax=b)、对多项式求导、近似超定方程组的解、在任何空间中旋转物体、计算体积、解释形状等等简单操作。如果我们考虑最基本概念——矩阵乘法——我们只需遵循特定规则(定义)即可找到答案。很有趣的是,我们可以利用这一点在矩阵中“存储”信息,即,给定规则,需要执行的一系列操作。多项式微分就是一个例子(参见用蓝色标记的 ToK)。下面,我包含了一些使用 MATLAB 构建的示例。

欧几里得向量空间

由于这只是一般向量空间内积空间的一个子集,因此建议有兴趣的读者阅读这些章节。

一般向量空间

在本节中,我们介绍了向量空间的概念;基本上是对欧几里得向量空间(3D)的推广。以下是一些问题和关注点

  • 如何在 n 维空间中找到两条直线之间的最短距离?答案是,最短距离是垂直距离(根据勾股定理)。当处理此类问题时,我只是选择直线上的一个一般点,找到通过这些点的直线(该表达式将同时包含 \(s\)\(t\)),然后利用微积分的力量找到最短距离。请注意,微积分方法需要多变量微积分知识。否则,请记住,当点积为零时,向量是垂直的(根据定义)。
     
  • 什么是向量空间?这可能会令人惊讶,但向量空间不仅仅是关于向量。我们可以有多项式向量空间矩阵向量空间等。这里的好处是,如果我们能证明“某物”是一个向量空间,那么我们就可以将一般向量空间的定理应用于这些“某物”向量空间。我们应该证明
    1. 加法封闭\(\vec{u},\vec{v} \in V \implies (\vec{(u+v)}\in V)\)),即通过添加向量我们永远不会离开向量空间 V,并且
    2. 标量乘法封闭\(\vec{v}\in V \implies k\vec{v}\in V, k \in \mathbb{R}\))。
    一个技巧是将标量设置为零,以证明某物不是向量空间。最后,数学的美妙之处在于,很多时候都与定义有关。如果我愿意,我可以提出一种加法,其行为类似于乘法,等等。这取决于你来决定(我们稍后将在内积空间中看到,我们也可以定义“点”积)。
     
  • 子空间?顾名思义,它是位于另一个向量空间内的向量空间。这些也同样适用;它们应该在加法和标量乘法下封闭。
     
  • 线性相关/独立?这都关乎能否将一个向量表示为其他向量的线性组合。如果向量空间 \(V\) 中的任何向量都不能表示为 \(V\) 中其他向量的线性组合,那么这些向量就是线性独立的。例如,如果一个向量空间由向量 \(\{v_1,v_2,v_3\}\) 跨越,那么如果我们无法将这些向量表示为彼此之间的关系,它们就被称为线性独立。否则,它们就是线性相关的。回忆叉乘。我们在“标准 3D 空间”(或更学术地说,具有 3 个基向量的正交标准系)中使用它来找到一个垂直于两个向量的向量。注意:线性独立向量不一定垂直,这与叉乘不同。
     
  • 基?上面我们看到了基的用法,但没有给出明确的定义。这不好。基本上,基是构成向量空间的基础。它是一组向量,要求 a) 线性独立,b) 它们应该跨越 V(V 中的所有向量都应该能表示为基向量的线性组合)。要测试一个基是否线性独立,只需将它们放入一个矩阵(以任何方向),然后计算行列式。如果不等于零,则这些向量被认为是线性独立的。
     
  • 列空间/行空间/零空间?好的,我们开始进入高度理论化的领域(至少在这个阶段,它可能会显得如此)。给定 \(A\) 是一个 \(m\times n\) 矩阵。列空间\(\mathbb{R^m}\) 的子空间,由 \(A\) 的列向量跨越。行空间顾名思义,是 \(\mathbb{R^n}\) 的子空间,由 \(A\) 的行向量跨越。零空间\(Ax=0\) 的解空间(重复定义)。一个重要的定理指出,线性方程组 \(Ax=b\) 有解当且仅当 \(b\)\(A\) 的列空间中(\(b\) 可以表示为 \(A\) 的列向量的线性组合)。“证明类似于[..]并留给读者作为练习”(书)。
     
  • 定理?是的,事实证明有一个公式将列空间的维度(\(rank(A)\))和零空间的维度(\(nullity(A)\))联系起来。对于一个有 \(n\) 列的矩阵,我们有 \(rank(A)+nullity(A)=n\)。我想指出,列空间的维度等于行空间的维度。
     
  • 正交补?行空间和零空间之间存在良好的关系,即它们互为正交补。正交是垂直的另一种说法。
     
  • 是否可以更改基向量?是的,这是完全可以的。我们使用一个矩阵 \(T\),它将作为转换器(ToK:讨论将一组指令表示为更抽象形式的重要性)。关系如下,
    $\vec{v})_{B’}= {}_{B’}{T_B}(\vec{v})_{B}$

    如果我们知道 \(B’\)\(B\) 的基向量,我们可以通过将基向量作为列放在 \([B’|B]\) 中并执行初等行变换直到得到 \([I|{}_{B’}{T_B}]\) 来获得过渡矩阵。通常,

    $[new|old]\sim \text{el. row op.}\sim [I|old\to new]$
  • 函数概念如何应用于向量空间?从高中起,我们中的许多人都应该知道函数将一个值映射到另一个值。这可以应用于向量空间。同样,拥有一个可靠的定义总是有益的。我们说 \(T:V\to W\) 是从向量空间 V 到 W 的函数,那么 T 是一个线性变换,如果满足以下标准:a) \(T(k\vec{v})=kT(\vec{v}\) 和 b) \(T(\vec{u}+\vec{v}) = T(\vec{u})+T(\vec{v}\)。能够从一个向量变换到另一个向量的好处是,当将其放入计算机时,我们可以做各种很酷的事情。例如,我们可以反射投影旋转物体。我们还可以收缩扩张向量,这可以用矩阵形式表示。有时,我们可能想同时做两件事,比如反射和旋转,然后,我们将变换矩阵按此顺序相乘:旋转*反射。始终从右到左思考。

内积空间

向量空间概念可以泛化的事实表明,对于在向量空间内部执行的操作也可以进行泛化。

  • 什么是内积空间(实向量空间)?根据定义,这是一个向量空间,其中我们有一个具有以下性质的内积。
    1. \(\langle\vec{u}|\vec{v}\rangle=\langle\vec{v}|\vec{u}\rangle\)
    2. \(\langle\vec{u}|\lambda\vec{v}\rangle=\lambda \langle\vec{u}|\vec{v}\rangle\)
    3. \(\langle\vec{u}|\vec{v} +\vec{w}\rangle= \langle\vec{u}|\vec{v}\rangle \langle\vec{u}|\vec{w}\rangle\)
    4. \(\langle\vec{u}|\vec{u}\rangle \ge 0\) and \(\langle\vec{u}|\vec{u}\rangle = 0 \iff \vec{u}=0\)

    这本质上是 \(\mathbb{R^n}\) 中的点积。泛化的好处是,“某物”不一定需要是 \(\mathbb{R^n}\) 中的才能成为内积空间。例如,我们可以有一个所有连续函数的内积空间(表示为 \(C[a,b]\))。然后,内积定义为

    $\langle f(t)|g(t)\langle\int_a^b f(t)g(t)dt$

    由于多项式是连续函数,因此此定义适用于多项式内积空间。

  • 什么是垂直性(正交性)?在具有内积 \(\langle\vec{u}|\vec{v}\rangle\) 的向量空间中,\(vec{u}\)\(vec{v}\) 之间的角度定义为
    $cos \theta = \frac{{ \langle \vec u|\vec v \rangle }}{{||u||||v||}}$

    柯西-施瓦茨不等式相当有用,它表示为:\(\langle\vec{u}|\vec{v}\rangle^2\le ||\vec{u}||^2||\vec{v}||^2\)

  • 如何将一个向量投影到一个内积空间的子空间上?由于我们有了点积的泛化版本,因此可以泛化将向量投影到子空间上的操作。方法如下:给定 \(W\in V\) 的一个正交基(这一点至关重要),例如 \(\{ {{\vec v}_1} \ldots {{\vec v}_n}\}\),并且 \(\vec{u} \in V\),则
    ${{\mathop{\rm Proj}\nolimits} _W}\vec u = \frac{{ \langle \vec u|{{\vec v}_1} \rangle }}{{||{{\vec v}_1}|{|^2}}}{{\vec v}_1} + \ldots + \frac{{ \langle \vec u|{{\vec v}_n} \rangle }}{{||{{\vec v}_n}|{|^2}}}{{\vec v}_n}$
  • 如何找到一个正交基?请注意,“投影”公式仅在基是正交的时才有效。为了找到一个正交基,我们可以使用格拉姆-施密特过程。
    $\begin{array}{l} {\rm{Step 1: }}{{\vec v}_1} = {{\vec u}_1}\\ {\rm{Step 2: }}{{\vec v}_2} = {{\vec u}_2} – \frac{{ \langle {{\vec u}_2}|{v_1} \rangle }}{{||{{\vec v}_1}|{|^2}}}{{\vec v}_1}\\ {\rm{Step 3: }}{{\vec v}_3} = {u_3} – \frac{{ \langle {{\vec u}_3}|{{\vec v}_1} \rangle }}{{||{{\vec v}_1}|{|^2}}}{{\vec v}_1} – \frac{{ \langle {{\vec u}_3}|{{\vec v}_2} \rangle }}{{||{{\vec v}_2}||}}{{\vec v}_2}\\ \vdots \\ {\text{r times}} \end{array}$

    记住

    $ \vec u = {{\mathop{\rm Proj}\nolimits} _W}\vec u + {{\mathop{\rm Proj}\nolimits} _{{W^{\bot}}}}\vec{u}$
  • 如何找到超定方程组的“最佳”解?一个好的方法是应用最小二乘法。超定方程组出现在科学测量中,因此如果假设误差呈正态分布,我们就可以使用最小二乘法。其思想是考虑方程组的列空间,然后尝试将测量值投影到列空间跨越的平面上。事实证明,最佳解是
    $x = {({A^T}A)^{ – 1}}{A^T}b$

    请记住,并不要求有正交基(即列空间不一定正交)。使用此方法,我们可以将投影公式表示为简单的矩阵乘法

    ${{\mathop{\rm Proj}\nolimits} _L}\vec u = A{({A^T}A)^{ – 1}}{A^T}b$

    一个有趣的性质是,\(A^TA\) 可逆当且仅当 A 的列空间线性独立。

线性变换

我认为瑞典语术语linjär avbildning比仅仅说线性变换传达了更多信息。该术语基本上意思是线性描绘,而这正是本主题的内容。乍一看,这似乎像是从一个基转换为另一个基。我意识到,这并不完全正确。更恰当的看法是将它视为一个将一个值映射到另一个值的函数。由于函数可以是单射、满射、双射,因此并不意味着我们总是能够将变换后的点映射回原始点。相反,在改变基时,总是可以将一个基转换为另一个基;你实际上永远不会引入/删除更多信息。

  • 如何定义线性变换?线性变换 \(A: V\to W\) 应具有以下性质
    1. \( A(\vec {u} + \vec {v})) = A(\vec {u}) + A(\vec {v} \)
    2. \( A(\lambda \vec u) = (\lambda A \vec u) \)
  • 什么是核空间和像空间(值域)?如果你读过我在一般向量空间中写的内容,那么核空间 = 零空间,像空间 = 列空间。
     
  • 示例?定义以下线性变换
    $\begin{array}{l} A(1,2,0) = (1,1,1)\\ A(0,1,2) = (0,1,1)\\ A(1,3,3) = (0,0,1) \end{array}$

    不幸的是,如果我们要用矩阵 A 变换一个向量,这并不是很有用。如果我们想在左侧有标准基向量,那会更容易。因此,与基变换示例类似,我们将它放入一个矩阵,尝试在左侧得到一个单位矩阵。这个方法(马丁方法)是由 Martin Wennerstein 于 2003 年发现的。请参阅该方法的正式解释

  • 复合线性变换的列空间之间的关系?给定 \(B\) 具有满秩,即 \(rank(B)=n\),那么 \(rank(BA)=rank(A\)动机:如果考虑变换 \(BA\) 的意义,这很明显。首先,我们执行变换 \(A\),这将引导我们到 A 的像(\(range(A)\))。也就是说,所有向量都将被映射到 A 的像空间。当执行变换 \(B\) 时,A 的像空间中的所有向量都将使用 B 进行变换。请注意,B 的核是平凡的,即零向量变换为零向量。
     
  • 核空间有什么特别之处?将核空间视为“变换过程中丢失的信息”(KTH 学生)会很有用。例如,如果核空间不仅包含零向量(即它非平凡),那么当我们执行变换时,一些向量将被映射到零向量;因此,“信息”就消失了。
     
  • 什么是单射、满射和双射?\(A:V \to W\)单射(一对一)是指如果 \(\vec x \neq \vec x’ \implies A(\vec x) \neq A (\vec x’)\),即每个向量由一个唯一向量表示(因此我们可以在变换后映射回原始向量)。满射(映上)是指 \(\forall \vec y \in W\exists \vec x \in V:\vec y = A\vec x\),即对于 A 的像中的所有向量,我们都可以将其映射回原始向量。双射是指既是单射又是满射。
     
  • 性质?要使一个函数是单射,核空间的维度必须为零。要使 \(A: V\to W\) 是满射,\(\dim \ker(A) = \dim(W) \)。这可以通过维度定理和满射的定义来证明。

特征值

特征值是 \(A\vec x = \lambda \vec x\) 中的值 lambda。例如,它可以应用于诸如 a) 查找

$ {A^{1000}}\left( \begin{array}{l} 2\\ 1 \end{array} \right) $

已知 A,或 b) 表达 \(2x_1^2+ 2x_2^2+2x_3^2+4x_1x_2\)(参见此处),不带交叉乘积项。后者在识别已旋转/变换的形状时特别有用。

  • 如何找到特征值?只需解 \(\det (A – \lambda I) = 0\),即特征方程。
     
  • 如何找到与特征值对应的特征向量?\((A – \lambda I) (\vec x) = 0\)
     
  • 如何用特征值和特征向量表示矩阵?我们总是可以将矩阵 A 表示为 \(A = PD{P^{ – 1}}\)。如果 P 恰好是正交的(即行/列空间构成一个标准正交基),那么由于正交矩阵的一个性质,即 \(A{A^T} = I\) 或等价地 \({A^{ – 1}} = {A^T}\),我们可以将其表示为 \(A = PD{P^T}\)
     
  • 将矩阵提高到某个幂?可以证明 \({A^k} = P{D^k}{P^{ – 1}}\)
     
  • 将正交对角化应用于二次型?
    $\begin{array}{l} a{x^2} + b{y^2} + c{z^2} + d{x_1}{x_2} + e{x_1}{x_3} + f{x_2}{x_3} = \\ = ({x_1},{x_2},{x_3})\left( {\begin{array}{*{20}{c}} a&{d/2}&{e/2}\\ {d/2}&b&{f/2}\\ {e/2}&{f/2}&c \end{array}} \right)\left( \begin{array}{l} {x_1}\\ {x_2}\\ {x_3} \end{array} \right) \end{array}$

    现在,这可以看作是 \(x^TAx\)。如果我们做一个代换 \(\vec x = P\vec y\),使得 \(P\) 正交对角化 \(A\),那么

    $ {x^T}Ax = {(P\vec y)^T}A(P\vec y) = {y^T}({P^T}AP)y$
  • 正交矩阵?在正交矩阵中,行向量构成一个标准正交基(列向量也一样)。乘以向量 \(x\) 时存在一个有趣的性质
    $||A\vec x ||=||\vec x ||$
    $A\vec x * A \vec y=\vec x* \vec y$

    然后,如前所述,正交矩阵的逆就是其转置(请参阅我的回答以获取可能的应用)。

© . All rights reserved.