算法导论 28.1 Exercises 答案

28.1-1

根据前向替代的过程,可以知道:

x1=b1=3x2=b2j=11a2,jxj=1443=2x3=b3j=12a3,jxj=7(6)352=1

也就是有解 [x1x2x3]=[321]

28.1-2

以下是多轮进行迭代的结果:

LU[100010001][000000000][100210301][456000000][100210321][456045000][100210321][456045004]

28.1-3

A=[154203582],b=[1295]

那么首先对 A 进行 LUP 分解,得到

L=[10015102516172],U=[5820175185009517],P=[001100010]

那么使用前向替代求解关于 y 的未知数的方程 Ly=Pb,最终可以得到:

[y1y2y3]=[51129517]

再使用后向替代可以得到:

[x1x2x3]=[3191194919]

28.1-4

根据对角矩阵 A 的性质,我们可以构造 InA=InA,其中 In 是单位矩阵,它可以视为是单位下三角矩阵 L,而 A 可以视为是上三角矩阵 U

28.1-5

结论:令 L=U=InP=A1,其中 A 是给定的排列矩阵.In 是单位矩阵。接下来证明这种构造是唯一的。

根据题目 D.2-3 的结论,可以知道 A 是可逆的,因此 U 中主对角线上的所有元素都是非 0。由于 P,A 都是排列矩阵,因此根据题目 D.1-4 的结论,PA=LU 仍是排列矩阵。

接下来使用反证法证明:L=In,也就是说 1j<in,lij=uji=0 均成立:假设 i>1,li,10,那么 g 观察此时 LU 的第一列,那么将会导致 (LU)110,(LU)i10,这说明 LU 不可能是排列矩阵;类似的论证可以证明 j>1,uij=0 必然成立。因此我们抛弃矩阵 L,U 的第 1 行和第 1 列递归进行论证,可以发现,递归情形和原本的情形一样。因此,1j<in,lij=uji=0 均成立。也就是说,L,U 都是对角矩阵,那么可知 L=In。由于 PA 是排列矩阵,因此 U 也是排列矩阵,那么有 U=In。因此得到 P=A1

28.1-6

零矩阵 On 显而易见地拥有一个 LU 分解:On=InOn。其中 In 是单位矩阵,它可以视为是单位下三角矩阵 L,而 On 可以视为是上三角矩阵 U

28.1-7

对于算法 LU-DECOMPOSITION,执行最后一次外层 for 循环是必须的。因为 unn 上三角处的所有值一开始都是未定义的,而执行最后一次循环后,才会有 unn=ann,从而有定义。

对于算法 LUP-DECOMPOSITION,执行最后一次外层 for 循环不是必须的。因为此时 U L 都在原来的矩阵 A 上表示,当第 n1 次循环执行完成后,第 n 行的结果已经是 U 中的值。此外,无论 ann 结果如何,都不会改变 π 中前 n1 个元素的值。因此此处的外层 for 循环没有必要执行最后一次。