08-求解Ax=b:可解性和解的结构
一、增广矩阵
假设我们要求解方程$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:可解性和解的结构的更多相关文章
- 介绍求解AX=b:可解性与解的结构
前面用高斯消元法或矩阵LU分解求解线性方程组的解,主要是针对有唯一解(矩阵A可逆)的情况,下面进一步介绍线性方程组有多个解的情况下,解的求解.
- 求解Ax=b
一 线性方程组 Ax=b 的解释 线性方程组 Ax=b,其中矩阵 A 尺寸为 m*n, 当 A 为方正时,可使用消元法判断解是否存在并求解.当 A 为长方形矩阵时,同样可使用消元法判断解存在情况并求解 ...
- 2021.08.09 P5658 括号树(树形结构)
2021.08.09 P5658 括号树(树形结构) [P5658 CSP-S2019] 括号树 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 题意: 太长,在链接中. 分析及代码 ...
- 2021.08.09 P5018 对称二叉树(树形结构)
2021.08.09 P5018 对称二叉树(树形结构) [P5018 NOIP2018 普及组] 对称二叉树 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 题意: 求一棵子树,关 ...
- 2021.08.06 P2441 角色属性树(树形结构)
2021.08.06 P2441 角色属性树(树形结构) P2441 角色属性树 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 题意: 求离x最近的祖先y且(x,y)>1. ...
- MIT线性代数:8.求解Ax=b,可解性和结构
- matlab 求解 Ax=B 时所用算法
x = A\B; x = mldivide(A, B); matlab 在这里的求解与严格的数学意义是不同的, 如果 A 接近奇异,matlab 仍会给出合理的结果,但也会提示警告信息: 如果 A 为 ...
- python求解ax² + bx + c = 0
系数需满足条件: a,b不能同时为0 b2-4ac≠0 代码如下def quadratic(a, b, c): """ 返回ax² + bx + c = 0的 " ...
- MIT线性代数:7.主变量,特解,求解AX=0
随机推荐
- Java——GUI
[AWT] <1>AWT(Abstract Widow Toolkit)包含了很多类和接口,用于Java Application的GUI(Graphics User Interfac ...
- 【PowerOJ1736&网络流24题】飞行员配对方案问题(最小割)
题意: n<=100,要求输出方案 思路:准备把没刷的24题从头搞一遍 输出方案的话就在增广的时候记一下另一端的编号就好 #include<bits/stdc++.h> using ...
- Linux下JDK1.7升级1.8版本
先下载 jdk-8u45-linux-x64.rpm 然后上传到 /usr/local/src 去.当然其他目录也可以.这里是默认位置 给所有用户添加可执行权限 #chmod +x jdk-8u4 ...
- 配置maven方法
配置maven方法 1.官网下载maven, http://maven.apache.org/download.cgi Only the binaries are required, so look ...
- 使用IDEA 创建Maven项目,外加SSM框架
使用idea 新创建项目 然后 新创建 java .resources 文件夹...... 图上是项目结构 java文件夹下的 文件夹 命名规范 com.nf147(组织名)+ oukele(作者) ...
- ORACLE查询隐含参数
查询隐含参数:col name for a30col VALUE for a10col DESCRIB for a40set lines 200SELECT x.ksppinm NAME, y.ksp ...
- 使用Chrome逆向分析JS实战---分析google网站翻译器原文存放位置
剧透:就是使用了一下Chrome DevTools的Memory功能,通过已知的JS变量的值查找JS内存中变量的引用 一:不分析一下现有的网页翻译方法么? 总所周知,(As is well known ...
- import * as 用法
- python 基础lambda函数
lambda 函数 其实对应的是一个简单的表达式: lambda [arg1] : expression a = lambda x,y: (x+y)/2 等价于 def a(x,y): (x+y)/2 ...
- st.getParameter() 和request.getAttribute() 区别 https://terryjs.iteye.com/blog/1317610
getParameter 是用来接受用post个get方法传递过来的参数的.getAttribute 必须先setAttribute. (1)request.getParameter() 取得是通过容 ...