线性代数04.A的LU分解
本篇为MIT公开课——线性代数 笔记。
乘积的逆
两矩阵 \(A、B\) 相乘,且他们的逆均已知,那么他们的乘积 \((A.B)\) 的逆是什么?
先说结果,\((A.B)\) 的逆就是 \((B^{-1}.A^{-1})\) ,即
我们可以把括号消掉,根据乘法结合律,就能得到单位矩阵。
为什么逆矩阵顺序要反过来?
就像:先脱鞋子,再脱袜子,那么其逆过程就是,先穿袜子,再穿鞋子。
就是说,矩阵乘法顺序不能交换,必须先合成一个单位矩阵,然后再把两边矩阵再合成单位矩阵。
同理,我们进行左乘\((B^{-1}.A^{-1})\)也可以得到单位矩阵,即
转置
将矩阵的行列互换得到的新矩阵称为转置矩阵。
例如
转置后,变为
转置矩阵用右上标加 \(T\) 表示。他将 \(m*n\) 矩阵,变为 \(n*m\) 。
如果转置某可逆矩阵\(B\), 那么其转置\(B^{T}\)的逆是什么?
我们可以从\(B.B^{-1}=I\) 开始,
两边同时转置,单位矩阵因为其对称性,转置后还是单位矩阵,
可以看出,\(B^T\) 的逆就是 \(\left(B^{-1}\right)^T\) ,也就是 \(B\) 的逆矩阵的转置。
A的LU分解
前面的课程我们从矩阵 \(A\) 得到上三角矩阵 \(U\) ,是否存在一个矩阵\(L\),直接描述 \(A\) 和\(U\) 联系?
\(2*2\) 矩阵
举例:我们将矩阵 \(A\) 消元,得到上三角矩阵 \(U\).(\(upper\))
那么什么矩阵能让我们得到 \(A=L.U\) ?我们两边同时乘以 \(E_{21}\) 的逆,就能得到,\(L\) 就是\(E_{21}\) 的逆。注意两边都是左乘。
\(L\) 表示下三角矩阵(\(lower\))。
有时会把 \(U\) 的主元单独列出来:
这个式子叫做 \(LDU\) 分解。
\(3*3\) 矩阵
假设矩阵 \(A\) ,我们通过消元得到 \(U\)
矩阵 \(L\)就是各次消元矩阵的逆反顺序相乘:
到底为什么要写成这种逆的形式?而不用上面式子直接表示?
举例:
其中 \(E_{31}\) 是单位矩阵,下面我们相乘
这是要求的总的消元矩阵 \(E\)
然后进行逆反顺序相乘:
这就是要求的矩阵 \(L\)
可以看出,在L中不会出现像例子中E31(10)这项,这种因为消元产生的次生项,L比E更干净整洁,能一步到位写出来,这种书写能提高计算速度。
L矩阵只要得到主元的比值即可直接写出。
总结
对于 \(A=L.U\) ,如果不存在行交换,消元乘数可以直接写入 \(L\) 中。
意义
\(LU\) 分解的意义,在于优化计算速度(相比顺序高斯消元法)。
在一些实际应用场景中,如果求解方程 \(Ax=b\),系数矩阵 \(A\) 固定,\(b\) 是随输入变化的,求解不同的 \(x\)。这时 \(LU\) 分解就十分有用,通过将 \(A\) 预处理(分解),大大减少操作步骤。
通过将 \(A\) 分解,方程\(Ax=b\) 可以写成 \(L.(Ux)=b\) 形式,把\(Ux\) 替换为 \(y\) ,可以求解下面两个方程求解 \(x\) .
引用在其他地方看到的例子说明:https://blog.csdn.net/wo94chunjie/article/details/103859745
已知
假设 \(b=\left( \begin{array}{c} -9 \\ 5 \\ 7 \\ 11 \\ \end{array} \right)\)
应用 \(A\) 的 \(LU\) 分解求解 \(Ax=b\)
1)解 \(L y=b\) ,仅需6次乘法和6次加法
2)解 \(U x=y\) ,需要4次除法、6次乘法和6次加法
解得 \(x=\left( \begin{array}{c} 3 \\ 4 \\ -6 \\ -1 \\ \end{array} \right)\)
以上过程共需28次算术运算,不包括求\(L\)和\(U\)的运算在内.
而一开始就采用消元法,将 \([A \quad x]\) 化简为 \([I \quad x]\),则需要62次运算,因为中间需要对大量分量元素参与。
步骤数
如果对 \(100*100\) 的矩阵进行高斯消元,得到上三角矩阵 \(U\) ,需要多少次操作?规定乘法+减法=一次操作。
对第一列消元大约 \(100^{2}\) 次。按照计算机思想,每一行有n个元素,按照改变一个元素的值算一次运算。
第二列就大约需要 \(99^{2}\) 次 ,以此类推。
得出规律:
运用积分运算,对 \(x^{2}\) 从1到 \(n\) 积分 就可以算出。
考虑右侧向量 \(b\) ,需要对其进行 \(n^{2}\) 次操作。
置换矩阵
当出现主元为0 的情况下,我们就需要进行行交换。而置换矩阵可以用来进行行交换。
对于 3*3 矩阵,置换矩阵共有6种:
1.单元矩阵(不变): \(\left(\begin{array}{ccc} 1 & 0 & 0 \\ 0 & 1 & 0 \\ 0 & 0 & 1 \\ \end{array} \right)\)
2.同时交换一次:
\(\left(
\begin{array}{ccc}
0 & 1 & 0 \\
1 & 0 & 0 \\
0 & 0 & 1 \\
\end{array}\right)\) , \(\left(
\begin{array}{ccc}
0 & 0 & 1 \\
0 & 1 & 0 \\
1 & 0 & 0 \\
\end{array}\right)\) , \(\left(
\begin{array}{ccc}
1 & 0 & 0 \\
0 & 0 & 1 \\
0 & 1 & 0 \\
\end{array}\right)\)
3.同时交换两次(想象每行同时向上循环移动一次):
\(\left(
\begin{array}{ccc}
0 & 1 & 0 \\
0 & 0 & 1 \\
1 & 0 & 0 \\
\end{array}\right)\),\(\left(
\begin{array}{ccc}
0 & 0 & 1 \\
1 & 0 & 0 \\
0 & 1 & 0 \\
\end{array}
\right)\) .
对于4*4矩阵,就共有24种。
置换性质
对3*3的置换求逆,会发现其逆都在这6个矩阵中,比如
\(\left(\begin{array}{ccc}
0 & 1 & 0 \\
1 & 0 & 0 \\
0 & 0 & 1 \\
\end{array}\right)\) 就是其本身,\(\left(
\begin{array}{ccc}
0 & 1 & 0 \\
0 & 0 & 1 \\
1 & 0 & 0 \\
\end{array}
\right)\),\(\left(
\begin{array}{ccc}
0 & 0 & 1 \\
1 & 0 & 0 \\
0 & 1 & 0 \\
\end{array}
\right)\) 互为逆。
置换矩阵的逆是其转置。