文章目录

  • 线性代数中的线性方程组
    • 1 线性方程组
      • 1.1 什么是线性方程组
      • 1.2 线性方程组的矩阵记号
      • 1.3 解线性方程组
        • 1.3.1 初等行变换
        • 1.3.2 行化简与阶梯形矩阵
        • 1.3.3 主元位置
        • 1.3.4 行化简算法
        • 1.3.5 线性方程组的解
        • 1.3.5 解的存在性与唯一性

线性代数中的线性方程组

  线性代数作为数学中的一门重要的学科,应用于各个行业中。对于机器学习来说,也是非常重要的一门基础学科。
  历史上线性代数的第一个问题是关于解线性方程组的问题,而线性方程组理论的发展又促成了作为工具的矩阵论和行列式理论的创立与发展。

1 线性方程组

1.1 什么是线性方程组

  首先来看什么是线性方程,线性方程是包含变量x1,x2,⋯,xnx_1,x_2,\cdots,x_nx1​,x2​,⋯,xn​形如:
a1x1+a2x2+⋯+anxn=ba_1x_1+a_2x_2+\cdots+a_nx_n=ba1​x1​+a2​x2​+⋯+an​xn​=b
的方程,其中的bbb和系数a1,a2,⋯,ana_1,a_2,\cdots,a_na1​,a2​,⋯,an​是实数或复数,通常是已知数。那么线性方程组,从名字就可以看出来,它是由一个或几个包含相同变量x1,x2,⋯,xnx_1,x_2,\cdots,x_nx1​,x2​,⋯,xn​的线性方程组成的。线性方程组的解是一组数(s1,s2,⋯,sn)(s_1,s_2,\cdots,s_n)(s1​,s2​,⋯,sn​),方程组所有的解的集合称为线性方程组的解集,若两个线性方程组具有相同的解集,则说这两个线性方程组是等价的。
  线性方程组的解有不同的情况,回想我们小时候学过的二元一次方程组,那就是含有两个变量的线性方程组,二元一次方程组可能有解可能无解,也可能有无穷多个解,进一步我们的线性方程组的解有三种情况:

1.无解
2.有唯一解
3.有无穷多解

如果一个线性方程组有一个解或无穷多个解,我们称该线性方程组是相容的,反正若无解,则称之为不相容的。

1.2 线性方程组的矩阵记号

  一个线性方程组包含的信息可以用一个矩阵来表示,任意给出一个方程组(这里给出一个包含3个变量3个线性方程的线性方程组一般形式):
{a1x+b1y+c1z=d1a2x+b2y+c2z=d2a3x+b3y+c3z=d3\left \{ \begin{array}{c} a_1x+b_1y+c_1z=d_1 \\ a_2x+b_2y+c_2z=d_2 \\ a_3x+b_3y+c_3z=d_3 \end{array} \right. ⎩⎨⎧​a1​x+b1​y+c1​z=d1​a2​x+b2​y+c2​z=d2​a3​x+b3​y+c3​z=d3​​
我们把每一个变量的系数写在对齐(这些系数是可以为0的)的一列中:
[a1b1c1a2b2c2a3b3c3]\begin{bmatrix} a_1 & b_1 & c_1 \\ a_2 & b_2 & c_2 \\ a_3 & b_3 & c_3 \\ \end{bmatrix} ⎣⎡​a1​a2​a3​​b1​b2​b3​​c1​c2​c3​​⎦⎤​
这个矩阵就称为线性方程组的系数矩阵,如果将等号右边的数也加进来,那就会变成下面这样的矩阵:
[a1b1c1d1a2b2c2d2a3b3c3d3]\begin{bmatrix} a_1 & b_1 & c_1 & d_1\\ a_2 & b_2 & c_2 & d_2\\ a_3 & b_3 & c_3 & d_3\\ \end{bmatrix} ⎣⎡​a1​a2​a3​​b1​b2​b3​​c1​c2​c3​​d1​d2​d3​​⎦⎤​
这样的矩阵称为线性方程组的增广矩阵。

1.3 解线性方程组

1.3.1 初等行变换

  前面介绍了什么是线性方程组,以及线性方程组的矩阵表示形式,现在有了这些符号化的表示后,我们就可以很好地对线性方程组进行求解,这也是我们想要解决的问题。
  初等行变换是我们利用增广矩阵求解线性方程组的重要手段,它包含以下几种基本操作:

  1. (倍加变换)把某一行换成它本身与另一行的倍数的和(把某一行的倍数加到另一行上)
  2. (对换变换)把两行对换。
  3. (倍乘变换)把某一行的所有元素乘以同一个非零数。

需要注意的是,初等行变换可以用于任何矩阵,不仅限于线性方程组的增广矩阵,如果一个矩阵可以经过初等行变换到另一个矩阵,我们称这两个矩阵是行等价的,进一步我们可以推出如果两个线性方程组的增广矩阵是行等价的,则它们具有相同的解集。
  说了这么多还没讲如何利用初等行变换求解,其实初等行变换我们小时候同样做过,只不过不是这么专业的术语,回想一下小时候解二元一次方程组,我们使用消元的方法,只剩下一个变量,求解之后再带入,我们消元使用的方法在矩阵上看其实就是初等行变换。

1.3.2 行化简与阶梯形矩阵

  我们对增广矩阵进行初等行变换成什么样子才能求解呢?我们首先来什么是看阶梯型矩阵。一个矩阵称为阶梯形(或行阶梯形)需要满足的性质如下:

  1. 每一非零行都在每一非零行之上。(非零行/列指矩阵中至少包含一个非零元素的行/列)
  2. 某一行的先导元素所在列位于前一行先导元素的右边。(先导元素是指每一行最左边非零的元素)
  3. 某一行的先导元素所在列的下方元素都是0。

进一步,如果阶梯形矩阵还满足以下性质,则称它为简化阶梯形(或简化行阶梯形):

  1. .每一非零行的先导元素是1
  2. 每一先导元素1是该元素所在列的唯一非零元素

  任何非零矩阵都可以行化简(即用初等行变换)变为阶梯形矩阵,使用不同的方法可以化为不同的阶梯形矩阵,但是需要注意的是,一个矩阵只能化为唯一的简化阶梯形矩阵,证明就略了,有兴趣可以查阅相关资料。
  定理 1:每个矩阵行等价于唯一的简化阶梯形矩阵
  若矩阵AAA行等价于矩阵UUU,则称UUU为AAA的阶梯形,若UUU为简化阶梯形,则称UUU为AAA的简化阶梯形。大部分矩阵程序用RREF作为(行)简化阶梯形的缩写,有些用REF作为(行)阶梯形的缩写。
  下面给出了阶梯形矩阵的样子:
[x∗∗∗0x∗∗00000000][0x∗∗∗∗∗∗000x∗∗∗∗0000x∗∗∗000000x∗]\begin{bmatrix} x & * & * & *\\ 0 & x & * & * \\ 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 \end{bmatrix}\\ \begin{bmatrix} 0 & x & * & * & * & * & * & *\\ 0 & 0 & 0 & x & * & * & * & * \\ 0 & 0 & 0 & 0 & x & * & * & *\\ 0 & 0 & 0 & 0 & 0 & 0 & x & * \end{bmatrix} ⎣⎢⎢⎡​x000​∗x00​∗∗00​∗∗00​⎦⎥⎥⎤​⎣⎢⎢⎡​0000​x000​∗000​∗x00​∗∗x0​∗∗∗0​∗∗∗x​∗∗∗∗​⎦⎥⎥⎤​
其中xxx是先导元素,它们是任意非0的值,∗*∗所在的元素可以取任意值,简化阶梯形的样子如下,对应于上面给出的性质:
[10∗∗01∗∗00000000][01∗00∗0∗00010∗0∗00001∗0∗0000001∗]\begin{bmatrix} 1 & 0 & * & *\\ 0 & 1 & * & * \\ 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 \end{bmatrix}\\ \begin{bmatrix} 0 & 1 & * & 0 & 0 & * & 0 & *\\ 0 & 0 & 0 & 1 & 0 & * & 0 & * \\ 0 & 0 & 0 & 0 & 1 & * & 0 & *\\ 0 & 0 & 0 & 0 & 0 & 0 & 1 & * \end{bmatrix} ⎣⎢⎢⎡​1000​0100​∗∗00​∗∗00​⎦⎥⎥⎤​⎣⎢⎢⎡​0000​1000​∗000​0100​0010​∗∗∗0​0001​∗∗∗∗​⎦⎥⎥⎤​

1.3.3 主元位置

  当矩阵经行变换化为阶梯形后,经过进一步的行变换将矩阵化为简化阶梯形时,先导元素的位置并不改变。因为简化阶梯形是唯一的,故,当给定矩阵化为任何一个阶梯形时,先导元素总是在相同的位置上。这些先导元素对应于接话阶梯形中的先导元素1.
  为此,定义了主元位置:矩阵中的主元位置是A对应于它的阶梯形中先导元素1的位置。主元列是A的含有主元位置的列。我们还是来看阶梯形的一般形式,假设一个矩阵经过行化简到如下的阶梯形形式:
[x∗∗∗0x∗∗00x∗0000]\begin{bmatrix} x & * & * & *\\ 0 & x & * & * \\ 0 & 0 & x & * \\ 0 & 0 & 0 & 0 \end{bmatrix}\\ ⎣⎢⎢⎡​x000​∗x00​∗∗x0​∗∗∗0​⎦⎥⎥⎤​
其中xxx所在的位置就是矩阵的主元位置,xxx所在的列就是矩阵的主元列。

1.3.4 行化简算法

  现在让我们看如何讲一个矩阵经过初等行变换产生阶梯形,并进一步化为简化阶梯形。行化简算法步骤:

  1. 由最左的非零列开始,这是一个主元列,主元位置在该列顶端
  2. 在主元列中选取一个非零元素作为主元,若有必要的话,对换两行使这两个元素移到主元位置上
  3. 用倍加行变换将主元下面的元素变成0
  4. 暂时不管包含主元位置的行以及它上面的各行,对剩下的子矩阵使用上述的三个步骤直到没有非零行需要处理位置
  5. 由最右边的主元开始,把每个主元上方的各元素变成0。若某个主元不是1,则用倍乘变换将它变成1

其中步骤1-4称为行化简算法的向前步骤,产生简化阶梯形的步骤5称为向后步骤。
  综合前面的内容,给出一个例子,行化简下面矩阵为简化阶梯形:
[03−664−53−78−5893−912−9615]\begin{bmatrix} 0 & 3 & -6 & 6 & 4 & -5 \\ 3 & -7 & 8 & -5 & 8 & 9 \\ 3 & -9 & 12 & -9 & 6 & 15 \end{bmatrix} ⎣⎡​033​3−7−9​−6812​6−5−9​486​−5915​⎦⎤​
首先进行步骤1,最左边的非零列就是一个主元列,然后进行步骤2,我们选择一个非零元素作为主元,对换一下位置变为:
[3−912−96153−78−58903−664−5]\begin{bmatrix} 3 & -9 & 12 & -9 & 6 & 15 \\ 3 & -7 & 8 & -5 & 8 & 9 \\ 0 & 3 & -6 & 6 & 4 & -5 \end{bmatrix} ⎣⎡​330​−9−73​128−6​−9−56​684​159−5​⎦⎤​
进行步骤3,主元下面的元素全变为0,我们这里将行2变为行2减1,得到:
[3−912−961502−442−603−664−5]\begin{bmatrix} 3 & -9 & 12 & -9 & 6 & 15 \\ 0 & 2 & -4 & 4 & 2 & -6 \\ 0 & 3 & -6 & 6 & 4 & -5 \end{bmatrix} ⎣⎡​300​−923​12−4−6​−946​624​15−6−5​⎦⎤​
进行步骤4,将除去行1的子矩阵进行步骤1、2、3最后我们得到:
[3−912−961502−442−6000014]\begin{bmatrix} 3 & -9 & 12 & -9 & 6 & 15 \\ 0 & 2 & -4 & 4 & 2 & -6 \\ 0 & 0 & 0 & 0 & 1 & 4 \end{bmatrix} ⎣⎡​300​−920​12−40​−940​621​15−64​⎦⎤​
现在化为了阶梯形,进行步骤5变换为简化阶梯形,首先行1减去6倍的行3,行2减去6倍的行3,变换为:
[3−912−90−902−440−14000014]\begin{bmatrix} 3 & -9 & 12 & -9 & 0 & -9 \\ 0 & 2 & -4 & 4 & 0 & -14 \\ 0 & 0 & 0 & 0 & 1 & 4 \end{bmatrix} ⎣⎡​300​−920​12−40​−940​001​−9−144​⎦⎤​
然后行2除以2得到:
[3−912−90−901−220−7000014]\begin{bmatrix} 3 & -9 & 12 & -9 & 0 & -9 \\ 0 & 1 & -2 & 2 & 0 & -7 \\ 0 & 0 & 0 & 0 & 1 & 4 \end{bmatrix} ⎣⎡​300​−910​12−20​−920​001​−9−74​⎦⎤​
第行1加上9倍的行2得到:
[30−690−7201−220−7000014]\begin{bmatrix} 3 & 0 & -6 & 9 & 0 & -72 \\ 0 & 1 & -2 & 2 & 0 & -7 \\ 0 & 0 & 0 & 0 & 1 & 4 \end{bmatrix} ⎣⎡​300​010​−6−20​920​001​−72−74​⎦⎤​
最后行1除以3得到简化阶梯形:
[10−230−2401−220−7000014]\begin{bmatrix} 1 & 0 & -2 & 3 & 0 & -24 \\ 0 & 1 & -2 & 2 & 0 & -7 \\ 0 & 0 & 0 & 0 & 1 & 4 \end{bmatrix} ⎣⎡​100​010​−2−20​320​001​−24−74​⎦⎤​

1.3.5 线性方程组的解

  对矩阵的操作都已知晓,我们回到1.3.2节提出的问题,我们需要将线性方程组的增广矩阵通过行化简算法变换为简化阶梯形,这便可以求得线性方程组的解集的一种显示表示法。将增广矩阵转换为简化阶梯形后,对应于主元列的变量称为基本变量,其他变量称为自由变量。只要线性方程组是相容的,那么其解集就可以显示表示,只需要把方程的简化形式解出来,再用自由变量表示基本变量即可。
  我们假设我们上一节的例子是一个增广矩阵,变换为简化阶梯形后:
[10−230−2401−220−7000014]\begin{bmatrix} 1 & 0 & -2 & 3 & 0 & -24 \\ 0 & 1 & -2 & 2 & 0 & -7 \\ 0 & 0 & 0 & 0 & 1 & 4 \end{bmatrix} ⎣⎡​100​010​−2−20​320​001​−24−74​⎦⎤​
x1,x2,x5x_1,x_2,x_5x1​,x2​,x5​为基本变量,x3,x4x_3,x_4x3​,x4​为自由变量,因此我们得到了线性方程组的通解:
{x1=−24−3x4+2x3x2=−7−2x4+23x3是自由变量x4是自由变量x5=4\begin{cases} x_1 = -24-3x_4+2x_3\\ x_2 = -7 -2x_4 +2_3\\ x_3是自由变量\\ x_4是自由变量\\ x_5=4 \end{cases} ⎩⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎧​x1​=−24−3x4​+2x3​x2​=−7−2x4​+23​x3​是自由变量x4​是自由变量x5​=4​

1.3.5 解的存在性与唯一性

  前面已经提到,线性方程组的解有三种可能,那我们如何判断线性方程组的解是哪一种情况呢,我们尝试通过观察增广矩阵的阶梯形来找到答案。还是看上述例子得到的阶梯形:
[3−912−961502−442−6000014]\begin{bmatrix} 3 & -9 & 12 & -9 & 6 & 15 \\ 0 & 2 & -4 & 4 & 2 & -6 \\ 0 & 0 & 0 & 0 & 1 & 4 \end{bmatrix} ⎣⎡​300​−920​12−40​−940​621​15−64​⎦⎤​
我们通过将这个阶梯形变换为简化阶梯形得到了方程组的通解,自由变量的存在让解变得不唯一。现在假如,我们变换一个增广矩阵的阶梯形到如下形式:
[3−912−961502−442−6000004]\begin{bmatrix} 3 & -9 & 12 & -9 & 6 & 15 \\ 0 & 2 & -4 & 4 & 2 & -6 \\ 0 & 0 & 0 & 0 & 0 & 4 \end{bmatrix} ⎣⎡​300​−920​12−40​−940​620​15−64​⎦⎤​
你会发现这个增广矩阵的最后一行出现了一些问题,如果我们将这最后一行代入回去会得到0=40=40=4这样的奇怪等式,这时候我们便会发现这个方程组是无解的。如果某一个增广矩阵的阶梯形化为这样的形式:
[3−9121502−4−60014]\begin{bmatrix} 3 & -9 & 12 & 15 \\ 0 & 2 & -4 & -6 \\ 0 & 0 & 1 & 4 \end{bmatrix} ⎣⎡​300​−920​12−41​15−64​⎦⎤​
你会发现方程组只存在唯一解,因为没有自由变量了。综上所述,我们对解的存在性和唯一性给出了形式化的描述:
  定理2:线性方程组相容的充要条件是增广矩阵的最右列不是主元列,即增广矩阵的阶梯形没有形如:[00⋯0b],b≠0[0 \ 0 \cdots 0 \ b],b\ne0[0 0⋯0 b],b​=0的行。若线性方程组相容,则它的解集有两种可能:(1)当没有自由变量时,有唯一解;(2)若至少有一个自由变量,则有无穷多解

参考资料:《线性代数及其应用》David C.Lay

线性代数中的线性方程组相关推荐

  1. 1.7 线性无关(第1章 线性代数中的线性方程组)

    内容概述 本节首先从向量的代数关系出发,引入了向量组的线性无关.线性相关两个重要的概念:接着,以递进的方式,首先研究了一个或两个向量之间的关系,引入一些判断向量关系的方法,例如通过观察法来判定两个向量 ...

  2. #数理基础# 线性代数及其应用 第一章 线性代数中的线性方程组

    1.1 线性方程组 包含变量 x1,x2,...,xn 的线性方程是形如 a1x1+a2x2+···+anxn=b 的方程. 若两个线性方程组有相同的解集,则这两个线性方程组称为等价的. 若一个线性方 ...

  3. Python在高等数学和线性代数中的应用

    Python在高等数学和线性代数中的应用 科学运算设计数值运算和符号运算,数值运算可以使用Numpy库和Scipy库,符号运算则可以使用Sympy工具库,数值计算的表达式.矩阵变量中不允许有未定义的自 ...

  4. matlab在线性代数中的应用开题报告,矩阵应用开题报告.doc

    矩阵应用开题报告 山西大同大学 09 届本科毕业论文(设计)开题报告及任务书学院:数计学院 系别:数学系 专业(专业方向):数学与应用数学 论文题目矩阵的秩及其应用指导教师施智杰职称讲师学生姓名靳倩学 ...

  5. 阐述矩阵初等变换方法在线性代数中的应用

    阐述矩阵初等变换方法在线性代数中的应用. 解:(1)矩阵初等变换的定义: 矩阵的初等变换包括矩阵的初等行变化与初等列变换.矩阵的初等行(列)变换:(1)对调矩阵的两行(列):(2)矩阵的某行(列)所有 ...

  6. [Math][Algebra]--线性代数中的各种空间

    文章目录 线性代数中的各种空间 1.几个比较好的资源 线性代数中的各种空间 1.几个比较好的资源 深刻理解各种空间 csdn 如何理解各个空间 csdn

  7. MATLAB(五)在线性代数中的应用

    MATLAB在线性代数中的应用 (一)向量组的线性相关性 求列向量组A的一个最大线性无关组,可用命令rref(A)将A化成行最简形,其中单位向量对应的列向量即为最大线性无关组所含向量,其他列向量的坐标 ...

  8. 线性代数中的矩阵运算P(A,E)是什么意思?

    线性代数中的矩阵运算P(A,E)是什么意思?此知识点是矩阵初等变换那个章节的内容(请对号入座)!!!!! PA=B,PE=P. 好好想想AE都为n阶方针,同时对其施加初等行变换会怎么办? 而这个p呢就 ...

  9. 三阶行列式的题目_考研数学 | 线性代数中的行列式重难点分析

    巧儿姐姐叨一叨 线性代数是考研高数试卷中的一个重要组成部分,大约占整个试卷中22%的比例.据历年的考察情形来看,线代的题型变化不大,比较容易拿分.这样也就要求大家在线性代数的地方一定要把该拿的分拿到! ...

  10. 线性代数中两个向量相乘_加两个向量| Python的线性代数

    线性代数中两个向量相乘 Prerequisite: Linear Algebra | Defining a Vector 先决条件: 线性代数| 定义向量 In the python code, we ...

最新文章

  1. 【云栖大会】人工智能:智,在云端
  2. MySQL——开窗函数
  3. kafka 可视化工具_两小时带你轻松实战SpringBoot+kafka+ELK分布式日志收集
  4. 应用程序已被java 1.6_Apple Java更新1.6.0_51之后,Swing应用程序卡住了
  5. 为什么大公司一定要使用 DevOps?
  6. 趣学 C 语言(三)—— 琐碎
  7. 【置顶】数字全息干涉测量技术研究现状
  8. 云计算技术简述及发展分析
  9. Shell 脚本:DDNS for aliyun
  10. 公众号1000篇文章数据统计
  11. 数据库第一天 TAT
  12. 薅资本主义羊毛,用Google免费GPU
  13. python3入门级爬虫-淘女郎网站爬取
  14. Dreamweaver中如何调整同行图片的距离
  15. CAS4.0.0整合LDAP
  16. c# 陈景润 15 子问题
  17. 将docker镜像推送到阿里云镜像仓库
  18. 电子邮件的POP3/SMTP/IMAP服务
  19. java实现两人对战的五子棋游戏
  20. 软件测试经验与教训-读后感

热门文章

  1. 用UWP模仿网易云音乐的动画
  2. 通过双网卡电脑将网络共享到路由器
  3. 卷积神经网络结构相关
  4. 最通俗易懂的网络安全防护原则之进不来、拿不走、看不懂、改不了、跑不掉。
  5. Julia两天极速入门学习笔记
  6. Unity使用脚本动态修改材质球的颜色
  7. 什么是工业物联网网关?
  8. PS制作华丽的紫色立体字
  9. 【Asan】工欲善其事必先利其器——AddressSanitizer
  10. PHP的strtolower()和strtoupper()函数在安装非中文系统的服务器下可能会将汉字转换为乱码