• Non ci sono risultati.

= 1 i = 1, . . . , N . Allora il sistema di equazioni

N/A
N/A
Protected

Academic year: 2021

Condividi "= 1 i = 1, . . . , N . Allora il sistema di equazioni"

Copied!
12
0
0

Testo completo

(1)

Decomposizione LU

Cerco di scrivere

A = LU

con L triangolare inferiore, U triangolare supe- riore e l

ii

= 1 i = 1, . . . , N . Allora il sistema di equazioni

A~ x = ~b diventa

LU ~ x = ~b e posto

U ~ x = ~ y

devo risolvere due sistemi triangolari L~ y = ~b e U ~ x = ~ y

Il tempo di soluzione ` e quindi O(N

2

) se la

matrice A ` e LU -decomposta.

(2)

Se ho M sistemi di equazioni A~ x

i

= ~b

i

posso fare la decomposizione una volta sola per tutti gli M sistemi e impiegher` o 1/M del tempo necessario con l’eliminazione gaussiana.

Per ricavare L e U osservo che la prima parte dell’eliminazione gaussiana, che azzera la prima colonna sotto la diagonale si ottiene anche molti- plicando A per

L

−11

=

1 0 0

−l

10

1 0

−l

20

0 1

1 0 0

−l

10

1 0

−l

20

0 1

·

a

00

a

01

a

02

a

10

a

11

a

12

a

20

a

21

a

22

=

a

00

a

01

a

02

a

10

− l

10

a

00

a

11

− l

10

a

01

a

12

− l

10

a

02

a

20

− l

20

a

00

a

21

− l

20

a

01

a

22

− l

20

a

02

(3)

Scegliendo ora gli stessi valori di l

10

e l

20

si azzera la prima colonna. Moltiplicando poi il risultato per

1 0 0

0 1 0

0 −l

21

1

si azzera la seconda colonna sotto la diago- nale. Iterando il procedimento

L

−1N −1

L

−1N −2

· · · L

−11

A

ha tutti gli elementi sotto la diagonale nulli ed ` e quindi triangolare superiore. Questa ` e la matrice U . Chiamando

L

−1

= L

−1N −1

L

−1N −2

· · · L

−11

ho che

L

−1

A = U e quindi A = LU

(4)

Resta da dimostrare che L ` e triangolare in- feriore con elementi diagonali uguali ad uno.

L’inverso di L

−11

=

1 0 0

−l

10

1 0

−l

20

0 1

` e L

1

=

1 0 0 l

10

1 0 l

20

0 1

Infatti

L−11 L1 =

1 0 0

−l10 1 0

−l20 0 1

·

1 0 0 l10 1 0 l20 0 1

 =

1 0 0

−l10 + l10 1 0

−l20 + l20 0 1

L1L2 =

1 0 0 l10 1 0 l10 0 1

·

1 0 0

0 1 0

0 l21 1

 =

1 0 0

l10 1 0 l20 l21 1

L

N

· L

N −1

· · · L

1

=



L

−11

· L

−12

· · · L

−1N −1

` e una matrice triangolare inferiore con ele-

menti diagonali uguali a 1

(5)

Soluzione di sistemi LU -decomposti

1 0 0

l

10

1 0 l

20

l

21

1

·

y

0

y

1

y

2

=

b

0

b

1

b

2

y

0

= b

0

y

0

= b

0

l

10

y

0

+ y

1

= b

1

y

1

= b

1

− l

10

y

0

l

20

y

0

+ l

21

y

1

+ y

2

= b

2

y

2

= b

2

− l

20

y

1

− l

21

y

1

y

i

= b

i

i−1 X j=0

l

ij

y

j

u

00

u

01

u

02

0 u

11

u

12

0 0 u

22

·

x

0

x

1

x

2

=

y

0

y

1

y

2

u22 x2 = y2 x2 = y2/u22

u11 x1 + u12x2 = y1 x1 = (y1 − u12 x2)/u11

u00 x0 + u01x1 + u02 x2 = y2 x0 = (y2 − u01 x1 − u02x2)/u00

x

i

=

y

i

PN −1j=i+1

u

ij

x

j

u

ii

(6)

Calcolo esplicito di L e U

1 0 0

l

10

1 0 l

20

l

20

1

u

00

u

01

u

02

0 u

11

u

12

0 0 u

22

=

a

00

a

01

a

02

a

10

a

11

a

12

a

20

a

21

a

22

Scrivendo la matrice prodotto LU esplicitamente

u

00

u

01

u

02

l

10

u

00

l

10

u

01

+ u

11

l

10

u

02

+ u

12

l

20

u

00

l

20

u

01

+ l

21

u

11

l

20

u

02

+ l

21

u

12

+ u

22

Le prime 3 equazioni sono gi` a risolte.

Le successive danno

l

i0

= a

i0

/u

00

0 ≤ i ≤ N − 1 u

1i

= a

1i

− l

10

u

0i

1 ≤ i ≤ N − 1 l

21

= (a

21

− l

20

u

02

)/u

11

u

22

= a

22

− l

20

u

02

− l

21

u

12

(7)

Matrici Tridiagonali

Si chiamano cos` ı se a

i,i

, a

i+1,i

, a

i,i+1

sono gli unici

elementi diversi da zero.

La decomposizione assume una forma semplice

a00 a01 0 0 a10 a11 a12 0 0 a21 a22 a23

0 0 a32 a33

=

1 0 0 0

l10 1 0 0 0 l21 1 0 0 0 l32 1

u00 u01 0 0 0 u11 u12 0 0 0 u22 u23

0 0 0 u33

Si possono ora scrivere le equazioni per gli el- ementi a

i,i+1

a

01

= u

01

a

12

= u

12

a

23

= u

23

per cui i u

i,i+1

sono subito determinati. Per gli elementi diagonali

a

00

= u

00

a

11

= l

10

u

01

+ u

11

a

22

= l

21

u

12

+ u

22

a

33

= l

32

u

23

+ u

33

(8)

e per quelli sotto la diagonale principale a

10

= l

10

u

00

a

21

= l

21

u

11

a

32

= l

32

u

22

L’ordine in cui calcolo i vari l e u ` e molto importante

1. calcolo u

i,i+1

2. calcolo l

i+1,i

e u

i,i

nella sequenza:

u

00

→ l

10

→ u

11

→ l

21

→ u

22

→ l

32

→ u

33

In generale, per una matrice di ordine N , la formula di risoluzione sar` a:

u

i,i+1

= a

i,i+1

u

00

= a

00

u

i,i

= a

i,i

− l

i,i−1

u

i−1,i

l

i+1,i

= a

i+1,i

/u

i,i

(9)

Nota bene

• il procedimento di decomposizione ` e, in questo caso, O(N ), mentre in generale ` e O(N

3

);

• poich´ e anche la backsubstitution ` e O(N ),

un sistema di equazioni tridiagonali pu` o es-

sere risolto con un algoritmo O(N ).

(10)

Matrici sparse

• Qualche volta si ha a che fare con matrici che hanno pochi elementi diversi dall’unit` a o che differiscono, per pochi elementi o in modo speciale, da matrici che si sanno in- vertire efficientemente

• in questi casi possono esistere algoritmi che trovano la matrice inversa rapidamente

• l’algoritmo dipende da come ` e fatta la ma- trice

• un caso particolare ` e quello di una matrice

a

ij

+ u

i

· v

j

quando si conosce l’inversa di A

(11)

Chiamo

c

ij

= (A

−1

)

ij

a

0ij

= a

ij

+u

i

v

j

c

0ij

= (A

0−1

)

ij

C

0

` e quindi la matrice inversa che devo ot- tenere, mentre conosco C . Scrivo allora la condizione C

0

A

0

= 1

c

0ik

a

0kj

= (c

ik

+ r

ik

)



a

kj

+ u

k

v

j

= δ

ij

c

ik

a

kj

+ r

ik

a

kj

+ r

ik

u

k

v

j

+ c

ik

u

k

v

j

= δ

ij

r

ik

a

kj

= −r

ik

u

k

v

j

− c

ik

u

k

v

j

Moltiplicando per c

jl

e sommando su j r

il

= −v

j

c

jl

(c

ik

u

k

+ r

ik

u

k

) = Moltiplico per u

l

e sommo su l

r

il

u

l

= −v

j

c

jl

u

l

(c

ik

u

k

+ r

ik

u

k

)

= −λ (c

ik

u

k

+ r

ik

u

k

)

= −λc

ik

u

k

− λr

ik

u

k

(1 + λ)r

il

u

l

= −λc

ik

u

k

r

il

u

l

= −

1+λλ

c

ik

u

k

Moltiplicando per c

jl

u

l

questo da’ finalmente c

0il

= c

il

− v

j

c

jl

u

k

c

ik

1 + λ

(12)

Esercizio

Scrivere un programma che calcoli la matrice inversa di

a

ij

= δ

ij

+ u

i

· v

j

Riferimenti

Documenti correlati

NOTA Un sistema possibile pu` o avere una sola soluzione (sistema determinato) oppure infinite soluzioni (sistema indeterminato), ma mai un numero finito ≥ 2 di soluzioni.... I

[r]

• Le soluzioni di un sistema lineare a scala compatibile dipendono da un numero di parametri liberi uguale al numero delle incognite meno il numero delle equazioni non banali

Compito di Istituzioni di Fisica Matematica 8 Giugno 2018. (usare fogli diversi per

[r]

Per tutti gli altri punti, si ricorre al metodo dell’annullamento della derivata prima, ossia si determinano le soluzioni dell’equazione f ’(x) = 0; tra i punti che soddisfano a

Poich`e m = n = 3, la prima cosa da fare `e calcolare il determinante della matrice incompleta A per vedere se sono verificate le ipotesi del teorema di Cramer... Gli orlati di M

Decifrare il messaggio, senza fattorizzare