Descomposició LU

De testwiki
Salta a la navegació Salta a la cerca

En àlgebra lineal la descomposició LU (també anomenada factorització LU o LR[1][2]) descompon una matriu com a producte d'una matriu triangular inferior i una matriu triangular superior. Sovint, aquest producte inclou també una matriu permutació. La descomposició LU es pot interpretar com una forma matricial del mètode de reducció de Gauss. En computació, és usual emprar la descomposició LU per resoldre sistemes d'equacions lineals; també és un procés clau en el càlcul de la inversa d'una matriu, i en el càlcul del determinant. El mètode de descomposició LU fou desenvolupat pel matemàtic Alan Turing.[3]

Definicions

Descomposició LDU d'una matriu de Walsh

Sigui A una matriu quadrada. Una descomposició LU és una factorització de A, amb reordenacions o permutacions de les seves files i/o columnes, en dos factors, una matriu triangular inferior L (de l'anglès lower, inferior) i una matriu triangular superior U (de l'anglès upper, superior),[nota 1]

A=LU,

En la matriu triangular inferior, tots els elements per sobre de la diagonal són 0; anàlogament, en la matriu triangular superior, tots els elements per sota de la diagonal són 0. Per exemple, per una matriu A 3×3, la seva descomposició LU té la forma:

[a11a12a13a21a22a23a31a32a33]=[l1100l21l220l31l32l33][u11u12u130u22u2300u33].

Aquesta factorització pot no ser possible si no es realitzen les ordenacions o permutacions adequades sobre la matriu original. Per exemple, és fàcil comprovar (calculant explícitament el producte matricial, entrada per entrada) que a11=l11u11. Si a11=0, llavors o bé l11=0 o bé u11=0 (o tots dos), la qual cosa implicaria que o bé L o bé U és singular. Això no és possible si A no és singular. Hom pot esmenar aquest problema mitjançant reordenant les files de A de tal manera que el primer element de la matriu permutada sigui no-nul. El mateix problema pot sorgir en posteriors passos del procediment, que es pot resoldre de la mateixa forma; vegeu el procediment bàsic més endavant.

Hom pot demostrar que una permutació adequada de les files (o de les columnes) és suficient per la descomposició LU. L'anomenada descomposició LU amb pivot parcial fa referència a la descomposició LU que només té permutacions de files:

PA=LU,

on L i U són les matrius triangulars inferior i superior respectivament, i P és una matriu permutació que, quan multiplica per l'esquerra a A, reordena les files de A. Hom pot veure que qualsevol matriu quadrada es pot descompondre d'aquesta manera,[4] i la descomposició és numèricament estable.[5] Això fa que la descomposició LUP sigui una tècnica útil a la pràctica.

En una descomposició LU amb pivot complet intervenen permutacions de files i de columnes:

PAQ=LU,

on L, U i P són com abans, i Q és una matriu permutació que reordena les columnes de A.[6]

Una descomposició LDU és una descomposició de la forma

A=LDU,

on D és una matriu diagonal, i L i U són matrius triangulars unitàries, la qual cosa vol dir que totes les entrades de les diagonals de L i de U valen 1.

Abans hem suposat que A és una matriu quadrada, però aquestes descomposicions es poden generalitzar per matrius rectangulars. En aquest cas L i P són matrius quadrades amb el mateix nombre de files que A, mentre que U té exactament el mateix nombre de files i de columnes que A. Aquí, s'ha d'interpretar triangular superior com que té entrades 0 per sota de la diagonal principal, que comença a l'entrada superior esquerra.

Exemple

Descomponem la següent matriu 2×2:

[4363]=[l110l21l22][u11u120u22].

Una manera de trobar la descomposició LU d'aquesta matriu senzilla seria resoldre el sistema d'equacions lineals. Si multipliquem explícitament L per U, obtenim:

{l11u11+00=4l11u12+0u22=3l21u11+l220=6l21u12+l22u22=3.

Aquest sistema d'equacions és indeterminat. En aquest cas, dos elements no-nuls qualssevol de les matrius L i U poden actuar com a paràmetres de la solució, i poden prendre qualsevol valor no-nul. Per tant, per trobar la descomposició LU única, és necessari fixar alguna restricció sobre les matrius L i U. Per exemple, podem requerir que la matriu triangular inferior L sigui unitària (és a dir, que totes les entrades de la seva diagonal principal valguin 1). Aleshores, el sistema d'equacions té la següent solució:

{l21=1,5u11=4u12=3u22=1,5.

Si substituïm aquests valors en la descomposició LU anterior, obtenim

[4363]=[101,51][4301,5].

Existència i unicitat

Matrius quadrades

Tota matriu quadrada A admet una descomposició LUP.[4] Si A és invertible, llavors admet una descomposició LU (o LDU) si i només si tots els seus menors principals són no-nuls.[7] Si A és una matriu singular de rang k, llavors adment una descomposició LU si els k primers menors principals són no-nuls (el recíproc no és cert).[8]

Si una matriu quadrada invertible té una descomposició LDU, llavors és única.[7] En aquest cas, la descomposició LU també és única si afegim la hipòtesi que totes les entrades de la diagonal de L (o de la de U) valguin 1.

Matrius simètriques definides positives

Si A és una matriu simètrica (o hermítica, si A és complexa) definida positiva, podem aconseguir que U sigui la transposada conjugada de L. És a dir, podem escriure A com

A=LL*.

Aquesta descomposició s'anomena descomposició de Cholesky. La descomposició de Cholesky sempre existeix i és única. Addicionalment, el càlcul de la descomposició de Cholesky és més eficient i numèricament més estable que el càlcul d'altres descomposicions LU.

Cas general

Per una matriu (no necessàriament invertible) sobre un cos qualsevol, hom coneix de manera precisa les condicions necessàries i suficients per la seva factorització LU. Aquestes condicions s'expressen en termes dels rangs de certes submatrius. L'algorisme de reducció de Gauss per obtenir la descomposició LU es pot estendre a aquest cas més general.[9]

Algorismes

La descomposició LU és bàsicament una forma modificada del mètode de reducció de Gauss. Transformem la matriu A en una matriu triangular superior U, mitjançant l'eliminació de les entrades per sota de la diagonal principal. L'algorisme de Doolittle realitza aquesta eliminació columna per columna començant des de l'esquerra, multiplicant A per l'esquerra per matrius triangulars inferiors atòmiques. Això proporciona una matriu triangular inferior unitària i una matriu triangular superior. L'algorisme de Crout és lleugerament diferent, i construeix una matriu triangular inferior i una matriu triangular superior unitària.

El càlcul de la descomposició LU mitjançant qualsevol d'aquests algorismes necessita 2n3 / 3 operacions en coma flotant, si ignorem els termes d'ordre inferior. Si fem servir el mètode del pivot parcial, només s'hi afegeix un terme quadràtic; però això no és cert pel mètode de pivot complet.[10]

Fórmula tancada

Quan existeix una factorització LDU única, existeix una fórmula tancada (explícita) pels elements de L, D i U en termes dels quocients dels determinants de certes submatrius de la matriu original A.[11] En particular, D1=A1,1 i per i=2,,n, Di és el quocient de la i-sima submatriu principal entre la (i-1)-sima submatriu principal.

Algorisme de Doolittle

Donada una matriu N × N

A=(an,n)

definim

A(0)=A

i llavors iterem n = 1,...,N-1 de la següent manera.

Eliminem els elements per sota de la diagonal principal a la n-sima columna de A(n-1) tot sumant a la i-sima fila d'aquesta matriu la n-sima columna multiplicada per

li,n=ai,n(n1)an,n(n1)

per i=n+1,,N. Això es pot realitzar multiplicant A(n-1) per l'esquerra per la matriu triangular inferior

Ln=(101ln+1,n0lN,n1).

Definim

A(n)=LnA(n1).

Després de N-1 passos, hem eliminat tots els elements per sota de la diagonal principal, de tal manera que tenim una matriu triangular superior A(N-1). Hem trobat, doncs, la descomposició

A=L11L1A(0)=L11A(1)=L11L21L2A(1)=L11L21A(2)==L11LN11A(N1).

Denotem la matriu triangular superior A(N-1) per U, i L=L11LN11. Com que la inversa d'una matriu triangular inferior Ln és també una matriu triangular inferior, i la multiplicació de dues matrius triangulars inferiors també és una matriu triangular inferior, tenim que L és una matriu triangular inferior. És mes, podem veure que

L=(10l2,11ln+1,n1lN,1lN,nlN,N11).

Així obtenim A=LU.

És obvi que, per tal que aquest algorisme funcioni, hom necessita que els elements an,n(n1) siguin diferents de 0 en cada pas (vegeu la definició de li,n). Si això no es compleix en algun moment, es necessita intercanviar la n-sima fila per una altra fila que estigui per sota, abans de continuar. Aquest és el motiu pel qual la descomposició LU, en general, té la forma P1A=LU.

Algorismes de Crout i LUP

L'algorisme de Cormen et al. per la descomposició LUP és una generalització de la descomposició matricial de Crout. Es pot descriure de la següent manera:

  1. Si A té una entrada no-nul·la en la primera fila, llavors prenem una matriu permutació P1 tal que AP1 tingui una entrada no-nul·la com a element superior esquerre. Altrament, agafem P1 que sigui la matriu identitat. Sigui A1=AP1.
  2. Sigui A2 la matriu que s'obté a partir de A1 tot eliminant-ne la primera fila i la primera columna. Descomponem A2=L2U2P2 de forma recursiva. Construïm L a partir de L2 afegint-hi una fila amb zeros a la part superior, i després afegint-hi la primera columna de A1 a l'esquerra.
  3. Construïm U3 a partir de U2 afegint-hi una fila amb zeros a la part superior i una columna amb zeros a l'esquerra, i llavors substituint l'element superior esquerre (que de moment val 0) per 1. Construïm P3 a partir de P2 de forma semblant, i definim A3=A1/P3=AP1/P3. Sigui P la inversa de P1/P3.
  4. En aquest punt, A3 és igual a LU3, excepte (possiblement) la primera fila. Si la primera fila de A és zero, llavors A3=LU3, ja que totes dues tenen la primera fila a zeros, i llavors es compleix que A=LU3P, com desitjàvem. Altrament, A3 i LU3 tenen la mateixa entrada no-nul·la a l'extrem superior esquerre, i A3=LU3U1 per alguna matriu quadrada triangular superior U1 amb valors 1 a la diagonal (U1 «neteja» entrades de LU3 i afegeix entrades de A3 a través de l'extrem superior esquerre). En aquest moment, A=LU3U1P és una descomposició de la forma desitjada.

Complexitat

Si dues matrius d'ordre n es poden multiplicar en temps M(n), on M(n)≥na per algun a>2, llavors la descomposició LU es pot calcular en temps O(M(n)).[12] Això significa, per exemple, que existeix un algorisme d'ordre O(n2,376) basat en l'algorisme de Coppersmith–Winograd.

Decomposició per matrius disperses

Existeixen algorismes específics per factoritzar matrius disperses grans. Aquests algorismes intenten trobar factors dispersos L i U. En general, el cost de càlcul està determinat pel nombre d'entrades no-nul·les, en comptes de per la grandària de la matriu.

Aquests algorismes usen l'intercanvi de files i columnes per evitar l'aparició d'entrades que canvien de 0 a un valor diferent durant l'execució de l'algorisme. Mitjançant la teoria de grafs, hom pot analitzar aquestes reordenacions de files i columnes.

Reducció LU

Plantilla:Vegeu també La reducció LU és un algorisme relacionat amb la descomposició LU. Aquest terme s'acostuma a utilitzar en el context de supercomputació i més específicament en computació paral·lela. En aquest context, la reducció LU s'usa com un algorisme de benchmarking, és a dir, proporciona una mesura comparativa de la velocitat per diferents computadors. La reducció LU és una versió especial paral·lelitzada d'un algorisme per la descomposició LU (vegeu-ne un exemple[13]). La versió paral·lelitzada distribueix la càrrega de treball sobre una fila de la matriu cap a un sol processador, i després sincronitza el resultat amb la matriu sencera.[14][15]

Aplicacions

Resolució d'equacions lineals

Donat un sistema d'equacions lineals en forma matricial

Ax=b,

volem resoldre l'equació per x, si coneixem A i b. Suposem que hem obtingut la descomposició LUP de A tal que PA=LU, (o la descomposició LU si existeix, i llavors P=I); aleshores podem reescriure l'equació com

LUx=Pb.

En aquest cas, hom troba la solució en dos passos lògics:

  1. Primer, resolem l'equació Ly=Pb per y.
  2. Segon, resolem l'equació Ux=y per x.

Notem que, en tots dos passos, estem treballant amb matrius triangulars (L i U) que es poden resoldre directament per substitució enrere i endavant, sense necessitat de fer servir el mètode de reducció de Gauss.

Hom pot emprar el procediment anterior de forma repetida per resoldre l'equació diverses vegades per diferents b. En aquest cas, és més ràpid (i més convenient) realitzar una descomposició LU de la matriu A una sola vegada, i llavors resoldre les matrius triangulars pels diferents b, en comptes d'usar la reducció de Gauss cada cop. Es pot interpretar que les matrius L i U han «codificat» el procés de reducció de Gauss.

El cost de resoldre un sistema d'equacions lineals és aproximadament 23n3 operacions de coma flotant si la matriu A té grandrària n. Això ho fa dues vegades més ràpid que els algorismes basats en una descomposició QR, que té un cost aproximat de 43n3 operacions de coma flotant, si usem transformacions de Householder. Per aquest motiu, hom prefereix usar la descomposició LU.[16]

Càlcul de la inversa d'una matriu

En la resolució de sistemes d'equacions lineals, normalment tenim un vector b de longitud igual a l'alçada de la matriu A. En comptes d'un vector b, podem tenir una matriu B de dimensió n per p, amb la qual cosa estem intentant trobar una matriu X (també de dimensió n per p) tal que

AX=LUX=B.

Podem usar el mateix algorisme que hem vist per resoldre cada columna de la matriu X. Si ara suposem que B és la matriu identitat de dimensió n, tenim que la matriu X resultant és la inversa de A.[17]

Càlcul del determinant

Donada la descomposició LUP A=P1LU d'una matriu quadrada A, es pot calcular directament el determinant de A de la següent manera:

det(A)=det(P1)det(L)det(U)=(1)S(i=1nlii)(i=1nuii).

La segona equació és una conseqüència del fet que el determinan d'una matriu triangular és simplement el producte dels elements de la seva diagonal, i que el determinant d'una matriu permutació és igual a (−1)S, on S és el nombre d'intercanvis de files de la descomposició.

El mateix procediment és vàlid per la descomposició LU; només cal considerar P com la matriu identitat.

Notes

  1. La nomenclatura LR també prové de l'anglès, en aquest cas de left, esquerra, i right, dreta, car una matriu triangular inferior L té els seus elements no nuls a l'esquerra de la diagonal principal (inclosa); anàlogament, una matriu triangular superior U o R té els seus elements no nuls a la dreta de la diagonal principal (inclosa).

Referències

Plantilla:Referències

Bibliografia

Vegeu també

Enllaços externs

  1. Plantilla:Ref-web
  2. Plantilla:Ref-llibre
  3. Plantilla:Harvtxt
  4. 4,0 4,1 Plantilla:Harvtxt, Corol·lari 3
  5. Plantilla:Harvtxt, p. 166
  6. Plantilla:Harvtxt, p. 161
  7. 7,0 7,1 Plantilla:Harvtxt, Corol·lari 3.5.5
  8. Plantilla:Harvtxt, Teorema 3.5.2
  9. Plantilla:Harvtxt
  10. Plantilla:Harvtxt, p. 112, 119
  11. Plantilla:Harvtxt
  12. Plantilla:Harvtxt
  13. J. Guitart, X. Martorell, J. Torres, E. Ayguadé: Improving Java Multithreading Facilities: the Java Nanos Environment, Research Report UPC-DAC-2001-8, Departament d'Arquitectura de Computadors, Universitat Politècnica de Catalunya, març 2001, [1]Plantilla:Enllaç no actiu
  14. Plantilla:Ref-llibre Plantilla:Webarchive
  15. Plantilla:Ref-publicació Plantilla:Webarchive
  16. Plantilla:Harvtxt, p. 152
  17. Plantilla:Harvtxt, p. 121