求解Ax=0:主变量、特解

求零空间(Nullspace)

矩阵 \(A\) 的零空间即满足 \(Ax=0\) 的所有构成 \(x\) 的向量空间。

对于矩阵 \(A\) 进行“行操作”并不会改变 \(Ax=0\) 的解,因此也不会改变零空间。(但是会改变列空间。)因为等号右侧的向量\(b=0\),因此不需要应用增广矩阵。

通过消元法,将 \(A\) 化为行阶梯矩阵 \(U\) ,过程如下:

\[A= \begin{bmatrix} 1 & 2 & 2 & 2\\ 2 & 4 & 6 & 8\\ 3 & 6 & 8 & 10\\ \end{bmatrix} \underrightarrow{消元} \begin{bmatrix} \underline{1} & 2 & 2 & 2\\ 0 & 0 & \underline{2} & 4\\ 0 & 0 & 0 & 0\\ \end{bmatrix} =U \]

矩阵的秩(rank)就是矩阵的主元的个数。

主变量(pivot variable,下划线元素)的个数为2。

矩阵的秩(rank)就是矩阵的主元的个数,即矩阵 \(A\) 和矩阵 \(U\) 的秩(rank)为2,即\(r=2\)。

主变量所在的列为主列(pivot column),其余列为自由列(free column)

自由列中的变量为自由变量(free variable),自由变量的个数为\(n-r=4-2=2\)。

求特解

当我们将系数矩阵变换为行阶梯矩阵 \(U\) 时,就可以用回代求得方程 \(Ux=0\) 的解。

即:

\[\begin{bmatrix} \underline{1} & 2 & 2 & 2\\ 0 & 0 & \underline{2} & 4\\ 0 & 0 & 0 & 0\\ \end{bmatrix} \begin{bmatrix} x_1\\ x_2\\ x_3\\ x_4\\ \end{bmatrix} =\begin{bmatrix} 0\\ 0\\ 0\\ \end{bmatrix}\]

在本例中,包含主元的矩阵第1列和第3列为主元列,而不包含主元的第2列和第4列为自由列。

对自由变量(free variable)x2和x4我们可以进行赋值。(方法是自由变量一次一个1,其他全0)。

\(Ux=0\) 可以表示为(使用矩阵乘法展开):\(\begin{cases}2x_3+4x_4=0\\ x_1+2x_2+2x_3+2x_4=0\end{cases}\)

令\(x_2=1, x_4=0\),求得特解:\(x=c_1\begin{bmatrix}-2\\1\\0\\0\\\end{bmatrix}\);

令\(x_2=0, x_4=1\),求得特解:\(x=c_2\begin{bmatrix}2\\0\\-2\\1\\\end{bmatrix}\);

矩阵 \(A\) 的零空间就是这些“特解”向量的线性组合所构成的向量空间,即\(c_1\begin{bmatrix}-2\\1\\0\\0\\\end{bmatrix}+c_2\begin{bmatrix}2\\0\\-2\\1\\\end{bmatrix}\)。

主元列和自由列的一个重要区别就是,自由列可以表示为其左侧所有主元列的线性组合,而主元列则不可以。

\[\begin{bmatrix} \underline{*} & * & * & *\\ 0 & 0 & \underline{*} & *\\ 0 & 0 & 0 & \underline{*}\\ \end{bmatrix}\]

行最简阶梯矩阵

可以将 \(U\) 进一步简化,即将\(U\)矩阵化简为\(R\)矩阵(Reduced row echelon form),即简化行阶梯形式。

在简化行阶梯形式中,主元上下的元素都是\(0\)

\[U=\begin{bmatrix}\underline{1} & 2 & 2 & 2\\0 & 0 & \underline{2} & 4\\0 & 0 & 0 & 0\\\end{bmatrix}\underrightarrow{化简}\begin{bmatrix}\underline{1} & 2 & 0 & -2\\0 & 0 & \underline{1} & 2\\0 & 0 & 0 & 0\\\end{bmatrix}=R \]

将\(R\)矩阵中的主变量放在一起,自由变量放在一起(列交换),得到:

\[R= \begin{bmatrix} \underline{1} & 2 & 0 & -2\\ 0 & 0 & \underline{1} & 2\\ 0 & 0 & 0 & 0\\ \end{bmatrix} \underrightarrow{列交换} \left[ \begin{array}{c c | c c} 1 & 0 & 2 & -2\\ 0 & 1 & 0 & 2\\ \hline 0 & 0 & 0 & 0\\ \end{array} \right] = \begin{bmatrix} I & F \\ 0 & 0 \\ \end{bmatrix} \textrm{,其中}I\textrm{为单位矩阵,}F\textrm{为自由变量组成的矩阵} \]

计算零空间矩阵\(N\)(nullspace matrix),其列为特解,有\(RN=0\)。

原方程 \(Ax=0\) 变为求解 \(R\) 的主元行乘以 \(x\),\(\begin{bmatrix} I & F \\ \end{bmatrix} \begin{bmatrix} x_{pivot} \\ x_{free} \\ \end{bmatrix}=0\)。

将 \(Ax=0\) 的特解作为列向量写成一个矩阵 \(N\),即零空间矩阵,\(N=\begin{bmatrix} \;\\ I\\ \end{bmatrix}\)。

从矩阵分块乘法运算可知零空间矩阵上半部分为 \(-F\) ,即 \(N\) 最终形式为\(N=\begin{bmatrix} -F \\ I \\ \end{bmatrix}\)

对于上述例子:

\[R=\begin{bmatrix}\underline{1} & 2 & 0 & -2\\0 & 0 & \underline{1} & 2\\0 & 0 & 0 & 0\\\end{bmatrix}\underrightarrow{列交换}\left[\begin{array}{c c | c c}1 & 0 & 2 & -2\\0 & 1 & 0 & 2\\\hline0 & 0 & 0 & 0\\\end{array}\right]=\begin{bmatrix}I & F \\0 & 0 \\\end{bmatrix}\textrm{,其中}I\textrm{为单位矩阵,}F\textrm{为自由变量组成的矩阵} \]

从上面推论可得:\(N=\begin{bmatrix}-F \\I \\\end{bmatrix}=\begin{bmatrix}-2 & 2\\ 0 & -2\\1 & 0\\0 & 1\end{bmatrix}\)

对于矩阵 \(R\) 而言,求零空间特解就变得非常简单,只需要将消元的到的 \(F\) 部分拼接上单位阵就可以得到所有的通解。注意如果在变换出 \(R\) 左上角的单位阵的过程中采用了列交换,则最后的解要完成逆变换。

进行逆变换(三行和二行交换),可得\(N=\begin{bmatrix} -F \\ I \\ \end{bmatrix}=\begin{bmatrix}-2 & 2\\ 0 & -2\\1 & 0\\0 & 1\end{bmatrix}\underrightarrow{行交换}\begin{bmatrix}-2 & 2\\ 1 & 0\\0 & -2\\0 & 1\end{bmatrix}\),与上面求得的两个\(x\)特解一致。

总结

  1. \(A\) 的零空间是 \(Ax=0\) 中 \(x\) 的解组成的集合;

  2. 解法1:

    • 消元,将矩阵化为行阶梯矩阵 \(U\),得出自由列个数
    • 自由列一个个赋1,其他皆0,求解方程,得出自由列个数个特解
    • 特解的线性组合就是 \(A\) 的零空间
  3. 解法2:

    • 消元,将矩阵化为行最简阶梯矩阵 \(R\)
    • 通过某些列变化将 \(R\) 化成如下形式:\(R=\begin{bmatrix}I & F \\0 & 0 \\\end{bmatrix}\textrm{,其中}I\textrm{为单位矩阵,}F\textrm{为自由变量组成的矩阵}\)
    • 得到解:\(N=\begin{bmatrix} -F \\ I \\ \end{bmatrix}\)
    • 若进行了列变化,则最后的解要完成逆变换

reference

[1] textbook

[2] mit18.06学习笔记-0

[3] mit18.06学习笔记-1

矩阵论 - 7 - 求解Ax=0:主变量、特解相关推荐

  1. MIT 18.06 线性代数公开课笔记 Lecture07Ax=0: 主变量, 特解

    本节课我们将从定义转换到算法, 如何解出 Ax=0A\mathbf{x}=\mathbf{0}Ax=0 . 取矩阵 A=[1222246836810]A=\begin{bmatrix} 1&2 ...

  2. 求解Ax=0:主变量、自由变量、特殊解

    上一篇简单介绍了列空间(column space)和零空间(null space),这一次主要介绍如何求出零空间内的向量,即主要讨论Ax=0.假设有矩阵A=,略微观察一下其行和列可看出,列2是列1的倍 ...

  3. opencv求解AX=0

    在Ax=0时候是不能用cvsolve来接函数的,但是可以利用一下函数来求解 [cpp] view plaincopyprint? #include<cv.h> #include<io ...

  4. 07-求解Ax=0:主变量、特解

    一.定义转向算法 在第六节讲了空间,列空间,零空间的定义,这节主要讲解如何求出这些空间,即求解$Ax=0$的过程是怎么样的过程,以下面的矩阵$A$为例:(这里主要是长方阵) $A=\left[\beg ...

  5. 线性代数 --- 如何求解不可逆的mxn长方形矩阵Ax=0的通解Null(A)和Ax=b的通解

    Solve Ax=0 and Ax=b 我们先看一个未知数一个方程ax=b的解的情况,他的解可以有三种情况: (i)当a0时,对于任意的b都有解x=b/a,这时方程有唯一解.(这种情况叫相容且非奇异) ...

  6. 超定方程的求解、最小二乘解、Ax=0、Ax=b的解,求解齐次方程组,求解非齐次方程组(推导十分详细)

    本篇主要介绍的是超定方程组的求解,如果你不想看繁琐的推导过程,你可以直接看红字部分的结论! 1. 齐次线性方程组 Ax = 0 对于方程Ax=0\bm A \bm x = 0Ax=0,在我们实际的使用 ...

  7. Matlab --- 求解Ax=b时的反斜杠“\“,backslash

    一直很喜欢两个老爷爷,一个是MIT主讲线性代数的Gilbert Strang,另一个就是Matlab的首席数学科学家Cleve Moler.记得作者在几年前,下载了他个人主页上的两本书.一本叫< ...

  8. 【代数之美】线性方程组Ax=0的求解方法

    在3D视觉中,我们常常会遇到这样一个问题:求解线性方程组Ax=0Ax=0Ax=0,从矩阵映射的角度来说,所有解组成了矩阵AAA的零空间.一个典型的场景比如用八点法求解本质矩阵EEE,参见我前面的博文: ...

  9. 漫步线性代数九——求Ax=0和Ax=b

    前面的文章关注的是方阵的逆矩阵,Ax=bAx=b有一个解的话它就是x=A−1bx=A^{-1}b,它可以通过消元法得到.一个长方形矩阵带来的新的可能性--UU可能没有所有的主元,本文我们就将UU 化为 ...

最新文章

  1. 学习web前端开发要注意什么
  2. 24BYJ48电机的使用,带驱动程序
  3. nokia 基亚 wp 开发中心
  4. 我发起了一个 用 物理服务器 和 .Net 平台 构建云平台 的 .Net 开源项目
  5. gparted调整分区大小_Windows系统分区可用空间不足问题解决终极方法
  6. 计算机名生成,如何让输出的文本名字自动生成计算机名字?
  7. DreamFactory入门指南 - 第1章REST和DreamFactory简介
  8. 非对称卷积—Asymmetric Convolutions
  9. 华为云联合HarmonyOS发布智联生活行业加速器
  10. ncurses键盘管理:cbreak,keypad,getch(),KEY_F(),clrtoeol()
  11. 使用Electron将Web项目打包成windows桌面应用
  12. 读书笔记--Head First Programming 目录
  13. 大学生游戏静态HTML网页作业--美丽中国
  14. 非线性动力学 matlab,非线性动力学matlab
  15. CSDN蓝桥杯算法题——题解Java版本——切面条
  16. Java多线程:synchronized | Volatile 和Lock和ReadWriteLock多方位剖析(一)
  17. 【Java爬虫-模拟淘宝登录】
  18. 角点检测 c语言 棋盘格,一种棋盘格角点全自动检测方法与流程
  19. Android Kotlin-协程
  20. 大数据技术——销售分析系统

热门文章

  1. java时间戳转换日期格式_Java时间戳与日期格式字符串的互转
  2. 超融合云数据中心,泽塔云为北京城市副中心建设添砖加瓦
  3. 蓝牙模块HC05遇到的一些常见的问题
  4. 高通平台开发系列讲解(USB篇)Composite USB gadget framework
  5. pythonSSL证书错误
  6. dspic33 怎么C语言编程,Microchip工程师社区 - dsPIC33汇编指令 - 16位MCU及DSC - 麦田论坛...
  7. 如何搭建一个超级好用的JavaWeb框架?
  8. Ubuntu命令关机
  9. python 给QQ好友发信息
  10. 【Python】Pyyaml和ruamel.yaml