56
– Typeset by GMNI & Foil T E X

Typeset by GMNI & FoilTEX - UDC

  • Upload
    others

  • View
    4

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Typeset by GMNI & FoilTEX - UDC

– Typeset by GMNI & FoilTEX –

Page 2: Typeset by GMNI & FoilTEX - UDC

METODOS DIRECTOS PARAGRANDES SISTEMAS DE ECUACIONES LINEALES:

FACTORIZACIONES DE CROUT Y CHOLESKYF. Navarrina, I. Colominas, M. Casteleiro, H. Gomez, J. Parıs

GMNI — GRUPO DE METODOS NUMERICOS EN INGENIERIA

Departamento de Metodos Matematicos y de RepresentacionEscuela Tecnica Superior de Ingenieros de Caminos, Canales y Puertos

Universidad de A Coruna, Espana

e-mail: [email protected] web: http://caminos.udc.es/gmni

UNIVERSIDAD DE A CORUNA — GRUPO DE METODOS NUMERICOS EN INGENIERIA

Page 3: Typeset by GMNI & FoilTEX - UDC

INDICE

I FACTORIZACION DE CROUT A˜ = L˜ D˜ U˜• Fundamentos teoricos. Condiciones de existencia• Algoritmos de factorizacion y de solucion de sistemas• Programacion. Almacenamiento de los resultados sobre los datos• Adaptacion para almacenamientos en banda y perfil

I FACTORIZACION DE CHOLESKY A˜ = L˜ D˜ L˜T

• Fundamentos teoricos. Condiciones de existencia• Algoritmos de factorizacion y de solucion de sistemas• Programacion. Almacenamiento de los resultados sobre los datos• Adaptacion para almacenamientos en banda y perfil

ICONDICIONES DE VINCULACION [coacciones]

I IMPLEMENTACION• Metodo de Cholesky para matrices en perfil (“Column Profile” o “Sky-Line”)

UNIVERSIDAD DE A CORUNA — GRUPO DE METODOS NUMERICOS EN INGENIERIA

Page 4: Typeset by GMNI & FoilTEX - UDC

FACTORIZACION DE CROUT: Fundamentos Teoricos (I)

FACTORIZACION DE CROUT [A˜ = L˜ D˜ U˜ ]

Sea el problema

A˜ x = b con A˜ =

a11 a12 · · · a1n

a21 a22 · · · a2n... ... . . . ...an1 an2 · · · ann

, x =

x1

x2...xn

, b =

b1

b2...bn

.

La FACTORIZACION DE CROUT consiste en:

A˜ = L˜ D˜ U˜ =⇒ L˜z︷ ︸︸ ︷

D˜ U˜ x︸︷︷︸y

= b =⇒

L˜ z = b,

↘D˜ y = z,

↘U˜ x = y.

UNIVERSIDAD DE A CORUNA — GRUPO DE METODOS NUMERICOS EN INGENIERIA

Page 5: Typeset by GMNI & FoilTEX - UDC

FACTORIZACION DE CROUT: Fundamentos Teoricos (IIa)

FUNCIONAMIENTO DEL METODO

Supongamos que ya hemos factorizado

A˜k = L˜k D˜ k U˜k, con A˜k =

[a11 · · · a1k... . . . ...ak1 · · · akk

],

siendo

L˜k =

[l11 0... . . .

lk1 · · · lkk

], D˜ k =

[d11 0

. . .0 dkk

], U˜k =

[u11 · · · u1k. . . ...0 ukk

].

UNIVERSIDAD DE A CORUNA — GRUPO DE METODOS NUMERICOS EN INGENIERIA

Page 6: Typeset by GMNI & FoilTEX - UDC

FACTORIZACION DE CROUT: Fundamentos Teoricos (IIb)

Pretendemos factorizar (a partir de lo anterior)

A˜k+1 = L˜k+1 D˜ k+1 U˜k+1, con A˜k+1 =

A˜k ck+1

fTk+1

ak+1,k+1

,

de forma que

Lek+1 =

266666664Lek 0

lTk+1lk+1,k+1

377777775, De k+1 =

266666664De k 0

0T dk+1,k+1

377777775, Uek+1 =

26666666664

Uek uk+1

0T uk+1,k+1

37777777775.

donde

ck+1 =

8<:a1,k+1

...ak,k+1

9=; , uk+1 =

8<:u1,k+1

...uk,k+1

9=; ,

fTk+1 = [ ak+1,1 · · · ak+1,k ] , l

Tk+1 = [ lk+1,1 · · · lk+1,k ] .

UNIVERSIDAD DE A CORUNA — GRUPO DE METODOS NUMERICOS EN INGENIERIA

Page 7: Typeset by GMNI & FoilTEX - UDC

FACTORIZACION DE CROUT: Fundamentos Teoricos (IIc)

Multiplicamos por cajas . . .

De k+1 Uek+1 =

266666666666664

De k Uek +

0ez}|{0 0

TDe k uk+1 +

0z }| {0 uk+1,k+1

0T

Uek

| {z }0

T

+ dk+1,k+1 0T

| {z }0

T

0T

uk+1

| {z }0

+ dk+1,k+1 uk+1,k+1

377777777777775.

Lek+1

`De k+1 Uek+1

´=

266666666666664

Lek De k Uek +

0ez}|{0 0

TLek De k uk+1 +

0z }| {0 dk+1,k+1 uk+1,k+1

lTk+1De k Uek + lk+1,k+1 0T

| {z }0

T

lTk+1De k uk+1 + lk+1,k+1 dk+1,k+1 uk+1,k+1

377777777777775.

UNIVERSIDAD DE A CORUNA — GRUPO DE METODOS NUMERICOS EN INGENIERIA

Page 8: Typeset by GMNI & FoilTEX - UDC

FACTORIZACION DE CROUT: Fundamentos Teoricos (IId)

Igualamos . . .266666664Aek ck+1

fTk+1

ak+1,k+1

377777775=

266666664Lek De k Uek Lek De k uk+1

lTk+1De k Uek lTk+1De k uk+1 + lk+1,k+1 dk+1,k+1 uk+1,k+1

377777775,

lo que por cajas equivale a

A˜k = L˜k D˜ k U˜k, [⇐ HIPOTESIS]

ck+1 = L˜k D˜ k uk+1 ,

fTk+1 = lTk+1 D˜ k U˜k,

ak+1,k+1 = lTk+1 D˜ k uk+1 + lk+1,k+1 dk+1,k+1 uk+1,k+1 .

UNIVERSIDAD DE A CORUNA — GRUPO DE METODOS NUMERICOS EN INGENIERIA

Page 9: Typeset by GMNI & FoilTEX - UDC

FACTORIZACION DE CROUT: Fundamentos Teoricos (IIe)

Por tanto . . .

1. El vector uk+1 es la solucıon del sistema:

[L˜k D˜ k] uk+1 = ck+1 .

2. El vector lk+1 es la solucıon del sistema:[U˜T

k D˜ k

]lk+1 = fk+1 .

3. Los coeficientes lk+1,k+1, dk+1,k+1 y uk+1,k+1 verifican:

lk+1,k+1 dk+1,k+1 uk+1,k+1 = ak+1,k+1 − lTk+1D˜ k uk+1. (*)

(*) Donde lk+1 y uk+1 se habran calculado previamente.Hay infinitas descomposiciones posibles. Por convenio, se eligen (arbitrariamente) los valores:

lk+1,k+1 = 1, uk+1,k+1 = 1 =⇒ dk+1,k+1 = ak+1,k+1 − lTk+1De k uk+1.

UNIVERSIDAD DE A CORUNA — GRUPO DE METODOS NUMERICOS EN INGENIERIA

Page 10: Typeset by GMNI & FoilTEX - UDC

FACTORIZACION DE CROUT: Fundamentos Teoricos (IIf)

4. Para k = 1:

A˜1 = L˜1 D˜ 1 U˜1 =⇒ l11 d11 u11 = a11 . (*)

5. Para k = n:

A˜n = A˜ =⇒ A˜ = L˜ D˜ U˜ con

L˜ = L˜n,

D˜ = D˜ n,

U˜ = U˜n.

(*) Hay infinitas descomposiciones posibles. Por convenio, se eligen (arbitrariamente) los valores:

l11 = 1, u11 = 1 =⇒ d11 = a11 .

UNIVERSIDAD DE A CORUNA — GRUPO DE METODOS NUMERICOS EN INGENIERIA

Page 11: Typeset by GMNI & FoilTEX - UDC

FACTORIZACION DE CROUT: Fundamentos Teoricos (IIIa)

REALIZACION DE LOS CALCULOS

1. FACTORIZACION DE LA MATRIZ:

Asignar l11 = 1, u11 = 1,

d11 = a11 .

Para k = 1, . . . , n− 1

Resolver[L˜k D˜ k

]uk+1 = ck+1 ,

[U˜k

TD˜ k

]lk+1 = fk+1 .

Asignar lk+1,k+1 = 1, uk+1,k+1 = 1,

dk+1,k+1 = ak+1,k+1 − lTk+1D˜ k uk+1.

UNIVERSIDAD DE A CORUNA — GRUPO DE METODOS NUMERICOS EN INGENIERIA

Page 12: Typeset by GMNI & FoilTEX - UDC

FACTORIZACION DE CROUT: Fundamentos Teoricos (IIIb)

Notas:

1. Los sistemas [L˜k D˜ k] uk+1 = ck+1 se resuelven en dos fases:

L˜k

vk+1︷ ︸︸ ︷D˜ k uk+1 = ck+1 =⇒

L˜k vk+1 = ck+1,

↘D˜ k uk+1 = vk+1.

2. Los sistemas[U˜T

k D˜ k

]lk+1 = fk+1 se resuelven en dos fases:

U˜Tk

mk+1︷ ︸︸ ︷D˜ k lk+1 = fk+1 =⇒

U˜T

k mk+1 = fk+1,↘

D˜ k lk+1 = mk+1.

UNIVERSIDAD DE A CORUNA — GRUPO DE METODOS NUMERICOS EN INGENIERIA

Page 13: Typeset by GMNI & FoilTEX - UDC

FACTORIZACION DE CROUT: Fundamentos Teoricos (IIIc)

REALIZACION DE LOS CALCULOS (continuacion)

2. SOLUCION DE SISTEMAS:

Resolver L˜ z = b ,

D˜ y = z ,

U˜ x = y .

UNIVERSIDAD DE A CORUNA — GRUPO DE METODOS NUMERICOS EN INGENIERIA

Page 14: Typeset by GMNI & FoilTEX - UDC

FACTORIZACION DE CROUT: Fundamentos Teoricos (IVa)

CONDICIONES DE EXISTENCIAPor construccion (unos en la diagonal principal), se cumple

det(Lek) = det(Uek) = 1 para k = 1, . . . , n.

Por tanto, basta con que se cumplan las condiciones(det(De k) 6= 0, k = 1, . . . , n− 1 para que pueda realizarse la factorizacion,

det(De k) 6= 0, k = n para que pueda realizarse la solucion de sistemas.

Por otro lado,

Aek = Lek De k Uek =⇒ det(Aek) = det(Lek) det(De k) det(Uek) = det(De k) ∀k.

Luego, las condiciones de existencia pueden expresarse en la forma

(det(Aek) 6= 0, k = 1, . . . , n− 1 para que pueda realizarse la factorizacion,

det(Aek) 6= 0, k = n para que pueda realizarse la solucion de sistemas.

UNIVERSIDAD DE A CORUNA — GRUPO DE METODOS NUMERICOS EN INGENIERIA

Page 15: Typeset by GMNI & FoilTEX - UDC

FACTORIZACION DE CROUT: Fundamentos Teoricos (IVb)

En general, podemos afirmar que:

♥ Si la matriz es REGULARhdet(Ae) 6= 0

i. . .

♠ puede pasar que la factorizacion exista; (*)

♠ puede pasar que la factorizacion NO exista; (**)

♠ es practicamente imposible comprobar a priori la condicion de existencia anterior;

♣ es sencillo (y RECOMENDABLE en todo caso) comprobar sobre la marcha que

d11 6= 0, dk+1,k+1 6= 0 para k = 1, . . . , n.

♠ Aunque la matriz sea SINGULARhdet(Ae) = 0

i. . .

♠ puede pasar que la factorizacion exista; (*)

♠ pero no se podra utilizar para resolver el sistema. (***)

(*) Esto sucedera cuando det(Aek) 6= 0, k = 1, . . . , n− 1.

(**) Esto sucedera cuando no se cumpla la condicion anterior. Por ejemplo, cuando a11 = 0.Al igual que en el Metodo de Gauss, estos casos requieren PIVOTAMIENTO (intercambio de filas y/o columnas).El problema es que el pivotamiento casa mal con los almacenamientos en banda y en perfil.

(***) Porque el sistema no tiene solucion y el algoritmo fallara al resolver De y = z .

UNIVERSIDAD DE A CORUNA — GRUPO DE METODOS NUMERICOS EN INGENIERIA

Page 16: Typeset by GMNI & FoilTEX - UDC

FACTORIZACION DE CROUT: Fundamentos Teoricos (IVc)

Un caso importante es el de las MATRICES DEFINIDAS:

Ae DEFINIDA =⇒ det(Aek) 6= 0, k = 1, . . . , n.

Luego, si A˜ es DEFINIDA (positiva o negativa)

♦ puede realizarse la factorizacion y

♦ puede realizarse la solucion de sistemas.

UNIVERSIDAD DE A CORUNA — GRUPO DE METODOS NUMERICOS EN INGENIERIA

Page 17: Typeset by GMNI & FoilTEX - UDC

FACTORIZACION DE CROUT: Algoritmos (I)

1. FACTORIZACION DE LA MATRIZ:

l11 = 1, u11 = 1

d11 = a11

DO k=1,n-1

ui,k+1 = ai,k+1 −i−1Xj=1

lij uj,k+1 ; i = 1, . . . , k

ui,k+1 = ui,k+1 / dii ; i = 1, . . . , k

lk+1,i = ak+1,i −i−1Xj=1

uji lk+1,j ; i = 1, . . . , k

lk+1,i = lk+1,i / dii ; i = 1, . . . , k

lk+1,k+1 = 1, uk+1,k+1 = 1

dk+1,k+1 = ak+1,k+1 −kX

j=1

lk+1,j djj uj,k+1

ENDDO

UNIVERSIDAD DE A CORUNA — GRUPO DE METODOS NUMERICOS EN INGENIERIA

Page 18: Typeset by GMNI & FoilTEX - UDC

FACTORIZACION DE CROUT: Algoritmos (II)

2. SOLUCION DE SISTEMAS: (*)

zi = bi −i−1Xj=1

lij zj ; i = 1, . . . , n

yi = zi / dii ; i = 1, . . . , n

xi = yi −nX

j=i+1

uij xj ; i = n, . . . , 1,−1

(*) Este planteamiento es adecuado para matrices en banda pero inadecuado para matrices en perfildebido a que el bucle interno de la ultima expresion (sumatorio) barre la matriz Ue por filas.

UNIVERSIDAD DE A CORUNA — GRUPO DE METODOS NUMERICOS EN INGENIERIA

Page 19: Typeset by GMNI & FoilTEX - UDC

FACTORIZACION DE CROUT: Algoritmos (III)

2. SOLUCION DE SISTEMAS: [Planteamiento Alternativo] (*)

zi = bi −i−1Xj=1

lij zj ; i = 1, . . . , n

yi = zi / dii ; i = 1, . . . , n

xi = yi ; i = 1, . . . , n

xj = xj − uji xi ; j = 1, . . . , i− 1 ; i = n, . . . , 2,−1

(*) Este planteamiento es adecuado para matrices en banda y tambien para matrices en perfil.Observese que el bucle interno de la ultima expresion barre ahora la matriz Ue por columnas.

UNIVERSIDAD DE A CORUNA — GRUPO DE METODOS NUMERICOS EN INGENIERIA

Page 20: Typeset by GMNI & FoilTEX - UDC

FACTORIZACION DE CROUT: Programacion (–)

Es facil comprobar que

• podemos almacenar L˜, D˜ y U˜ sobre A˜ ;

• podemos almacenar z, y y x sobre b;

Ası. . .a11 a12 a13 · · · a1n

a21 a22 a23 · · · a2n

a31 a32 a33 · · · a3n... ... ... . . . ...an1 an2 an3 · · · ann

se transformara en−→

d11 u12 u13 · · · u1n

l21 d22 u23 · · · u2n

l31 l32 d33 · · · u3n... ... ... . . . ...ln1 ln2 ln3 · · · dnn

.

b1

b2

b3...bn

se transformara en−→

z1

z2

z3...zn

se transformara en−→

y1

y2

y3...yn

se transformara en−→

x1

x2

x3...xn

.

UNIVERSIDAD DE A CORUNA — GRUPO DE METODOS NUMERICOS EN INGENIERIA

Page 21: Typeset by GMNI & FoilTEX - UDC

FACTORIZACION DE CROUT: Programacion (I)

1. FACTORIZACION DE LA MATRIZ:

DO k=1,n-1

ai,k+1 ← ai,k+1 −i−1Xj=1

aij aj,k+1 ; i = 2, . . . , k

ai,k+1 ← ai,k+1 / aii ; i = 1, . . . , k

ak+1,i ← ak+1,i −i−1Xj=1

aji ak+1,j ; i = 2, . . . , k

ak+1,i ← ak+1,i / aii ; i = 1, . . . , k

ak+1,k+1 ← ak+1,k+1 −kX

j=1

ak+1,j ajj aj,k+1

ENDDO

UNIVERSIDAD DE A CORUNA — GRUPO DE METODOS NUMERICOS EN INGENIERIA

Page 22: Typeset by GMNI & FoilTEX - UDC

FACTORIZACION DE CROUT: Programacion (II)

2. SOLUCION DE SISTEMAS: (*)

bi ← bi −i−1Xj=1

aij bj ; i = 2, . . . , n

bi ← bi / aii ; i = 1, . . . , n

bi ← bi −nX

j=i+1

aij bj ; i = n−1, . . . , 1,−1

(*) Este planteamiento es adecuado para matrices en banda pero inadecuado para matrices en perfildebido a que el bucle interno de la ultima expresion (sumatorio) barre la parte superior de la matriz Ae por filas.

UNIVERSIDAD DE A CORUNA — GRUPO DE METODOS NUMERICOS EN INGENIERIA

Page 23: Typeset by GMNI & FoilTEX - UDC

FACTORIZACION DE CROUT: Programacion (III)

2. SOLUCION DE SISTEMAS: [Planteamiento Alternativo] (*)

bi ← bi −i−1Xj=1

aij bj ; i = 2, . . . , n

bi ← bi / aii ; i = 1, . . . , n

bj ← bj − aji bi ; j = 1, . . . , i− 1 ; i = n, . . . , 2,−1

(*) Este planteamiento es adecuado para matrices en banda y tambien para matrices en perfil.Observese que el bucle interno de la ultima expresion barre ahora la parte superior de la matriz Ae por columnas.

UNIVERSIDAD DE A CORUNA — GRUPO DE METODOS NUMERICOS EN INGENIERIA

Page 24: Typeset by GMNI & FoilTEX - UDC

FACTORIZACION DE CROUT: Adaptacion a Banda y Perfil (Ia)

Sea la matriz A˜ tal que

A˜ =

00

ai−u(i),i

...

...ai−1,i

0 0 ai,i−`(i) · · · · · · ai,i−1 aii −→ fila i

↓columna i

donde (

`(i) ≡ semiancho de banda inferior de la fila i,

u(i) ≡ semiancho de banda superior de la columna i.

UNIVERSIDAD DE A CORUNA — GRUPO DE METODOS NUMERICOS EN INGENIERIA

Page 25: Typeset by GMNI & FoilTEX - UDC

FACTORIZACION DE CROUT: Adaptacion a Banda y Perfil (Ib)

Examinamos en detalle el calculo

{de la fila k + 1 de L˜, y

de la columna k + 1 de U˜ .

ui,k+1 = ai,k+1 −i−1Xj=1

lij uj,k+1 ; i = 1, . . . , k

ui,k+1 = ui,k+1 / dii ; i = 1, . . . , k −→ IRRELEVANTE

lk+1,i = ak+1,i −i−1Xj=1

uji lk+1,j ; i = 1, . . . , k

lk+1,i = lk+1,i / dii ; i = 1, . . . , k −→ IRRELEVANTE

UNIVERSIDAD DE A CORUNA — GRUPO DE METODOS NUMERICOS EN INGENIERIA

Page 26: Typeset by GMNI & FoilTEX - UDC

FACTORIZACION DE CROUT: Adaptacion a Banda y Perfil (Ic)

Observamos que (a falta de dividir por los elementos dii) . . .8>>>>>>>>>>>>>>>>>>>><>>>>>>>>>>>>>>>>>>>>:

i = 1 −→ ai,k+1 = 0 ⇒ ui,k+1 = ai,k+1 −i−1Xj=1

lij uj,k+1 = 0 ,

i = 2 −→ ai,k+1 = 0 ⇒ ui,k+1 = ai,k+1 −i−1Xj=1

lij uj,k+1 = 0 ,

...

i = (k + 1)− u(k + 1)− 1 −→ ai,k+1 = 0 ⇒ ui,k+1 = ai,k+1 −i−1Xj=1

lij uj,k+1 = 0 ,

i = (k + 1)− u(k + 1) −→ ai,k+1 6= 0 ⇒ ui,k+1 = ai,k+1 −i−1Xj=1

lij uj,k+1 = ai,k+1 6= 0 .

8>>>>>>>>>>>>>>>>>>>><>>>>>>>>>>>>>>>>>>>>:

i = 1 −→ ak+1,i = 0 ⇒ lk+1,i = ak+1,i −i−1Xj=1

uji lk+1,j = 0 ,

i = 2 −→ ak+1,i = 0 ⇒ lk+1,i = ak+1,i −i−1Xj=1

uji lk+1,j = 0 ,

...

i = (k + 1)− `(k + 1)− 1 −→ ak+1,i = 0 ⇒ lk+1,i = ak+1,i −i−1Xj=1

uji lk+1,j = 0 ,

i = (k + 1)− `(k + 1) −→ ak+1,i 6= 0 ⇒ lk+1,i = ak+1,i −i−1Xj=1

uji lk+1,j = ak+1,i 6= 0 .

UNIVERSIDAD DE A CORUNA — GRUPO DE METODOS NUMERICOS EN INGENIERIA

Page 27: Typeset by GMNI & FoilTEX - UDC

FACTORIZACION DE CROUT: Adaptacion a Banda y Perfil (II)

Por tanto, se conservan los semianchos de banda inferior y superior:

Y tambien los perfiles inferior (por filas) y superior (por columnas):

UNIVERSIDAD DE A CORUNA — GRUPO DE METODOS NUMERICOS EN INGENIERIA

Page 28: Typeset by GMNI & FoilTEX - UDC

FACTORIZACION DE CHOLESKY: Fundamentos Teoricos (I)

FACTORIZACION DE CHOLESKY [A˜ = L˜ D˜ L˜T , A˜ simetrica]

Sea el problema

A˜ x = b con A˜ =

a11 a12 · · · a1n

a22 · · · a2n. . . ...Sim. ann

, x =

x1

x2...xn

, b =

b1

b2...bn

.

La FACTORIZACION DE CHOLESKY consiste en:

A˜ = L˜ D˜ L˜T =⇒ L˜z︷ ︸︸ ︷

D˜ L˜T x︸ ︷︷ ︸y

= b =⇒

L˜ z = b,

↘D˜ y = z,

↘L˜T x = y.

UNIVERSIDAD DE A CORUNA — GRUPO DE METODOS NUMERICOS EN INGENIERIA

Page 29: Typeset by GMNI & FoilTEX - UDC

FACTORIZACION DE CHOLESKY: Fundamentos Teoricos (IIa)

FUNCIONAMIENTO DEL METODO

Observamos que es un caso particular de la Factorizacion de CROUT paramatrices simetricas en el que

U˜ = L˜T .

Debido a la simetrıa se cumplira

ck+1 = fk+1 ,

U˜k = L˜Tk ,

uk+1 = lk+1 ,

uk+1,k+1 = lk+1,k+1 .

UNIVERSIDAD DE A CORUNA — GRUPO DE METODOS NUMERICOS EN INGENIERIA

Page 30: Typeset by GMNI & FoilTEX - UDC

FACTORIZACION DE CHOLESKY: Fundamentos Teoricos (IIb)

Por tanto . . .

1-2. El vector lk+1 es la solucıon del sistema:

[L˜k D˜ k] lk+1 = fk+1 .

3. Los coeficientes lk+1,k+1 y dk+1,k+1 verifican:

lk+1,k+1 dk+1,k+1 lk+1,k+1 = ak+1,k+1 − lTk+1D˜ k lk+1. (*)

(*) Donde lk+1 se habra calculado previamente.Hay infinitas descomposiciones posibles. Por convenio, se eligen (arbitrariamente) los valores:

lk+1,k+1 = 1 =⇒ dk+1,k+1 = ak+1,k+1 − lTk+1De k lk+1.

UNIVERSIDAD DE A CORUNA — GRUPO DE METODOS NUMERICOS EN INGENIERIA

Page 31: Typeset by GMNI & FoilTEX - UDC

FACTORIZACION DE CHOLESKY: Fundamentos Teoricos (IIc)

4. Para k = 1:

A˜1 = L˜1 D˜ 1 L˜T1 =⇒ l11 d11 l11 = a11 . (*)

5. Para k = n:

A˜n = A˜ =⇒ A˜ = L˜ D˜ L˜T con

{L˜ = L˜n,

D˜ = D˜ n.

(*) Hay infinitas descomposiciones posibles. Por convenio, se eligen (arbitrariamente) los valores:

l11 = 1 =⇒ d11 = a11 .

UNIVERSIDAD DE A CORUNA — GRUPO DE METODOS NUMERICOS EN INGENIERIA

Page 32: Typeset by GMNI & FoilTEX - UDC

FACTORIZACION DE CHOLESKY: Fundamentos Teoricos (IIIa)

REALIZACION DE LOS CALCULOS

1. FACTORIZACION DE LA MATRIZ:

Asignar l11 = 1,

d11 = a11 .

Para k = 1, . . . , n− 1

Resolver[L˜k D˜ k

]lk+1 = fk+1 .

Asignar lk+1,k+1 = 1,

dk+1,k+1 = ak+1,k+1 − lTk+1D˜ k lk+1.

UNIVERSIDAD DE A CORUNA — GRUPO DE METODOS NUMERICOS EN INGENIERIA

Page 33: Typeset by GMNI & FoilTEX - UDC

FACTORIZACION DE CHOLESKY: Fundamentos Teoricos (IIIb)

Notas:

1. Los sistemas [L˜k D˜ k] lk+1 = fk+1 se resuelven en dos fases:

L˜k

mk+1︷ ︸︸ ︷D˜ k lk+1 = fk+1 =⇒

L˜k mk+1 = fk+1,

↘D˜ k lk+1 = mk+1.

UNIVERSIDAD DE A CORUNA — GRUPO DE METODOS NUMERICOS EN INGENIERIA

Page 34: Typeset by GMNI & FoilTEX - UDC

FACTORIZACION DE CHOLESKY: Fundamentos Teoricos (IIIc)

REALIZACION DE LOS CALCULOS (continuacion)

2. SOLUCION DE SISTEMAS:

Resolver L˜ z = b ,

D˜ y = z ,

L˜T x = y .

UNIVERSIDAD DE A CORUNA — GRUPO DE METODOS NUMERICOS EN INGENIERIA

Page 35: Typeset by GMNI & FoilTEX - UDC

FACTORIZACION DE CHOLESKY: Fundamentos Teoricos (IV)

CONDICIONES DE EXISTENCIA

Son las mismas que en el caso de la Factorizacion de CROUT.

UNIVERSIDAD DE A CORUNA — GRUPO DE METODOS NUMERICOS EN INGENIERIA

Page 36: Typeset by GMNI & FoilTEX - UDC

FACTORIZACION DE CHOLESKY: Algoritmos (I)

1. FACTORIZACION DE LA MATRIZ:

l11 = 1,

d11 = a11

DO k=1,n-1

lk+1,i = ak+1,i −i−1Xj=1

lij lk+1,j ; i = 1, . . . , k

lk+1,i = lk+1,i / dii ; i = 1, . . . , k

lk+1,k+1 = 1,

dk+1,k+1 = ak+1,k+1 −kX

j=1

lk+1,j djj lk+1,j

ENDDO

UNIVERSIDAD DE A CORUNA — GRUPO DE METODOS NUMERICOS EN INGENIERIA

Page 37: Typeset by GMNI & FoilTEX - UDC

FACTORIZACION DE CHOLESKY: Algoritmos (II)

2. SOLUCION DE SISTEMAS: (*)

zi = bi −i−1Xj=1

lij zj ; i = 1, . . . , n

yi = zi / dii ; i = 1, . . . , n

xi = yi −nX

j=i+1

lji xj ; i = n, . . . , 1,−1

(*) Este planteamiento es adecuado para matrices en banda pero inadecuado para matrices en perfildebido a que el bucle interno de la ultima expresion (sumatorio) barre la matriz Le por columnas.

UNIVERSIDAD DE A CORUNA — GRUPO DE METODOS NUMERICOS EN INGENIERIA

Page 38: Typeset by GMNI & FoilTEX - UDC

FACTORIZACION DE CHOLESKY: Algoritmos (III)

2. SOLUCION DE SISTEMAS: [Planteamiento Alternativo] (*)

zi = bi −i−1Xj=1

lij zj ; i = 1, . . . , n

yi = zi / dii ; i = 1, . . . , n

xi = yi ; i = 1, . . . , n

xj = xj − lij xi ; j = 1, . . . , i− 1 ; i = n, . . . , 2,−1

(*) Este planteamiento es adecuado para matrices en banda y tambien para matrices en perfil.Observese que el bucle interno de la ultima expresion barre ahora la matriz Le por filas.

UNIVERSIDAD DE A CORUNA — GRUPO DE METODOS NUMERICOS EN INGENIERIA

Page 39: Typeset by GMNI & FoilTEX - UDC

FACTORIZACION DE CHOLESKY: Programacion (–)

Es facil comprobar que

• podemos almacenar L˜ Y D˜ sobre la parte inferior de A˜ ;

• podemos almacenar z, y y x sobre b;

Ası. . .a11

a21 a22

a31 a32 a33... ... ... . . .an1 an2 an3 · · · ann

se transformara en−→

d11

l21 d22

l31 l32 d33... ... ... . . .ln1 ln2 ln3 · · · dnn

.

b1

b2

b3...bn

se transformara en−→

z1

z2

z3...zn

se transformara en−→

y1

y2

y3...yn

se transformara en−→

x1

x2

x3...xn

.

UNIVERSIDAD DE A CORUNA — GRUPO DE METODOS NUMERICOS EN INGENIERIA

Page 40: Typeset by GMNI & FoilTEX - UDC

FACTORIZACION DE CHOLESKY: Programacion (I)

1. FACTORIZACION DE LA MATRIZ:

DO k=1,n-1

ak+1,i ← ak+1,i −i−1Xj=1

aij ak+1,j ; i = 2, . . . , k

ak+1,i ← ak+1,i / aii ; i = 1, . . . , k

ak+1,k+1 ← ak+1,k+1 −kX

j=1

ak+1,j ajj ak+1,j

ENDDO

UNIVERSIDAD DE A CORUNA — GRUPO DE METODOS NUMERICOS EN INGENIERIA

Page 41: Typeset by GMNI & FoilTEX - UDC

FACTORIZACION DE CHOLESKY: Programacion (II)

2. SOLUCION DE SISTEMAS: (*)

bi ← bi −i−1Xj=1

aij bj ; i = 2, . . . , n

bi ← bi / aii ; i = 1, . . . , n

bi ← bi −nX

j=i+1

aji bj ; i = n−1, . . . , 1,−1

(*) Este planteamiento es adecuado para matrices en banda pero inadecuado para matrices en perfildebido a que el bucle interno de la ultima expresion (sumatorio) barre la parte inferior de la matriz Ae por columnas.

UNIVERSIDAD DE A CORUNA — GRUPO DE METODOS NUMERICOS EN INGENIERIA

Page 42: Typeset by GMNI & FoilTEX - UDC

FACTORIZACION DE CHOLESKY: Programacion (III)

2. SOLUCION DE SISTEMAS: [Planteamiento Alternativo] (*)

bi ← bi −i−1Xj=1

aij bj ; i = 2, . . . , n

bi ← bi / aii ; i = 1, . . . , n

bj ← bj − aij bi ; j = 1, . . . , i− 1 ; i = n, . . . , 2,−1

(*) Este planteamiento es adecuado para matrices en banda y tambien para matrices en perfil.Observese que el bucle interno de la ultima expresion barre ahora la parte inferior de la matriz Ae por filas.

UNIVERSIDAD DE A CORUNA — GRUPO DE METODOS NUMERICOS EN INGENIERIA

Page 43: Typeset by GMNI & FoilTEX - UDC

FACTORIZACION DE CHOLESKY: Adaptacion a Banda y Perfil (Ia)

Sea la matriz A˜ tal que

A˜ =

SIM.

0 0 ai,i−`(i) · · · · · · ai,i−1 aii −→ fila i

↓columna i

donde (`(i) ≡ semiancho de banda inferior de la fila i,

≡ semiancho de banda superior de la columna i.

UNIVERSIDAD DE A CORUNA — GRUPO DE METODOS NUMERICOS EN INGENIERIA

Page 44: Typeset by GMNI & FoilTEX - UDC

FACTORIZACION DE CHOLESKY: Adaptacion a Banda y Perfil (Ib)

Examinamos en detalle el calculo de la fila k + 1 de L˜.

lk+1,i = ak+1,i −i−1Xj=1

lij lk+1,j ; i = 1, . . . , k

lk+1,i = lk+1,i / dii ; i = 1, . . . , k −→ IRRELEVANTE

UNIVERSIDAD DE A CORUNA — GRUPO DE METODOS NUMERICOS EN INGENIERIA

Page 45: Typeset by GMNI & FoilTEX - UDC

FACTORIZACION DE CHOLESKY: Adaptacion a Banda y Perfil (Ic)

Observamos que (a falta de dividir por los elementos dii) . . .

8>>>>>>>>>>>>>>>>>>>>>>>>>>>><>>>>>>>>>>>>>>>>>>>>>>>>>>>>:

i = 1 −→ ak+1,i = 0 ⇒ lk+1,i = ak+1,i −i−1Xj=1

lij lk+1,j = 0 ,

i = 2 −→ ak+1,i = 0 ⇒ lk+1,i = ak+1,i −i−1Xj=1

lij lk+1,j = 0 ,

...

i = (k + 1)− `(k + 1)− 1 −→ ak+1,i = 0 ⇒ lk+1,i = ak+1,i −i−1Xj=1

lij lk+1,j = 0 ,

i = (k + 1)− `(k + 1) −→ ak+1,i 6= 0 ⇒ lk+1,i = ak+1,i −i−1Xj=1

lij lk+1,j = ak+1,i 6= 0 .

UNIVERSIDAD DE A CORUNA — GRUPO DE METODOS NUMERICOS EN INGENIERIA

Page 46: Typeset by GMNI & FoilTEX - UDC

FACTORIZACION DE CHOLESKY: Adaptacion a Banda y Perfil (II)

Por tanto, se conservan los semianchos de banda inferior y superior:

Y tambien los perfiles inferior (por filas) y superior (por columnas):

UNIVERSIDAD DE A CORUNA — GRUPO DE METODOS NUMERICOS EN INGENIERIA

Page 47: Typeset by GMNI & FoilTEX - UDC

FACTORIZACION DE CHOLESKY: Adaptacion a Banda y Perfil (IIIa)

1. FACTORIZACION DE LA MATRIZ: (*)

DO k=1,n-1

ak+1,i ← ak+1,i −i−1Xj=max{i−`(i),(k+1)−`(k+1)}

aij ak+1,j ; i = [(k+1)−`(k+1)+1], . . . , k

ak+1,i ← ak+1,i / aii ; i = [(k+1)−`(k+1)], . . . , k

ak+1,k+1 ← ak+1,k+1 −kX

j=(k+1)−`(k+1)

ak+1,j ajj ak+1,j

ENDDO

(*) `(i) es el semiancho de banda inferior de la fila i.Este valor indica que el primer elemento no nulo de la fila i es el coeficiente ai,i−`(i).

UNIVERSIDAD DE A CORUNA — GRUPO DE METODOS NUMERICOS EN INGENIERIA

Page 48: Typeset by GMNI & FoilTEX - UDC

FACTORIZACION DE CHOLESKY: Adaptacion a Banda y Perfil (IIIb)

2. SOLUCION DE SISTEMAS: (*)

bi ← bi −i−1Xj=i−`(i)

aij bj ; i = 2, . . . , n

bi ← bi / aii ; i = 1, . . . , n

bj ← bj − aij bi ; j = [i−`(i)], . . . , i−1 ; i = n, . . . , 2,−1

(*) `(i) es el semiancho de banda inferior de la fila i.Este valor indica que el primer elemento no nulo de la fila i es el coeficiente ai,i−`(i).

UNIVERSIDAD DE A CORUNA — GRUPO DE METODOS NUMERICOS EN INGENIERIA

Page 49: Typeset by GMNI & FoilTEX - UDC

CONDICIONES DE VINCULACION [coacciones] (I)

Sea el sistema

a11 a12 a13 · · · a1v · · · a1n

a21 a22 a23 · · · a2v · · · a2n

a31 a32 a33 · · · a3v · · · a3n... ... ... . . . ... ...av1 av2 av3 · · · avv · · · avn... ... ... ... . . . ...an1 an2 an3 · · · anv · · · ann

x1

x2

x3...xv...xn

=

b1

b2

b3...bv...bn

+

000...rv...0

,

con la coaccion adicional

xv = pv , donde

v = GRADO DE LIBERTAD (GDL) COACCIONADO,

pv = VALOR PRESCRITO (conocido),

rv = REACCION (desconocida).

UNIVERSIDAD DE A CORUNA — GRUPO DE METODOS NUMERICOS EN INGENIERIA

Page 50: Typeset by GMNI & FoilTEX - UDC

CONDICIONES DE VINCULACION [coacciones] (II)

El planteamiento anterior puede reescribirse en la forma

a11 a12 a13 · · · 0 · · · a1n

a21 a22 a23 · · · 0 · · · a2n

a31 a32 a33 · · · 0 · · · a3n... ... ... . . . ... ...0 0 0 · · · 1 · · · 0... ... ... ... . . . ...

an1 an2 an3 · · · 0 · · · ann

x1

x2

x3...xv...xn

=

b1−a1v pv

b2−a2v pv

b3−a3v pv

...pv

...bn−anv pv

,

con la ecuacion adicional

rv = [ av1 av2 av3 · · · avv · · · avn ]

x1

x2

x3...xv...xn

− bv,

que se utiliza una vez resuelto el sistema anterior.

UNIVERSIDAD DE A CORUNA — GRUPO DE METODOS NUMERICOS EN INGENIERIA

Page 51: Typeset by GMNI & FoilTEX - UDC

CONDICIONES DE VINCULACION [coacciones] (III)

TRATAMIENTO DE LAS CONDICIONES DE VINCULACION [coacciones]

Dado el sistema Ae x = b + r, con algunas xv = pv, se procede de la siguiente manera:

1) Al factorizar se ignoran filas y columnas correspondientes a GDL prescritos (v).2) Las columnas correspondientes a GDL prescritos pasan restando a los terminos

independientes multiplicadas por los valores prescritos (−aiv pv ).

3) Las filas correspondientes a GDL prescritos (avj) se usan a posteriori para calcularlas reacciones ( rv ).

Luego, los datos almacenados en filas y columnas correspondientes a GDL prescritos

♣ no se alteran durante la factorizacion y♥ se pueden utilizar para resolver multiples sistemas con la misma matriz y distintos

B terminos independientes oB valores prescritos. (*)

(*) ¡OJO!: pueden cambiarse los valores prescritos (pv), pero no pueden cambiarse los GDL prescritos (v).

UNIVERSIDAD DE A CORUNA — GRUPO DE METODOS NUMERICOS EN INGENIERIA

Page 52: Typeset by GMNI & FoilTEX - UDC

IMPLEMENTACION: Cholesky para matrices en perfil (Ia)

CODIFICACION DEL ALMACENAMIENTO (§)

A˜ =

a11

∗ ∗0 ∗ ∗ SIM.0 ∗ · · · ∗0 0 ∗ · · · ∗0 ∗ · · · · · · · · · ∗0 0 0 ai,i−`sbi · · · ai,i−1 aii −→ fila i

0 0 ∗ · · · · · · · · · · · · ∗0 0 0 0 ∗ · · · · · · · · · ann

(§) PARTE TRIANGULAR SUPERIOR EN PERFIL POR COLUMNAS⇐⇒ PARTE TRIANGULAR INFERIOR EN PERFIL POR FILAS.

UNIVERSIDAD DE A CORUNA — GRUPO DE METODOS NUMERICOS EN INGENIERIA

Page 53: Typeset by GMNI & FoilTEX - UDC

IMPLEMENTACION: Cholesky para matrices en perfil (Ib)

ALMACENAMIENTO EN PERFIL (*){A˜ se almacena en v = [a11, · · · , ai,i−`sbi, · · · , · · · , ai,i−1, aii, · · · , · · · , ann]

aij vk, con k = lpij ≡ puntero del coeficiente aij.

Si lp(i) ≡ puntero del coeficiente aii, entonces:

8>>>><>>>>:lpii = |lp(i)| ≡ puntero de aii, (∗∗)

lsbi = lpii − (|lp(i − 1)| + 1) ≡ semiancho de banda inferior de la fila i, (∗∗)

lpiØ = lpii − i,

lpij = lpiØ + j ≡ puntero de aij, con i − lsbi ≤ j ≤ i,

(*) Sistema de punteros y variables utilizado en la subrutina SLE$Solver_LDLt_CP().

(**) Se utilizan valores absolutos porque esta subrutina cambia los signos de los punteros de los GDL coaccionados.

UNIVERSIDAD DE A CORUNA — GRUPO DE METODOS NUMERICOS EN INGENIERIA

Page 54: Typeset by GMNI & FoilTEX - UDC

IMPLEMENTACION: Cholesky para matrices en perfil (II)

PROGRAMACION

1) CAMBIAR SIGNO A PUNTEROS DE GDL COACCIONADOS.

2) FACTORIZAR: A˜ = L˜ D˜ L˜T (*)

3) INICIALIZAR REACCIONES E IMPONER CONDICIONES DE VINCULACION.

4) RESOLVER LOS SISTEMAS: L˜ z = b, D˜ y = z, L˜T x = y (*)

5) CALCULAR REACCIONES.

6) RESTAURAR SIGNO A PUNTEROS DE GDL COACCIONADOS.

(*) IGNORANDO FILAS Y COLUMNAS CORRESPONDIENTES A GDL COACCIONADOS.

UNIVERSIDAD DE A CORUNA — GRUPO DE METODOS NUMERICOS EN INGENIERIA

Page 55: Typeset by GMNI & FoilTEX - UDC

IMPLEMENTACION: Cholesky para matrices en perfil (IIIa)

1. FACTORIZACION DE LA MATRIZ: (*)

DO k=2,n

aki ← aki −i−1Xj=max{i−`sbi,k−`sbk}

aij akj ; i = [k−`sbk+1], . . . , k − 1

aki ← aki / aii ; i = [k−`sbk], . . . , k − 1

akk ← akk −k−1Xj=k−`sbk

akj ajj akj

ENDDO

(*) `sbi es el semiancho de banda inferior de la fila i.Este valor indica que el primer elemento no nulo de la fila i es el coeficiente ai,i−`sbi.

UNIVERSIDAD DE A CORUNA — GRUPO DE METODOS NUMERICOS EN INGENIERIA

Page 56: Typeset by GMNI & FoilTEX - UDC

IMPLEMENTACION: Cholesky para matrices en perfil (IIIb)

2. SOLUCION DE SISTEMAS: (*)

bi ← bi −i−1Xj=i−`sbi

aij bj ; i = 2, . . . , n

bi ← bi / aii ; i = 1, . . . , n

bj ← bj − aij bi ; j = [i−`sbi], . . . , i−1 ; i = n, . . . , 2,−1

(*) `sbi es el semiancho de banda inferior de la fila i.Este valor indica que el primer elemento no nulo de la fila i es el coeficiente ai,i−`sbi.

UNIVERSIDAD DE A CORUNA — GRUPO DE METODOS NUMERICOS EN INGENIERIA