2.5 矩阵因式分解
矩阵 的因式分解是把 表示为两个或更多个矩阵的乘积。矩阵乘法是数据的综合(把两个或更多个线性变换的作用结合成一个矩阵),矩阵因式分解是数据的分解。在计算机科学的语言中,将 表示为矩阵的乘积是对 中数据的预处理,把这些数据组成两个或更多部分,这种结构可能更有用,或者更便于计算。
矩阵的因式分解以及以后的线性变换的因式分解将在文中许多关键地方出现。本节主要讨论一种在许多重要的计算机程序的核心部分出现的因式分解,例如在本章的介绍性示例中描述的气流问题。某些其他的因式分解在习题中介绍。
下面所述的 LU 分解在一些工业与商业问题中很常见,用于求解一系列具有相同系数矩阵
的线性方程(见习题32):
在 5.8 节中,逆幂法通过逐个求解一系列形如(1)中的方程来估计矩阵的特征值.
当 可逆时,可计算 ,然后计算 , ,等等。然而,在实践中,(1)中第一个方程是由行化简解出的,并同时得出 的 LU 分解,因而(1)中剩下的方程由 LU 分解求解。
首先,设 是 矩阵,它可以行化简为阶梯形而不必行对换(此后,我们将处理一般情形),则 可写成形式 A = LU, 是 下三角矩阵,主对角线元素全是 1, 是 的一个 阶梯形矩阵。例如,见图 2-11。这样一个分解称为 LU 分解,矩阵 是可逆的,称为单位下三角矩阵。
在研究如何构造 和 之前,我们将看看它们为什么这么有用。当 时,方程 可写成 。把 写成 ,可以由解下面一对方程来求解 :
首先解 求得 ,然后解 求得 ,见图 2-12.每个方程都比较容易解,因 和 都是三角矩阵.
可以证明
应用 的 LU 分解来解 Ax=b,其中 .
解
解 Ly=b 仅需 6 次乘法和 6 次加法,因为这些运算仅需对第 5 列进行。(在 的每个主元下的零会在行变换的选取中自动产生。)
对 ,行化简的“向后”步骤需要4次除法、6次乘法和6次加法。(例如,把 的第4列变成零需要对第4行作1次除法和3次乘法-加法,以把第4行的倍数加到上面各行。)
为求 需 28 次算术运算, 或“浮算”(浮点运算), 不包括求 和 的运算在内. 相反, 行化简为 需 62 次运算.
LU分解的计算效率依赖于如何求 和 。下面的算法证明,把 行化简为阶梯形 的运算同时也求出 而基本上不需要额外的运算,因而也求出 LU 分解。在第一次行化简后, 和 就可用来解系数矩阵为 的额外方程。
LU 分解算法
Section titled “LU 分解算法”设 可以化为阶梯形 ,化简过程中仅用行倍加变换,即把一行的倍数加于它下面的另一行。这样,存在单位下三角初等矩阵 使
于是
其中
可以证明,单位下三角矩阵的乘积和逆也是单位下三角矩阵。(例如见习题19.)于是 是单位下三角矩阵.
(3)中的行变换,它把 化为 ,所以也把(4)中的 化为 ,这是因为
这一点是构造 的关键.
LU 分解的算法
Section titled “LU 分解的算法”-
如果可能的话,用一系列的行倍加变换把 化为阶梯形 .
-
填充 的元素使相同的行变换把 变为 .
第 1 步并不总是可能的,但当它可能时,上述讨论指出 LU 分解存在。例2 将说明如何实现第 2 步。根据上面的说明, 要满足使用与(3)中相同的 ,有
于是,根据可逆矩阵定理, 是可逆的, 。由(3), ,且 A=LU ,所以步骤2可求出所要的。
求下列矩阵的 LU 分解:
解
因 有 4 行, 故 应为 矩阵. L 的第一列应该是 的第一列除以它的第一行主元元素:
比较 和 的第一列. 把 的第一列的后三个元素变成零的行变换同时也将 的第一列的后三个元素变成 0,同样的道理对 的其他各列也是成立的,让我们看一下 行化简为阶梯形 的过程. 即每个矩阵中标出的元素用于确定把 变成 的行变换顺序. (见(5)中标出的元素.)
上式中标出的元素确定了将 化为 的行化简. 在每个主元列, 把标出的元素除以主元后将结果放入 :
容易证明,所求出的 和 满足 LU = A.
在实际工作中,行对换几乎总是必要的,因为部分主元法可以用来提高精确度。(回忆这种算法总是选择一列中可以作为主元的元素中绝对值最大的一个作为主元。)为了处理行对换,上述的LU分解可以稍做改变,以产生一个置换下三角矩阵 ,就是说经过行的置换后它成为(单位)下三角矩阵.所得的置换LU分解可通过与前面一样的途径解方程 ,只要在把 化简为 时按照 中主元的顺序从左到右进行,并从第一列的主元开始.介绍LU分解的参考书通常包含 为置换下三角矩阵的可能性.详见学习指导书.
数值计算的注解 下列运算次数的计算适用于 稠密矩阵 (大部分元素非零), 相当大,例如 .
-
计算 的 LU 分解大约需要 次浮算(大约与把 [A b] 行化简的次数相同),而求 大约需要 次浮算.
-
解 和 大约需要 次浮算,因任意 三角方程组可以用大约 次浮算解出.
-
把 乘以 也需要 次浮算,但结果可能不如由 和 得出的精确(由于计算 及 的舍入误差).
-
若 是稀疏矩阵(大部分元素为 0),则 和 可能也是稀疏的,然而 很可能是稠密的。这时,用 LU 分解来解方程 很可能比用 快很多,见习题 31。
电子工程中的矩阵因式分解
Section titled “电子工程中的矩阵因式分解”矩阵因式分解会在构造具有某些性质的电子网络中碰到. 下列讨论仅是矩阵因式分解与电路设计之间联系的一个大概.
设图 2-13中的方框表示某种电路,具有输入与输出.用 表示输入电压与电流(电压 以伏特为单位,电流 以安培为单位),输出电压与电流为 .通常,变换 为线性的,也就是说,存在矩阵 ,称为传递矩阵,使得
图 2-14 表示梯级网络,它有两个回路(也可以更多)串联起来,所以第一个电路的输出是第二个电路的输入。图 2-14 左边的电路称为串联电路,电阻为 (单位为欧姆),右端电路称为并联电路,电阻为 。应用欧姆定律,可以证明串联电路与并联电路的传递矩阵分别为
. 计算图 2-14 中梯级网络的传递矩阵.
. 设计一个传递矩阵为 的梯级网络.
. 设 和 分别为串联电路与并联电路的传递矩阵,则输入向量 首先变换为 ,然后变为 。两个电路的串联对应于线性变换的复合,所以梯级网络的传递矩阵为(注意顺序)
. 为把矩阵 分解成两个传递矩阵的乘积,如(6)式,我们让图 2-14中的 和 满足
由(1,2)元素, 欧姆,由(2,1)元素, ,而 欧姆。对电阻的这些值,图 2-14中的网络有所需的传递矩阵。
网络的传递矩阵总结了网络的输入-输出行为(设计规范),而不必去了解内部电路。为了物理上建立网络,并使它有特定性质,工程师首先确定这样的网络是否可实现。然后尝试把传递矩阵分解为对应于较小回路的传递矩阵,这些较小回路已经制造出来。在交流电的情况下,传递矩阵的元素通常是有理复值函数(见2.4节习题19和20,3.3节例2)。标准问题是要找一个使用最少电子元件的最小实现。
求矩阵 的 LU 分解.
(注: 仅有3个主元列,故例2的方法将仅产生 的前三列. 的余下两列由 得到.)
习题 1~6 中,用所给的 的 LU 分解来解方程 Ax=b.在习题 1~2 中,用通常的行化简解方程 Ax=b.
求习题 7~16 中矩阵的 LU 分解( 为单位下三角矩阵)。注意 MATLAB 通常给出置换 LU 分解,因为它用部分主元法来提高精确度。
-
当 可逆时, MATLAB 利用分解 A = LU ( 可能是置换下三角矩阵) 来求 , 即 . 用这种方法求习题 2 中 的逆(对 和 应用 2.2 节求逆的算法).
-
如 17 题,求习题 3 中 的逆.
-
设 为下三角 矩阵,对角线上元素非零. 证明 可逆且 是下三角矩阵. [提示:说明为什么 可仅用倍加变换和倍乘变换变为 .
(主元在何处?)接着说明为什么化简 的行变换把 变为 的同时把 变为下三角矩阵.]
-
设 的 LU 分解为 A = LU.说明为什么 可仅用行倍加变换行化简为 U.(这里给出的条件是文中所证明的结论,而这里的结论是文中给出的条件。)
-
设 A = BC, 为可逆。证明:任意一系列把 化为 的行变换也将 化为 。其逆不真,因零矩阵可分解为 。
习题 22~26 介绍某些广泛应用的矩阵因式分解法,有些在本书后面的章节中讨论.
22.(简化 LU 分解)设 如练习题,求出 矩阵 及 矩阵 ,使得 A = BC。推广这一想法到 是 矩阵的情形,且 A = LU, 仅有 3 个非零行。
23.(秩分解)设 矩阵 有因式分解 ,其中 是 矩阵, 是 矩阵。a. 证明 是 4 个外积的和。(见 2.4 节。b. 设 和 ,说明为什么计算机程序员倾向于用两个矩阵 和 来存储矩阵 的数据。
24.(QR分解)设 ,其中 和 都是 矩阵, 是可逆上三角矩阵, 满足 。证明对任意属于 的 ,方程 有唯一解,并叙述求解的算法。
25.(奇异值分解)设 ,其中 , 是 矩阵, , 是对角矩阵,主对角线上元素 为正数。证明 可逆,并给出 的一个表达式。
26.(谱分解)设 矩阵 可因式分解为 ,其中 是可逆 矩阵, 是对角矩阵
证明在计算 的高次幂时,这种分解是有用的。使用 及 的元素求出 和 ( 为正整数)的较为简单的公式。
-
设计两个不同的梯级网络,使其输入为 12 伏特与 6 安培时输出为 9 伏特与 4 安培.
-
证明:若三个并联电路(电阻为 )串联在一起,所得网络与一个单一的并联电路有相同的传递矩阵。求该电路的电阻的表达式。
-
. 计算下图的网络的传递矩阵.
| i1 | i2 | i3 | i4 |
| v1 | R1 | R2 | R3 |
. 设 ,设计梯级网络,使它的传递矩阵为 ,利用 的适当的矩阵因式分解.
-
在习题 29 中,求出 的另一因式分解并用以设计传递矩阵为 的另一梯级网络.
-
[]对下图中平板的稳态传热问题的解可近似地用方程 Ax=b 的解来逼近,其中 .

(参阅1.1节习题33.) 中未写出的元素为0.A的非零元素都位于主对角线相邻的一条带中.这样的带状矩阵在许多应用中出现,往往非常大(有数千的行和列但相对窄的带).
. 使用例2 的方法求 的 LU 分解, 注意两个因子都是带状矩阵(有两条非零对角线在主对角线之上或之下). 计算 LU-A 来检验你的结果.
. 使用 LU 分解解 Ax = b
. 求出 , 注意 是稠密矩阵, 无带状结构. 当 很大时, 和 可以存储在比 小得多的空间内. 这个事实是更多使用 的 LU 分解而不用 本身的一个原因.
- []下列带状矩阵 可用来估计一根梁中的非稳态热传导,其中梁上的各点 的温度随时间变化。
矩阵中的常数 依赖于梁的物理性质, 为各点之间距离,时间间隔 的长度是两次温度测量的间隔. 设对 中向量 表示在 时刻各点的温度. 若梁的两端保持在 ,则温度向量满足方程 ,其中
. 求出当 时 的LU分解. 有三条非零对角线的矩阵称为三对角矩阵, 因子 和 为双对角矩阵.
. 设 C=1 及 ,应用 的 LU 分解求温度分布 和 .
把每一个标出的列除以它顶端的主元,所得的列构成 前三列的下半部分,这就使 化为 的变换对应于 化为 的变换。用 的后两列作为 的后两列,使它成为单位下三角矩阵。
书籍模块索引
线性代数及其应用(原书第5版) · 章节内联关系图谱
核心知识枢纽章节
被全书其他章节引用频次最高的基石章节:
图谱交互提示
- 视角放大/缩小:使用左下角工具栏 +/- 或鼠标滚轮;
- 大书防混淆:顶部选择“按篇章/大章聚合”或“聚焦当前章”;
- 视图平移与拖拽:拖动画布或节点;双击节点直达原文。