zoukankan      html  css  js  c++  java
  • 【线性代数】基本概念

    :学习线性代数也是一个有些漫长的过程。第一次学习线性代数,是大学里的公共课,老师教的简单,学生学得轻松,考试分数也非常好看。但是当我在复习研究生入学考试的时候,才发现自己连线性代数这门学科的大门都没摸到。值得庆幸的是,这个备考阶段,在网易公开课看到了由Prof. Gilbert Strang讲授的线性代数课。按照当时记得笔记,只学习了前面的24节课。最近因为选修了一门与微分方程有关的研究生课程,又一次回过头来复习线性代数的基础知识,发现之前学习过的大部分内容都记不清楚了。但是对Gilbert Strang教授讲课的风格记忆犹新,这样的教学质量对得起世界各地学子对MIT这所名校的向往,也让我坚定了一个信念:如果在花费了很多努力之后,一门课程还是没有学好,很大概率是老师的问题。

    1. 用矩阵解线性方程组


    解多元一次方程组是一个比较好的切入点,用来引入矩阵。例如三元一次方程组的系数,可以表示为行和列都为3的方阵。在解方程组的过程中可以直接对矩阵进行行变换(行的初等变换不改变方程组的解),即矩阵消元,用以化简方程组。矩阵消元的方法主要包括高斯消元法高斯-若尔当消元法。例如:

    egin{eqnarray}
    left{
    egin{array}{1}
    x + 2y + z = 2 \
    3x + 8y +z = 12 \
    4y + z = 2
    end{array}
    ight.
    end{eqnarray}

     用矩阵表示方程组(1)的系数以及等号后面的数值(该矩阵既包括系数有包括等号右边的常数项,也被成为增广矩阵),可以写成:

    egin{bmatrix}
    1 & 2 & 1 & 2 \
    3 & 8 & 1 & 12 \
    0 & 4 & 1 & 2
    end{bmatrix}

     其中,第一、二和三列分别表示方程组(1)中$x, y, z$在三个方程中的系数,第四列表示等式右边的数值。

    对上面的矩阵进行行变换,消元化简之后可以得到一个上三角矩阵(只看系数部分):

    egin{bmatrix}
    1 & 2 & 1 & 2 \
    0 & 2 & -2 & 6 \
    0 & 0 & 5 & -10
    end{bmatrix}

     将化简后的矩阵回带到方程组得到方程组(2),

     egin{eqnarray}
    left{
    egin{array}{2}
    x + 2y + z = 2 \
    2y - 2z = 6 \
    5z = -10
    end{array}
    ight.
    end{eqnarray}

     现在根据方程组(2),就可以方便地解出各个未知数的值。

     为了更方便地表示方程组,通常将系数矩阵记为$mathbf{ A }$,将三个未知数用一个列向量$vec{x} = [x, y, z]^{T}$表示,将等号右边的数值用列向量$vec{b} = [2, 12, 2]^{T}$表示。因此方程组(1)就可以写成:$mathbf{ A } vec{x} = vec{b}$,即:

    [
    egin{bmatrix}
    1 & 2 & 1 \
    3 & 8 & 1 \
    0 & 4 & 1
    end{bmatrix}
    egin{bmatrix}
    x \ y \ z
    end{bmatrix}
    =
    egin{bmatrix}
    2 \ 12 \ 2
    end{bmatrix}
    ]

    多元一次方程组解的几何解释

    对于二元一次方程组,每一个等式都可以表示二维平面($mathbb{R}^2$)上的一条直线,两个方程的解同时位于两条直线上,因此就表示两条直线的在二维平面上的交点。每一个方程相当于增广矩阵中的一行,因此把每一个方程看做是二维平面上的直线也是以行的视角来解释的。

    另一方面,如果从列的角度来说,系数矩阵中的每一列相当于都是二维平面($mathbb{R}^2$)中的一个点,从原点连接其中任意一个点就构成一个二维平面上的一个向量。这时求解方程组的解,就相当于解决如何把两个列向量进行线性组合(拉伸或压缩后相加),使结果等于等号右边数值所组成的列向量。

    对于三元一次方程组,如果以行的视角,方程组的解可以看成是在三维空间中($mathbb{R}^3$)3个平面的交点。以列的视角,参数矩阵中的每一列还是相当于三维空间中的一个点。方程组的解就是在三维空间中三个向量线性组合的系数。

    由此用列向量的视角来解释方程组的解会更简单一些:对于n元一次方程组,就相当于在$mathbb{R}^n$空间中,求n个向量线性组合时每个向量的权重,使得线性组合的结果等于方程组等式右边的数值构成的向量。

    2. 矩阵与向量的乘积


    矩阵可以左乘一个行向量(元素个数与矩阵的行数相同),此时得到的结果相当于矩阵中各行的线性组合。左边行向量中的每个元素可以看做是矩阵中对应行的系数。例如:

    [
    egin{bmatrix}
    1 & 2
    end{bmatrix}
    egin{bmatrix}
    1 & 2 & 1 \
    3 & 8 & 1
    end{bmatrix} =
    1 egin{bmatrix}
    1 & 2 & 1
    end{bmatrix} +
    2 egin{bmatrix}
    3 & 8 & 1
    end{bmatrix}
    ]

     此外,矩阵也可以右乘一个列向量(元素个数与矩阵的列数相同),此时得到的结果相当于矩阵中各列的线性组合。右边列向量中的每个元素可以看做是矩阵中对应列的系数。例如:

    [
    egin{bmatrix}
    1 & 2 & 1 \
    3 & 8 & 1
    end{bmatrix}
    egin{bmatrix}
    1 \ 2 \ 3
    end{bmatrix}
    =
    1 egin{bmatrix}
    1 \ 3
    end{bmatrix} +
    2 egin{bmatrix}
    2 \ 8
    end{bmatrix} +
    3 egin{bmatrix}
    1 \ 1
    end{bmatrix}
    ]

     同理,两个矩阵之间的乘法,也可以看成是左边多个行向量与右边矩阵各行的线性组合,或右边多个列向量与左边矩阵各列的线性组合。

     

     3. 矩阵的种类及性质


    用$m$表示矩阵$mathbf{A}$的行数,用$n$表示矩阵$mathbf{A}$的列数,则矩阵中每个元素可以表示为$a_{i,j}$,其中$i<=m, j<=n$,分别表示该元素所在的行数和列数。

    3.1 矩阵的类型

    • 如果$m=n$该矩阵就是一个方形矩阵(方阵);
    • $n$阶单位矩阵,是一个$n imes n$的方阵,其主对角线元素为1,其余元素为0。单位矩阵以$I_n$表示;如果阶数可忽略,或可由前后文确定的话,也可简记为$mathbf{ I }$(或者$mathbf{ E }$);
    • 对角矩阵(diagonal matrix)是一个主对角线之外的元素皆为0的矩阵。对角线上的元素可以为0或其他值。对于n行n列的对角矩阵$mathbf{ D } = (d_{i,j})$符合以下的性质:$d_{i,j} = 0 mbox{ if } i e j qquad forall i,j in{1, 2, ldots, n}$;

    • 三角矩阵(triangular matrix)是方形矩阵的一种,因其非零系数的排列呈三角形状而得名。三角矩阵分上三角矩阵和下三角矩阵两种。上三角矩阵的对角线左下方的系数全部为零,下三角矩阵的对角线右上方的系数全部为零。三角矩阵可以看做是一般方阵的一种简化情形。

    • 对称矩阵(symmetric matrix)是一个方形矩阵,其转置矩阵和自身相等。即$mathbf{ A }=mathbf{ A }^{ extrm {T}}$.

    3.2 矩阵的性质

    • 矩阵的行空间:由矩阵中包含的行向量构成;
    • 矩阵的列空间:有矩阵中包含的列向量构成;
    • 矩阵的秩:列向量空间的维度,也是相互独立(线性不相关)的列向量的个数,表示由列向量的所有线性组合张成线性空间的维度;

    4. 行列式


    行列式(Determinant),记作$det(A)$或$|A|$,是一个在方块矩阵上计算得到的标量。行列式可以看做是有向面积或体积的概念在一般的欧几里得空间中的推广。在欧几里得空间中,行列式描述的是一个线性变换对“面积或体积”所造成的影响。

    如果我们将矩阵$mathbf{ A }$写成$mathbf{ AI }$,即右乘一个单位矩阵,那么乘积的结果就相当于左边的矩阵$mathbf{ A }$对单位矩阵的变换(拉伸和旋转)。例如下面的例子:这里用$mathbf{ A }$表示单位矩阵(黄色小方块),另一个矩阵为


    egin{bmatrix}
    3 & 2 \
    0 & 2
    end{bmatrix}

    乘积的结果:由两条列向量围成的面积从1变成了6,恰好等于左乘矩阵的行列式的值。

    加入行列式等于0,表示什么呢?如下图所示,行列式等于0,相当于两个列向量是线性相关的,画出来就是共线的。这时候围成的面积也等于0.

     更多例子可观看视频:https://www.youtube.com/watch?v=Ip3X9LOh2dk

     5. 特征值与特征向量


    上文中描述过,矩阵右乘一个列向量(元素个数与矩阵的列数相同),此时得到的结果相当于矩阵中各列的线性组合。矩阵与向量的乘积中,结果的维度保持不变(与向量的维度相同),从图像上来看一个左乘矩阵的作用就是旋转和拉伸该向量。这样的矩阵,只要列数与该向量的个数相等,其它没有任何限制,理论上可以有无数个。

    进一步,假如有一个矩阵使得式子$mathbf{ A }^{ ' } vec{v} = lambda vec{v}$成立,此时矩阵$A'$非常特殊:该矩阵只改变了向量$vec{v}$的长度,不改变该向量的方向(但可能旋转180度),其作用的效果相当于一个标量$lambda$。

    从矩阵$mathbf{ A }^{'}$的角度来说,此时的向量$vec{v}$就是该矩阵的特征向量,等式右边的标量$lambda$就是该矩阵的特征值。

    知乎用户李浩对“如何理解矩阵特征值?”这个问题有非常精彩的回答:https://www.zhihu.com/question/21874816/answer/19592526

    reference

    https://open.163.com/newview/movie/courseintro?newurl=%2Fspecial%2Fopencourse%2Fdaishu.html

    https://zh.wikipedia.org/wiki/%E9%AB%98%E6%96%AF%E6%B6%88%E5%8E%BB%E6%B3%95

    https://zh.wikipedia.org/wiki/%E9%AB%98%E6%96%AF-%E8%8B%A5%E7%88%BE%E7%95%B6%E6%B6%88%E5%85%83%E6%B3%95

    https://zhuanlan.zhihu.com/p/25583527

    https://zh.wikipedia.org/wiki/%E5%96%AE%E4%BD%8D%E7%9F%A9%E9%99%A3

    https://zh.wikipedia.org/wiki/%E5%B0%8D%E8%A7%92%E7%9F%A9%E9%99%A3

    https://zh.wikipedia.org/wiki/%E4%B8%89%E8%A7%92%E7%9F%A9%E9%98%B5

    https://zh.wikipedia.org/wiki/%E8%A1%8C%E5%88%97%E5%BC%8F

    https://www.youtube.com/watch?v=Ip3X9LOh2dk

    https://www.zhihu.com/question/21874816/answer/19592526
     

  • 相关阅读:
    Python 用 matplotlib 中的 plot 画图
    python--serial串口通信
    verilog,vhdl,bdf文件一起综合
    项目小笔记2--qt designer 修改字体,部件拖入layout,引用time模块延时,正则表达式判断输入,进制转换,部件固定大小,graphics view显示图片,消息提示框使用
    虚拟环境下通过pyinstaller 打包
    FPGA--IIC通信
    FPGA--SPI通信
    verilog 语法
    【C_Language】---队列和栈的C程序实现
    【C_Language】---C文件学习
  • 原文地址:https://www.cnblogs.com/Belter/p/15388828.html
Copyright © 2011-2022 走看看