良性问题与可逆矩阵
2.1 问题设定:逆问题
- 第 1 章强调「矩阵本身就是映射」,用矩阵 作用在向量上,结果是
- 已知原因预测结果 ,叫顺问题
- 已知结果推测原因,叫逆问题
- 已知地表重力场分布(结果),推测地球内部资源分布(原因)
- 由画质受损的图像(结果)推测原图像(原因)
- 现实中还要考虑噪声:
- 通过考察物理体系的输入输出,可以推测出矩阵 本身
2.2 良性问题(可逆矩阵)
可逆性与逆矩阵
设 和 是同维向量,则 是方阵
如果 的逆矩阵存在,问题可以直接用公式表达:
存在逆矩阵的方阵 称为可逆矩阵(非奇异矩阵、正则矩阵)
不是可逆矩阵的称为奇异矩阵
非方阵没有逆矩阵的定义
但对于具体给定的 和 ,不会直接求 再乘,因为有更快捷的办法
线性方程组的笔算解法
- 先把线性代数抛在脑后,看普通的多元一次方程组怎么解
- 核心手法是消元:用一个方程去消去另一个方程里的某个变量
- 从一个方程出发,反复使用这个原理,规模逐渐缩小,最终得到一元一次方程
- 然后回溯:按来时的顺序原路返回,把求出的解逐个代入
- 这个过程可以用分块矩阵的形式写出来
选主元
- 消元时如果主元为 0 就没法继续,所以要「像交换第 1 行和第 2 行一样」把非 0 元素换到对角线位置
- 再对第 1 行乘以 ,让对角元素变成 1
- 选主元的操作不会影响最终的解,因为交换行的效果在矩阵形式里被完整记录了下来
解方程的基本步骤(逐列处理)
- 为了让对角元素 变成 1,整行除以
- 用这一行去消去下面各列的对应元素
术语说明(译者注)
- 本书的「良性」「恶性」是非正式说法,描述的是矩阵本身的性质
- 与数值分析中的「良态」「病态」概念完全没有关系
- 数值分析中的病态是与具体问题有关的
- 某些矩阵对解线性方程组是病态的,对求特征值却是良态的
- 现实中遇到的逆问题**大多都是恶性(病态)**的
- 所以有时候甚至不把这些良性问题称为逆问题
可逆矩阵的性质
可逆矩阵有几条直接能用的性质:
可逆
若 可逆,则 也可逆,且
(顺序反过来了)
满足 ,这是它作为「复合映射的逆」的含义
从映射的角度看, 存在意味着映射 是双射:
单射:不同的输入映到不同的输出
满射:目标空间的每个点都有对应的来源
两者都成立 → 双射 → 有逆映射
解法的选择
书里明确说了:不要为了求一个 就去求整个 。
求 需要 的运算量,而且算出的是一整个矩阵
解一个方程组用消元只要 (其实是 ),而且只得到一个向量
解 个方程组(同一个 ,不同的 )时,消元只需做一次,之后每次只做回代
所以实践中是:先消元得到上三角形式,再回代求解。逆矩阵只在需要反复使用、或者需要分析结构时才显式计算。
Ruby 验证:高斯消元
# 高斯消元解 A x = y |
良性问题的前提
这一节的所有结论都建立在「 可逆」这个前提上。而现实中的大多数逆问题不满足这个前提 —— 噪声会让矩阵变得接近奇异,解变得极其敏感。
下一节讲恶性问题: 不可逆时会发生什么,为什么「知道结果」未必能推出「唯一的原因」。