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

<<主页

采用部分主元的矩阵LU分解

本模块演示了选主元(partial pivoting)的LU分解过程. 经过一系列消去阵的作用,逐列地消去原始矩阵中对角线之下的元素,最终将它约化成一个上三角矩阵. 每一个消去阵,都是由一个单位矩阵加上当前列对角线下方的一些乘子(乘数, multipiler)组成的. 选主元,也就是交换行的操作,避免了除以零的可能性,并且限制乘子的大小,从而增强数值稳定性.

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

操作与思考: (1) 对于n=3的情况,对预设的例子(Example)一步步地执行部分主元高斯消去过程,得到矩阵LU,请问LU等于A吗? 若不相等,应该等于什么?
                      (2)对n=4的预设例子,仔细观察上述演示的每一步,最后一步的操作对吗?若不符合正确的算法,得到的LUA的关系对吗?用Matlab验证,并思考其原因(考察矩阵A的秩).

参考内容:课本3.3, 3.4有关内容