zoukankan      html  css  js  c++  java
  • 线性代数(笔记二) MIT公开课(来源网易云课堂)

    线性代数(笔记二)

    课程来源:网易云课堂学习计划(课程链接)

    作者简述:作者为一名正在读研的学生,自己的数学状态较差。本科期间所学均能算跟得上,而且通过自己的努力经过了研究生考试。但是对数学的理解并不透彻,只是根据课上所学去做题而已。如今科研中,许多过程均需要用到所学的数学知识,然而一个好的理解和一个扎实的基础才是科研之本。数学虽然是作为一种工具,如果不了解含义,无论是是使用上还是在其基础之上进行修改均显得支支吾吾。于是决定重新学习线性代数相关知识,并做此笔记以供复习或和他人分享。

    用途:此系列文章均是作者在课上所学及其自己相关的数学思想所做的笔记,如有理解错误之处还望大家指出。本系列文章均可不咨询情况下任意转载和学习(不可商用)。

    作者研究方向为机器学习,如果有相同方向的小伙伴想一起学习,请加QQ123854340(备注来源博客),如果人数较多还可能建群。同时发现文章中有错误之处也请发邮件到123854340@qq.com


        上节课中,我们通过求解方程组,引入了方程组的矩阵形式。并且对于两种不同的表示方式,给出了其几何意义。其次又通过以列的表示方式引入了线性组合。(详见笔记一)本节课中我们主要以消元为主而展开。

     

    一、消元

            消元对于我们大多数人来说都很熟悉,对于一个方程组求解的过程中,我们经常会使用(计算机也是通过这种方式求解)。对于不同的方程组,有些可以消元求解,而有些不可以。所以这里消元有成功和失败两种情况,下面我们看一种消元成功的例子。

    image

    我们取其系数矩阵为:

    image

          下面我们以求解方程组的形式进行消元(从上向下消元),首先我们找到我们第一个要消去的变元x,其在第一个方程中的系数为a11 = 1。如果想用其消去第二个方程及第三个方程中的x,则需要扩大相应的倍数并相减。(这里我们把第一行扩大3倍,再用第二行减去扩大后的结果,以下操作均类似)

    经过如上操作所得到的系数矩阵为:

    image

          然后继续找到第二个要消除的变元y,其在第二个方程中的系数为a22 = 2。再次向下消元得系数矩阵为:

    image

            至此消元结束,在消元过程中我们选取消去变元的系数,我们称之为主元。(主元分别为1,2,5)对于给定方程组消元进行的很顺利,然而并不是所有的方程组都如此。下面考虑两种失败的情况:

          1、当在消元过程中寻找到的主元为0,则无法扩大倍数向下消元,此时需要向下交换两个方程组。对应系数矩阵,称之为换行,这个我们也很熟悉,只是更换了两个方程的顺序。

          例如:把第一个矩阵中的8改为6,则经过第一次消元后,主元出现为0。不过幸好其下一行出现不为0的系数,则可作出更换。

          2、当出现无法换行的情况。

          例如:把第一个矩阵中的a33 = 1,改为-4.则经过第二次消元后。第三行均为0此时,第三个主元为0,由于是最后一行又无法换行,所以消元失败且这种情况方程组是无解的。

    二、回代

          在方程组进行消元后,想要求出其解还需进行回代这一步。为了表示方便我们仍然使用系数矩阵,同时在这里引入新的矩阵为增广矩阵。引入增广矩阵的目的是为了使Ax = b中的b也随着系数矩阵的变换而变换,从而实现回代。

    如下为该方程组的系数矩阵和增广矩阵:

    imageimage

    经过多次消元变换增广矩阵的变换过程如下:

    imageimageimage

    由最后变换得到的增广矩阵可写出方程形式如下:

    通过方程现有形式,我们很容易的求出z = -2,然后利用z = -2求出y = 1,再利用z = -2、y = 1求出x = 2。整个向上的代入求解过程即为回代。

    三、以矩阵形式进行消元变换

          上述所有描述均以求解方程组的形式(用系数矩阵仅仅为了方便表示)而表述的,那么如何利用矩阵的形式进行表述呢?下面我们来看这个很重要的问题。

          在上篇文章中我们所讲过以列的形式去计算矩阵和向量的乘积,我们把其过程看成矩阵的N列的线性组合。那么当向量和矩阵的乘积如何计算?表示的又是什么意义呢?

    如下:

    image

    我们可以看成如下形式:

    image

    即矩阵N行的线性组合,组合的系数为向量的分量。

    其结果如下图:

    image

    那么当左边为2*3的矩阵呢?我们可以视为两个向量。如下:

    image

    由上述推导出其计算过程如下:

    image

    image

    即矩阵N行的线性组合,组合系数分别为两个向量的分量(这里的2*3矩阵我们看成两个行向量)。

           那么根据这个求解过程我们能发现一个规律,如果矩阵和矩阵相乘可以看做向量和矩阵相乘,继而看做矩阵行的线性组合,那么我们就可以将一个矩阵左乘另外一个矩阵而使其变换到我们想要的矩阵。则左侧的矩阵可以理解为一种变换。例如:在我们利用求解方程组的形式进行第一次消元的时候,我们用第二列减去第一列的三倍,那么这个过程用矩阵如何实现?我们是否可以找到一种变换使得系数矩阵1经过这次变换而成为系数矩阵2?(如下图)

    image

    这个用于变换的矩阵是多少?怎么得出呢?如果认真推导了如上的过程,你会很容易求出这个矩阵。(值得仔细思考)

    image

          这个对于我们线性代数的书中所说的左乘初等矩阵(这里的就是A)相当于行变换做出了直观的解释!想想上节中提到的列的形式就是右乘初等矩阵相当于列变换。想想这么多年之后弄懂了道理才感觉到这个定理还是十分好背的。由这个我们很容易求出下一个用于消元变换的矩阵。(第一个我们称为E21,第二个称为E32)E21的结果如下:

    image

    那么整个的消元过程变成矩阵相乘的形式,我们可以这样表示E32*E21*B = C(C是结果数组)。这样的话消元是否显得十分简洁了呢?而且我们还可以由矩阵的结合律先将E32*E21算出来而形成一个变换A直接将B变成C(A*B = C)。而相对于这个问题,我们可能又会问是否经过一种变换D将C变回B呢?那么这种变换D和变换A的关系是什么样的呢?那我们就在下节课中说吧。

  • 相关阅读:
    git学习(一)
    访问注解(annotation)的几种常见方法
    对于元数据的理解
    常用注解介绍
    深入理解Java的接口和抽象类
    POI依据类型设置导出格式
    java泛型
    java 向上转型和向下转型
    cell设置背景颜色为啥不起作用
    Java反射获取对象VO的属性值(通过Getter方法)
  • 原文地址:https://www.cnblogs.com/pfdm/p/LA2.html
Copyright © 2011-2022 走看看