日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

矩阵的分解——LU分解

發(fā)布時(shí)間:2023/12/20 编程问答 47 豆豆
生活随笔 收集整理的這篇文章主要介紹了 矩阵的分解——LU分解 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

LU分解

LU分解是矩陣分解的一種,將一個(gè)矩陣分解為一個(gè)下三角矩陣和一個(gè)上三角矩陣的乘積,有時(shí)需要再乘上一個(gè)置換矩陣。
LU分解可以被視為高斯消元法的矩陣形式。在數(shù)值計(jì)算上,LU分解經(jīng)常被用來(lái)解線性方程組、且在求逆矩陣和計(jì)算行列式中都是一個(gè)關(guān)鍵的步驟。

一、定義

對(duì)于方陣 AAAAAA 的LU分解是將它分解成一個(gè)下三角矩陣 L 與上三角矩陣 U 的乘積,也就是 A=LUA=LUA=LU
舉例來(lái)說(shuō)一個(gè)3×3{\displaystyle 3\times 3}3×3的矩陣 AAA ,其 LU 分解會(huì)寫(xiě)成下面的形式:
A=[a11a12a13a21a22a23a31a32a33]=[l1100l21l220l31l32l33][u11u12u130u22u2300u33]{\displaystyle A={\begin{bmatrix}a_{11}&a_{12}&a_{13}\\a_{21}&a_{22}&a_{23}\\a_{31}&a_{32}&a_{33}\\\end{bmatrix}}={\begin{bmatrix}l_{11}&0&0\\l_{21}&l_{22}&0\\l_{31}&l_{32}&l_{33}\\\end{bmatrix}}{\begin{bmatrix}u_{11}&u_{12}&u_{13}\\0&u_{22}&u_{23}\\0&0&u_{33}\\\end{bmatrix}}}A=???a11?a21?a31??a12?a22?a32??a13?a23?a33?????=???l11?l21?l31??0l22?l32??00l33????????u11?00?u12?u22?0?u13?u23?u33?????

LDU 分解

方陣 A 的LDU分解是是將它分解成一個(gè)單位下三角矩陣 L、對(duì)角矩陣 D 與單位上三角矩陣 U 的乘積,即A=LDU{\displaystyle A=LDU}A=LDU
其中單位上、下三角矩陣是指對(duì)角線上全是 1 的上、下三角矩陣。事實(shí)上,LDU 分解可以推廣到 A 是一般的矩陣,而非方陣。

存在性和唯一性

  • 一個(gè)可逆矩陣可以進(jìn)行LU分解當(dāng)且僅當(dāng)它的所有子式都非零
  • 如果要求其中的L矩陣(或U矩陣)為單位三角矩陣,那么分解是唯一的。
  • 即使矩陣不可逆,LU仍然可能存在。實(shí)際上,如果一個(gè)秩為k的矩陣的前k個(gè)順序主子式不為零,那么它就可以進(jìn)行LU分解,但反之則不然。
  • 二、算法

    LU分解在本質(zhì)上是高斯消元法的一種表達(dá)形式。實(shí)質(zhì)上是將A通過(guò)初等行變換變成一個(gè)上三角矩陣,其變換矩陣就是一個(gè)單位下三角矩陣。這正是所謂的杜爾里特算法(Doolittle algorithm),從下至上地對(duì)矩陣A做初等行變換,將對(duì)角線左下方的元素變成零,然后再證明這些行變換的效果等同于左乘一系列單位下三角矩陣,這一系列單位下三角矩陣的乘積的逆就是L矩陣,它也是一個(gè)單位下三角矩陣。

    杜爾里特算法

    對(duì)給定的N × N矩陣A=(an,n){\displaystyle A=(a_{n,n})}A=(an,n?)A(0):=AA^{{(0)}}:=AA(0):=A
    然后定義對(duì)于 n=1,...,N?1n = 1,...,N-1n=1,...,N?1 的情況如下:
    在第n步,消去矩陣A(n?1)A^{(n-1)}A(n?1)的第n列主對(duì)角線下的元素:A(n?1)A^{(n-1)}A(n?1)的第n行乘以li,n=?ai,n(n?1)an,n(n?1){\displaystyle l_{i,n}=-{\frac {a_{i,n}^{(n-1)}}{a_{n,n}^{(n-1)}}}}li,n?=?an,n(n?1)?ai,n(n?1)??之后加到第iii行上去。其中i=n+1,…,N{\displaystyle i=n+1,\ldots ,N}i=n+1,,N。這相當(dāng)于在A(n?1)A^{(n-1)}A(n?1)的左邊乘上一個(gè)單位下三角矩陣:

    Ln=[10?1ln+1,n???0lN,n1]{\displaystyle L_{n}={\begin{bmatrix}1&&&&&0\\&\ddots &&&&\\&&1&&&\\&&l_{n+1,n}&\ddots &&\\&&\vdots &&\ddots &\\0&&l_{N,n}&&&1\\\end{bmatrix}}}Ln?=??????????10???1ln+1,n??lN,n??????01???????????

    于是,設(shè)A(n)=LnA(n?1){\displaystyle A^{(n)}=L_{n}A^{(n-1)}}A(n)=Ln?A(n?1)經(jīng)過(guò)N-1輪操作后,所有在主對(duì)角線下的系數(shù)都為0了,于是我們得到了一個(gè)上三角矩陣A(N-1),這時(shí)就有:
    A=L1?1L1A(0)=L1?1A(1)=L1?1L2?1L2A(1)=L1?1L2?1A(2)=…=L1?1…LN?1?1A(N?1){\displaystyle A=L_{1}^{-1}L_{1}A^{(0)}=L_{1}^{-1}A^{(1)}=L_{1}^{-1}L_{2}^{-1}L_{2}A^{(1)}=L_{1}^{-1}L_{2}^{-1}A^{(2)}=\ldots =L_{1}^{-1}\ldots L_{N-1}^{-1}A^{(N-1)}}A=L1?1?L1?A(0)=L1?1?A(1)=L1?1?L2?1?L2?A(1)=L1?1?L2?1?A(2)==L1?1?LN?1?1?A(N?1)
    這時(shí),矩陣A(N?1)A^{(N-1)}A(N?1) 就是U,L=L1?1…LN?1?1{\displaystyle L=L_{1}^{-1}\ldots L_{N-1}^{-1}}L=L1?1?LN?1?1?。 下三角矩陣Lk{\displaystyle L_{k}}Lk?的逆依然是下三角矩陣,而且下三角矩陣的乘積仍是下三角矩陣,所以L{\displaystyle L}L是下三角矩陣。 于是我們得到分解:A=LU{\displaystyle A=LU}A=LU

    顯然,要是算法成立,在每步操作時(shí)必須有an,n(n?1)≠0{\displaystyle a_{n,n}^{(n-1)}\neq 0}an,n(n?1)??=0。如果這一條件不成立,就要將第n行和另一行交換,由此就會(huì)出現(xiàn)一個(gè)置換矩陣P。這就是為什么一般來(lái)說(shuō)LU分解里會(huì)帶有一個(gè)置換矩陣的原因。

    例子:
    將一個(gè)簡(jiǎn)單的3×3矩陣A進(jìn)行LU分解:

    A=[123257353]{\displaystyle A={\begin{bmatrix}1&2&3\\2&5&7\\3&5&3\\\end{bmatrix}}}A=???123?255?373????
    先將矩陣第一列元素中a11a_{11}a11?以下的所有元素變?yōu)?,即
    L1A=[100?210?301]×[123257353]=[1230110?1?6]{\displaystyle L_{1}A={\begin{bmatrix}1&0&0\\-2&1&0\\-3&0&1\\\end{bmatrix}}\times {\begin{bmatrix}1&2&3\\2&5&7\\3&5&3\\\end{bmatrix}}={\begin{bmatrix}1&2&3\\0&1&1\\0&-1&-6\\\end{bmatrix}}}L1?A=???1?2?3?010?001????×???123?255?373????=???100?21?1?31?6????
    再將矩陣第二列元素中a22a_{22}a22?以下的所有元素變?yōu)?,即
    L2(L1A)=[100010011]×[1230110?1?6]=[12301100?5]=U{\displaystyle L_{2}(L_{1}A)={\begin{bmatrix}1&0&0\\0&1&0\\0&1&1\\\end{bmatrix}}\times {\begin{bmatrix}1&2&3\\0&1&1\\0&-1&-6\\\end{bmatrix}}={\begin{bmatrix}1&2&3\\0&1&1\\0&0&-5\\\end{bmatrix}}=U}L2?(L1?A)=???100?011?001????×???100?21?1?31?6????=???100?210?31?5????=U
    L=L1?1L2?1=[100210301]×[1000100?11]=[1002103?11]{\displaystyle L=L_{1}^{-1}L_{2}^{-1}={\begin{bmatrix}1&0&0\\2&1&0\\3&0&1\\\end{bmatrix}}\times {\begin{bmatrix}1&0&0\\0&1&0\\0&-1&1\\\end{bmatrix}}={\begin{bmatrix}1&0&0\\2&1&0\\3&-1&1\\\end{bmatrix}}}L=L1?1?L2?1?=???123?010?001????×???100?01?1?001????=???123?01?1?001????

    總結(jié)

    以上是生活随笔為你收集整理的矩阵的分解——LU分解的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

    如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。