一、增广矩阵

 假设我们要求解方程$Ax=b$,其中矩阵$A$和$b$如下所示:

$A = \left[\begin{array}{llll}{1} & {2} & {2} & {2} \\ {2} & {4} & {6} & {8} \\ {3} & {6} & {8} & {10}\end{array}\right]$

$b = \left[\begin{array}{llll}{b_1}\\ {b_2}\\{b_3}\end{array}\right]$

 我们可以在矩阵$A$右侧加上一列b,得到:

$\left[\begin{array}{llll}{1} & {2} & {2} & {2} & {b_1} \\ {2} & {4} & {6} & {8}& {b_2} \\ {3} & {6} & {8} & {10}& {b_3}\end{array}\right]$

此即为增广矩阵:即A和b一块二考虑

二、可解性

 方程$Ax=b$可解的条件是:当$b$属于$A$的列空间( C(A) )时,也就是$b$是$A$的列向量的线性组合

 换一种说法:如果矩阵$A$各行的线性组合得到零,那么$b$分量执行相同的操作也必须得到零向量(参考上面的矩阵$A$)

 只有$b$满足了上面的条件,方程才有解

三、求$Ax=b$所有解

 第一步:求一个特解

  将所有自由变量设为0

  我们将增广矩阵进行消元后:

$\begin{array}{l}{\left[\begin{array}{}{1} & {2} & {2} & {2} & {b_{1}} \\ {0} & {0} & {2} & {4} & {b_{2}-2 b_{1}} \\ {0} & {0} & {0} & {0} &{b_{3}-b_{2}-b_{1}}\end{array}\right]} \\ {} \end{array}$

  方程有解的条件便是:$O=b_{3}-b_{2}-b_{1}$,假设$b=\left[\begin{array}{l}{1} \\ {5} \\ {6}\end{array}\right]$,则消元矩阵为:

$\begin{array}{l}{\left[\begin{array}{}{1} & {2} & {2} & {2} & {1} \\ {0} & {0} & {2} & {4} & {3} \\ {0} & {0} & {0} & {0} &{0}\end{array}\right]} \\ {}\end{array}$

  然后求出主变量:

   针对上面的例子,$x_2, x_4 = 0$,则求主变量过程简化为:

$x_{1}+2 x_{3}=1$
$2 x_{3}=3$

   于是一个特解为:$x_p = \left[\begin{array}{c}{-2} \\ {0} \\ {3/2} \\ {0}\end{array}\right]$

  还记得07)节中的零空间吗?可以去看看,于是我们的通解为:即特解和零空间(在假设的$b$的情况下)

$X = \left[\begin{array}{c}{-2} \\ {0} \\ {3/2} \\ {0}\end{array}\right]+C_{1}\left[\begin{array}{c}{-2} \\ {1}\\ {0} \\ {0}\end{array}\right]+ C_{2}\left[\begin{array}{c}{2} \\ {0} \\ {-2} \\ {1}\end{array}\right]$

注意:这里的特解是与$b$的值相关的

  那么为什么这样的组合可以组成方程的通解呢?原因如下:

$Ax_p = b$

$Ax_n = 0$

两者相加:$A(x_p + x_n) = b$

其中$x_p$是$b$给定下的特解,$x_n$是零空间,所以通解就是特解加零空间

  也就是:

四、秩(Rank)

 矩阵的秩等于矩阵的主元数。如果矩阵的秩为r,则必有r<=m且r<=n,下面讨论满秩(full rank)的情形:

 列满秩:r=n。每列都有主元,x的每一个分量都是主变量,没有自由变量。零空间N(A)之内只有零向量。方程无解或者有唯一解,如下

  为何列满秩时,零空间N(A)之内只有零向量?因为之前我们讲过零空间定义,该实例中满足$Ax=0$的$x$只有零向量,该实例中的列向量的线性组合无法得到零向量,所以列满秩时,零空间N(A)之内只有零向量。而该实例方程的通解就只剩下特解了,而特解取决于$b$,只有$b$正好是$A$列的线性组合时,方程才有唯一解

$A=\left[\begin{array}{ll}{1} & {3} \\ {2} & {1} \\ {6} & {1} \\ {5} & {1}\end{array}\right] \rightarrow\left[\begin{array}{ll}{1} & {0} \\ {0} & {1} \\ {0} & {0} \\ {0} & {0}\end{array}\right]=R$

 行满秩:r=m。每行都有主元,无论b取何值,方程Ax=b都有解。主变量r个,自由变量n-r个,如下

$A=\left[\begin{array}{llll}{1} & {2} & {6} & {5} \\ {3} & {1} & {1} & {1}\end{array}\right] \rightarrow\left[\begin{array}{llll}{1} & {0} & {*} & {*} \\ {0} & {1} & {*} & {*}\end{array}\right]=R$

 满秩r=m=n,矩阵可逆。零空间只有零向量,无论b取何值,方程$Ax=b$都有唯一解

$A=\left[\begin{array}{ll}{1} & {2} \\ {3} & {1}\end{array}\right] \rightarrow\left[\begin{array}{ll}{1} & {0} \\ {0} & {1}\end{array}\right]=R$

 综上:秩决定了方程组解的数量

08-求解Ax=b:可解性和解的结构的更多相关文章

  1. 介绍求解AX=b:可解性与解的结构

    前面用高斯消元法或矩阵LU分解求解线性方程组的解,主要是针对有唯一解(矩阵A可逆)的情况,下面进一步介绍线性方程组有多个解的情况下,解的求解.

  2. 求解Ax=b

    一 线性方程组 Ax=b 的解释 线性方程组 Ax=b,其中矩阵 A 尺寸为 m*n, 当 A 为方正时,可使用消元法判断解是否存在并求解.当 A 为长方形矩阵时,同样可使用消元法判断解存在情况并求解 ...

  3. 2021.08.09 P5658 括号树(树形结构)

    2021.08.09 P5658 括号树(树形结构) [P5658 CSP-S2019] 括号树 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 题意: 太长,在链接中. 分析及代码 ...

  4. 2021.08.09 P5018 对称二叉树(树形结构)

    2021.08.09 P5018 对称二叉树(树形结构) [P5018 NOIP2018 普及组] 对称二叉树 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 题意: 求一棵子树,关 ...

  5. 2021.08.06 P2441 角色属性树(树形结构)

    2021.08.06 P2441 角色属性树(树形结构) P2441 角色属性树 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 题意: 求离x最近的祖先y且(x,y)>1. ...

  6. MIT线性代数:8.求解Ax=b,可解性和结构

  7. matlab 求解 Ax=B 时所用算法

    x = A\B; x = mldivide(A, B); matlab 在这里的求解与严格的数学意义是不同的, 如果 A 接近奇异,matlab 仍会给出合理的结果,但也会提示警告信息: 如果 A 为 ...

  8. python求解ax² + bx + c = 0

    系数需满足条件: a,b不能同时为0 b2-4ac≠0 代码如下def quadratic(a, b, c): """ 返回ax² + bx + c = 0的 " ...

  9. MIT线性代数:7.主变量,特解,求解AX=0

随机推荐

  1. mysqldump mysql数据库导入导出

    syhuo_oauth数据库结构 [root@VM_58_118_centos dbback]# /usr/bin/mysqldump -uroot -P3306 --protocol=tcp --h ...

  2. eclipse配置Maven——菜鸟篇

    首先解释关于webservice: Web service是一个平台独立的,低耦合的,自包含的.基于可编程的web的应用程序, 可使用开放的XML(标准通用标记语言下的一个子集)标准来描述.发布.发现 ...

  3. 3D Computer Grapihcs Using OpenGL - 06 Vertex and Fragment Shaders

    从这里就接触到了可编程图形渲染管线. 下面介绍使用Vertex Shader (顶点着色器)和 Fragment Shader(像素着色器)的方法. 我们的目标是使用这两个着色器给三角形填充绿色. 添 ...

  4. Java Interger类,两对整数明明完全一样,为何一个输出true,一个输出false

    package text; public class MethodOverload { public static void main(String[] args) { Integer i1=100; ...

  5. sed的一些应用

    1. sed 使用变量进行替换,注意使用参数 r 时,需要放在参数 i 的前面 下面这个例子是用2.txt中的版本号替换docker-compose.yml中的版本号,其中变量UPGRADE_NAME ...

  6. 记一次SQL Server delete语句的优化过程

    今天测试反应问题,性能测试环境一个脚本执行了3个小时没有出结果,期间其他dba已经建立了一些索引但是没有效果. 语句: DELETE T  from License T  WHERE exists ( ...

  7. 阶段1 语言基础+高级_1-3-Java语言高级_06-File类与IO流_09 序列化流_3_对象的反序列化流_ObjectInputStream

    声明了IO异常,这里还是红色的 转换为Person对象

  8. Jmeter之Switch Controller

    在测试过程中,各种不同的情况需要执行不同的操作,这个时候用if控制器比较麻烦,此时就可以使用Switch Controller代替. 一.界面显示 二.配置说明 1.名称:标识 2.注释:备注 3.S ...

  9. iview在项目中遇到的坑

    1.下拉框选中某一项搜索发现总是搜不到,最后发现是选中后选中值后边莫名多了很长的空格,原因很简单,在代码中opction闭合标签和主体没有在一行. 2.iview+vue项目中,用百分比或者displ ...

  10. mysql多对多查询 原生写法

    准备工作,1.创建表 CREATE TABLE IF NOT EXISTS `users` ( `id` INTEGER NOT NULL AUTO_INCREMENT, `name` VARCHAR ...