线性代数

您所在的位置:网站首页 pa的算法 线性代数

线性代数

2024-01-04 15:15| 来源: 网络整理| 查看: 265

带有置换矩阵(P)的LU分解(即,PA = LU )

        LU分解就是以矩阵的形式记录高斯消元。如果在高斯消元过程中,用到了行交换(碰到了主对角线上的元素为0的情况),则会反应在LU分解的L矩阵中。

        简而言之,LU分解中的U矩阵保存的是高斯消元的结果,这是不会变的。但,记录消元过程的L矩阵,要么就是把行交换的部分直接放在L矩阵中,这种做法得到的结果就是:

A=LU

        此外,还有一种不用L矩阵记录行交换的方法,那就是用一个个的置换矩阵P去记录行交换操作,这样一来,高斯消元的矩阵表示就是:

PA=LU

        在我的笔记本中,出现过两次PA=LU的学习笔记,这是一个比较新的版本,这是一种非常直观的算法,且里面没有说明P矩阵的表示方式:

 这是一个早期的笔记记录,虽然,他一口气就写出了L,U,P三个矩阵,但我并不推荐。 

        下面用Matlab来验证一下上面的计算结果:

1,先把手动计算出来的结果逐一输入Matlab。

2,分别计算PA和LU,看两者计算结果是否相等。其中,PA表示原始矩阵A经过行交换后得到的结果,而LU表示的是经过高斯消元后的结果U,通过左乘还原矩阵L后得到的结果。

PxA

 LxU

最终得到的等式两端的结果相同,证毕!

         现在,我们再来看看Matlab自带函数lu()的计算结果:

1,首先把我们要进行LU分解的原始矩阵A输进去。

 2,然后用Matlab自带的LU函数进行分解,并同时得到P,L,U三个矩阵。

注意: matlab的计算结果和我们手动计算的结果不同,两种结果都是对的。 

下面我们再补充一个例子:(同样,不推荐这个算法) 

逐一输入L,U,P矩阵:

首先,PA=A,得到经过行交换后的A。

 其次,计算LU,理论上LU的结果应该等于PA,(PA,即经过行交换后的A)。

证毕,礼成!

同样,再看看Matlab自带函数lu()的计算结果:

        以上为matlab的计算结果,这和我们手算出来的不一样。

 直接写出L矩阵的方法:

        虽然我在笔记中对EA的计算进行了详细的说明,但是,当我们在手写L矩阵时,还是不希望在经过这种相对复杂的计算,而是,去尝试,用取巧的办法,直接写出EA的乘积。因为,此时E所乘的矩阵A,不是原始的A矩阵,而是始于单位矩阵I的一系列计算。

        而取巧的办法就是在计算EA时,比如说EijA,只需把Eij对应位置的值,填在A矩阵中的对应位置即可。例如:

\large E_{31}=\begin{bmatrix} 1 &0 &0 \\ 0& 1 &0 \\ 2& 0 &1 \end{bmatrix} A=\begin{bmatrix} 1 &0 &0 \\ 5& 1 &0 \\ 0& 0 &1 \end{bmatrix} E_{31}A=\begin{bmatrix} 1 &0 &0 \\ 5& 1 &0 \\ 2& 0 &1 \end{bmatrix}

或:

\large {E_{31}}^{-1}=\begin{bmatrix} 1 &0 &0 \\ 0& 1 &0 \\ -2& 0 &1 \end{bmatrix} A=\begin{bmatrix} 1 &0 &0 \\ 5& 1 &0 \\ 0& 0 &1 \end{bmatrix} {E_{31}}^{-1}A=\begin{bmatrix} 1 &0 &0 \\ 5& 1 &0 \\ -2& 0 &1 \end{bmatrix}

(全文完)

作者 --- 松下J27

格言摘抄:

悟道休言天命,修行勿取真经。《遥远的救世主---豆豆》

参考资料(鸣谢):

1,PA=LU 分解 | 線代啟示錄本文的閱讀等級:中級 令 $latex A&fg=000000$ 是一個 $latex n\times n&fg=000000$ 階可逆矩陣。LU 分解 $latex A=LU&fg=000000$ 是高斯消去法的一種表達形式,下三角矩陣 $latex L=[l_{ij}]&fg=000000$ 記錄消元過程使用的乘數,上三角矩陣 $latex U=[u_{ij}]&fg=000000$ 儲存約化結果,其中 $latex L&fg=000000$ 和 $latex U&fg=000000$ 的主對角元分別滿足 $latex l_{jj}=1&fg=000000$ 和 $latex u_{jj}\neq 0&fg=000000$ (見“LU 分解”)。不過,並非每一可逆矩陣都存在 LU 分解。在執行高斯消去法的化簡程序中,若 $latex 0&fg=000000$ 出現在軸元 (pivot) 位置,即 $latex (j,j)&fg=000000$ 元,列取代運算便無法消去軸元底下各元,這時標準 LU 分解不復存在。可逆矩陣 $latex A&fg=000000$ 的軸元總數 (即 $latex \mathrm{rank}A&fg=000000$) 等於 $latex n&fg=000000$,透過列交換運算必能獲得一個 (非零)…icon-default.png?t=N7T8https://ccjou.wordpress.com/2012/04/13/palu-%E5%88%86%E8%A7%A3/

版权声明:所有的笔记,可能来自很多不同的网站和说明,在此没法一一列出,如有侵权,请告知,立即删除。欢迎大家转载,但是,如果有人引用或者COPY我的文章,必须在你的文章中注明你所使用的图片或者文字来自于我的文章,否则,侵权必究。 ----松下J27



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3