清华大学课程“数值分析”(No.20240033)
交互演示网站

<<主页

用部分主元高斯-若当(Gauss-Jordan)消去法求矩阵的逆

本模块演示了用高斯-若当消去法求矩阵的逆. 经过一系列消去阵的作用,逐列地消去原始矩阵中对角线以外的元素,最终将它约化成一个对角阵. 每一个消去阵,都是由一个单位矩阵加上当前列对角线上方或下方的一些乘子(乘数, multipiler)组成的. 选主元,也就是交换行的操作,避免了除以零的可能性,并且限制乘子的大小,从而增强数值稳定性. 这些初等消去阵也以同样的顺序作用于一个初始为单位阵的辅助矩阵上. 当原始矩阵约化为对角阵后,再对它进行比例放缩得到一个单位矩阵,而辅助矩阵经过同样的比例放缩则产生出原始矩阵的逆矩阵.

用户首先选择矩阵的尺寸(n = 2, 3, 或 4). 接下来可以选择一个预设的矩阵(Example),或随机选取一个(Random),或自行输入矩阵元素的值(修改数值后按回车键,并点击"Refresh"更新显示). 不断点击NEXT按钮,可以看到高斯-若当消去的执行过程,当前的步骤以高亮显示. 当前列以一个箭头来指示. 对于每一列,默认选取的主元是这一列在对角线之上或之下的最大元素(部分主元),但可以通过点击鼠标来选取任何的非零元素(该元素变为红色). 可以看到,行交换过程(interchange rows)是显式进行的. 每个高斯-若当消去步也同时作用于右侧的辅助矩阵(它最初为单位阵). 当高斯-若当消去完成时,通过放缩左侧对角阵得到一个单位阵,此时右侧的矩阵就是原始矩阵的逆. 显示数据的格式支持e,f,g三种,分别表示科学计数法, 固定小数位数和统一格式,默认的是统一格式(g).

操作与思考: (1) 对于n=3的情况,对预设的例子(Example)一步步地执行该演示,弄清楚步骤"Apply multipliers"是怎么执行的? 在这个演示中,乘子(multiplier)与上一个演示"高斯消去法"中的有什么不同?
                      (2)对n=4的预设例子,执行上述演示,观察到什么情况? 矩阵对角线元素并不为0,为什么报错?

参考内容: 课本3.2.2, 3.4.3节及相关内容