一、为啥要搞“矩阵三角分解”?—— 高斯消去法的“矩阵视角” 🧐
关键字:LU分解、单位下三角矩阵、上三角矩阵
🔍
高斯消去法的本质是“用行变换把矩阵A变成上三角矩阵”——而
矩阵三角分解(LU分解)
就是把这个过程用“矩阵乘法”表示:把A拆成“单位下三角矩阵L”和“上三角矩阵U”的乘积,即
A = LU
。
💡 新手类比:
就像把“12”拆成“3×4”,把复杂的矩阵A拆成两个简单的三角矩阵(L和U),解方程组时可以“分两步走”~
二、LU分解是咋来的?—— 高斯消去法的“矩阵翻译” 📝
关键字:初等下三角矩阵、矩阵乘法、消元过程
🧮 消元过程的矩阵表示:
高斯消去法的每一步“消元”,都对应一个
初等下三角矩阵Lₖ
(对角线是1,第k列下方是乘数-mᵢₖ)。比如第1步消元对应L₁,第2步对应L₂… 最终:
Lₙ₋₁...L₂L₁ A = U (U是上三角矩阵)
两边左乘L₁⁻¹L₂⁻¹…Lₙ₋₁⁻¹,得到:
A = (L₁⁻¹L₂⁻¹...Lₙ₋₁⁻¹) U = LU
这里的L就是“单位下三角矩阵”(对角线是1,下三角是消元的乘数)~
🌰 课本例2的LU分解:
原矩阵A = [[1,1,1],[0,4,-1],[2,-2,1]],消元后得到U = [[1,1,1],[0,4,-1],[0,0,-2]]。 消元用的乘数是m₃₁=2(第1步消元)、m₃₂=-1(第2步消元),所以L是:
L = [[1, 0, 0],
[0, 1, 0],
[2,-1, 1]]
验证一下:L×U = A(自己算乘法,会发现结果和原矩阵一样!)
三、LU分解的“使用说明书”:解方程组更高效 🚀
关键字:分两步解、Ly=b、Ux=y
📌 用LU分解解Ax=b的步骤:
因为A=LU,所以方程组变成
LUx = b
,分两步解: 1. 先解
Ly = b
(L是单位下三角矩阵,用“前向替换”从y₁算到yₙ); 2. 再解
Ux = y
(U是上三角矩阵,用“回代”从xₙ算到x₁)。
💻 对应例2的求解:
原方程组Ax=b中,b=[6,5,1]。 1. 解Ly=b:
y₁ = 6
y₂ = 5
2y₁ - y₂ + y₃ = 1 → 2×6 -5 + y₃=1 → y₃=-6
- 解Ux=y:
-2x₃ = -6 → x₃=3
4x₂ -x₃=5 → 4x₂-3=5 → x₂=2
x₁+x₂+x₃=6 → x₁+2+3=6 → x₁=1
和之前的结果一样!
四、LU分解的“前提条件”:顺序主子式不为0 ❗
关键字:顺序主子式、唯一分解
⚠️ 课本定理:
矩阵A能唯一分解为“单位下三角L”和“上三角U”的充要条件是:A的
所有顺序主子式Dₖ≠0
(Dₖ是前k行k列的行列式)。
💡 新手理解:
顺序主子式不为0,才能保证高斯消元时“主元素不为0”,进而保证L和U能拆出来~
五、列主元消去法:解决“主元素太小”的坑 🕳️
关键字:列主元、数值稳定性
❌ 问题:
如果主元素aₖₖ⁽ᵏ⁾太小(比如0.001),算乘数时会“放大误差”(比如mᵢₖ=1000,一点小误差会被放大1000倍)。
✅ 解决办法:
列主元消去法
——每步消元前,先在“当前列的下方”找绝对值最大的元素,和当前行交换,把它作为主元素。这样主元素不会太小,计算更稳定~
🌰 简单例子:
比如矩阵第1列是[0.001, 2],先交换两行,把2作为主元素,避免乘数太大(0.001做分母会得到2000,交换后分母是2,乘数是0.0005)。
总结:LU分解是高斯消去法的“矩阵版”,高效又灵活 🎯
✅
矩阵三角分解(LU分解)把高斯消去法“转化为矩阵运算”,不仅能更清晰地理解消元过程,还能让解方程组的步骤更模块化(分Ly=b和Ux=y两步)。尤其是解“多个同系数矩阵、不同常数项”的方程组时,只需要分解一次A,就能快速解多个b,比重复用高斯消去法高效很多~ 要不要我帮你整理一份
LU分解解方程组的步骤模板
,方便你直接套用?