43
Un algoritmo rank-revealing per la risoluzione nel senso dei minimi quadrati di sistemi lineari a rango non pieno G. Rodriguez Dipartimento di Matematica e Informatica, Universit` a di Cagliari viale Merello 92, 09123 Cagliari, Italy in collab. con A. Aric` o (Dip. di Matematica e Informatica, Cagliari) Giornate di Algebra Lineare Numerica ed Applicazioni Padova, 26–27 febbraio 2007

Un algoritmo rank-revealing per la risoluzione nel senso ...michela/2gg07/TALKS/rodriguez.pdf · con κ(A) = kAk·kA ... Confronto tra le versioni Matlab di TLLS e di un algoritmo

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Un algoritmo rank-revealing per la risoluzione nel senso ...michela/2gg07/TALKS/rodriguez.pdf · con κ(A) = kAk·kA ... Confronto tra le versioni Matlab di TLLS e di un algoritmo

Un algoritmo rank-revealing per la risoluzione nelsenso dei minimi quadrati di sistemi lineari a

rango non pieno

G. Rodriguez

Dipartimento di Matematica e Informatica, Universita di Cagliariviale Merello 92, 09123 Cagliari, Italy

in collab. con A. Arico (Dip. di Matematica e Informatica, Cagliari)

Giornate di Algebra Lineare Numerica ed ApplicazioniPadova, 26–27 febbraio 2007

Page 2: Un algoritmo rank-revealing per la risoluzione nel senso ...michela/2gg07/TALKS/rodriguez.pdf · con κ(A) = kAk·kA ... Confronto tra le versioni Matlab di TLLS e di un algoritmo

Minimi quadrati mediante eliminazione Gaussiana

Ax = b, A ∈ Rm×n, rank(A) = n ≤ m

• Metodo di Peters-Wilkinson [1970]

PAQ =

[L1

L2

]U, L1,U ∈ Rn×n

LTLy = LT (Pb), U(QTx) = y

Applicato a matrici sparse in [Bjorck et al. 1988].

• Metodo della matrice aumentata[Siegel 1965, Bartel et al. 1970, Bjorck 1992]

Page 3: Un algoritmo rank-revealing per la risoluzione nel senso ...michela/2gg07/TALKS/rodriguez.pdf · con κ(A) = kAk·kA ... Confronto tra le versioni Matlab di TLLS e di un algoritmo

Minimi quadrati mediante eliminazione Gaussiana

Ax = b, A ∈ Rm×n, rank(A) = n ≤ m

• Metodo di Peters-Wilkinson [1970]

• Metodo della matrice aumentata[Siegel 1965, Bartel et al. 1970, Bjorck 1992][

I AA∗ 0

] [rx

]=

[b0

], r = b− Ax

Applicato con successo in [Arioli et al. 1989] eesteso in [Duff et al. 1990] al caso di matrici sparse conpivoting di Bunch-Kaufman.

Page 4: Un algoritmo rank-revealing per la risoluzione nel senso ...michela/2gg07/TALKS/rodriguez.pdf · con κ(A) = kAk·kA ... Confronto tra le versioni Matlab di TLLS e di un algoritmo

Minimi quadrati e complemento di Schur

Metodo proposto per matrici di Toeplitz in [Kailath et al. 1994] estudiato e implementato in [GR 2006] per matrici con struttura diToeplitz e Cauchy generalizzata.

Ax = b −→ MA =

Im A 0A∗ 0 A∗b0 In 0

Sm+n(MA) = (A∗A)−1A∗b = xLS

Poiche MA ha struttura di displacement e possibile applicarel’algoritmo di Schur generalizzato.

Inoltre la matrice pseudoinversa ha struttura di displacement

b = Im ⇒ Sm+n(MA) = A†,

Page 5: Un algoritmo rank-revealing per la risoluzione nel senso ...michela/2gg07/TALKS/rodriguez.pdf · con κ(A) = kAk·kA ... Confronto tra le versioni Matlab di TLLS e di un algoritmo

Calcolo del complemento di Schur di MA

Schema di calcolo

• la struttura viene convertita da Toeplitz a Cauchygeneralizzata, mediante trasformate veloci

• viene applicato l’algoritmo di Schur generalizzato

Vantaggi

• MA, pur avendo struttura di displacement, non e Toeplitz-like,mentre MC e Cauchy-like

• il passaggio alla struttura di Cauchy consente l’uso delpivoting parziale o totale

• algoritmo fast O(27γ(m + n)2) e bassa occupazione dimemoria O(3γ(m + n)) (γ = rank∆(MA))

• facilmente applicabile ad altre strutture di displacement

Page 6: Un algoritmo rank-revealing per la risoluzione nel senso ...michela/2gg07/TALKS/rodriguez.pdf · con κ(A) = kAk·kA ... Confronto tra le versioni Matlab di TLLS e di un algoritmo

Calcolo del complemento di Schur di MA

Schema di calcolo

• la struttura viene convertita da Toeplitz a Cauchygeneralizzata, mediante trasformate veloci

• viene applicato l’algoritmo di Schur generalizzato

Vantaggi

• MA, pur avendo struttura di displacement, non e Toeplitz-like,mentre MC e Cauchy-like

• il passaggio alla struttura di Cauchy consente l’uso delpivoting parziale o totale

• algoritmo fast O(27γ(m + n)2) e bassa occupazione dimemoria O(3γ(m + n)) (γ = rank∆(MA))

• facilmente applicabile ad altre strutture di displacement

Page 7: Un algoritmo rank-revealing per la risoluzione nel senso ...michela/2gg07/TALKS/rodriguez.pdf · con κ(A) = kAk·kA ... Confronto tra le versioni Matlab di TLLS e di un algoritmo

Restrizione del pivoting

Nel calcolo del complemento di Schur Sr (M), l’azione del pivotingparziale (o totale) deve essere ristretta alle prime r righe (ecolonne) di M. Infatti se

M =

[M11 M12

M21 M22

], P =

[Pr 00 Im−r

]e Q =

[Qr 00 In−r

]allora

PMQ =

[PrM11Qr PrM12

M21Qr M22

]e

Sr (PMQ) = Sr (M).

Page 8: Un algoritmo rank-revealing per la risoluzione nel senso ...michela/2gg07/TALKS/rodriguez.pdf · con κ(A) = kAk·kA ... Confronto tra le versioni Matlab di TLLS e di un algoritmo

Blocchi parzialmente ricostruibili

Cij =φ∗i ·ψj

ti − sj

DtC − CDs = GCH∗C

⇒ DLMC −MCDR = GMCH∗

MC

MC =

Im C 0C ∗ 0 C ∗

0 In 0

,DL = Dt ⊕ Ds ⊕ Ds,

DR = Dt ⊕ Ds ⊕ Dt,

Alcuni blocchi sono parzialmente ricostruibili:

blocco (3, 2) −→ DsIn − InDs = 0

E necessario memorizzare a parte gli elementi non ricostruibili etener conto del pivoting.

Page 9: Un algoritmo rank-revealing per la risoluzione nel senso ...michela/2gg07/TALKS/rodriguez.pdf · con κ(A) = kAk·kA ... Confronto tra le versioni Matlab di TLLS e di un algoritmo

Blocchi parzialmente ricostruibili

Cij =φ∗i ·ψj

ti − sj

DtC − CDs = GCH∗C ⇒ DLMC −MCDR = GMC

H∗MC

MC =

Im C 0C ∗ 0 C ∗

0 In 0

,DL = Dt ⊕ Ds ⊕ Ds,

DR = Dt ⊕ Ds ⊕ Dt,

Alcuni blocchi sono parzialmente ricostruibili:

blocco (3, 2) −→ DsIn − InDs = 0

E necessario memorizzare a parte gli elementi non ricostruibili etener conto del pivoting.

Page 10: Un algoritmo rank-revealing per la risoluzione nel senso ...michela/2gg07/TALKS/rodriguez.pdf · con κ(A) = kAk·kA ... Confronto tra le versioni Matlab di TLLS e di un algoritmo

Blocchi parzialmente ricostruibili

Cij =φ∗i ·ψj

ti − sj

DtC − CDs = GCH∗C ⇒ DLMC −MCDR = GMC

H∗MC

MC =

Im C 0C ∗ 0 C ∗

0 In 0

,DL = Dt ⊕ Ds ⊕ Ds,

DR = Dt ⊕ Ds ⊕ Dt,

Alcuni blocchi sono parzialmente ricostruibili:

blocco (3, 2) −→ DsIn − InDs = 0

E necessario memorizzare a parte gli elementi non ricostruibili etener conto del pivoting.

Page 11: Un algoritmo rank-revealing per la risoluzione nel senso ...michela/2gg07/TALKS/rodriguez.pdf · con κ(A) = kAk·kA ... Confronto tra le versioni Matlab di TLLS e di un algoritmo

Ottimizzazione dei parametri ξ e η

Zξ,mA− AZη,n = GAH∗A, ξ, η ∈ C \ {0}

Zφ,k =

0 0 · · · 0 φ1 0 · · · 0 00 1 · · · 0 0...

......

...0 0 · · · 1 0

∈ Ck×k .

Cij =φ∗i ·ψj

ti − sj, tm

i = ξ, snj = η

Posto ξ = 1 e η = eiπϕ, sia

ϕ∗ = arg maxϕ

mini ,j|ti − sj | .

Allora

ϕ∗ =gcd(m, n)

m=

g

m, min

i ,j|ti − sj | = 2 sin

πg

2mn.

Page 12: Un algoritmo rank-revealing per la risoluzione nel senso ...michela/2gg07/TALKS/rodriguez.pdf · con κ(A) = kAk·kA ... Confronto tra le versioni Matlab di TLLS e di un algoritmo

Ottimizzazione dei parametri ξ e η

Zξ,mA− AZη,n = GAH∗A, ξ, η ∈ C \ {0}

DtC − CDs = GCH∗C

Cij =φ∗i ·ψj

ti − sj, tm

i = ξ, snj = η

Posto ξ = 1 e η = eiπϕ, sia

ϕ∗ = arg maxϕ

mini ,j|ti − sj | .

Allora

ϕ∗ =gcd(m, n)

m=

g

m, min

i ,j|ti − sj | = 2 sin

πg

2mn.

Page 13: Un algoritmo rank-revealing per la risoluzione nel senso ...michela/2gg07/TALKS/rodriguez.pdf · con κ(A) = kAk·kA ... Confronto tra le versioni Matlab di TLLS e di un algoritmo

Ottimizzazione dei parametri ξ e η

Zξ,mA− AZη,n = GAH∗A, ξ, η ∈ C \ {0}

Cij =φ∗i ·ψj

ti − sj, tm

i = ξ, snj = η

Posto ξ = 1 e η = eiπϕ, sia

ϕ∗ = arg maxϕ

mini ,j|ti − sj | .

Allora

ϕ∗ =gcd(m, n)

m=

g

m, min

i ,j|ti − sj | = 2 sin

πg

2mn.

Page 14: Un algoritmo rank-revealing per la risoluzione nel senso ...michela/2gg07/TALKS/rodriguez.pdf · con κ(A) = kAk·kA ... Confronto tra le versioni Matlab di TLLS e di un algoritmo

Ottimizzazione dei parametri ξ e η

0 0.3333 0.666710

−9

10−8

10−7

10−6

10−5

10−4

10−3

φ

m=3000, n=1000, φ*=0.3333

TLLSTLLS no piv.

Matrice KMS (aij = ρ|i−j |)con (m, n) = (3000, 1000), ρ = .99, κ = 3.7 · 104

Page 15: Un algoritmo rank-revealing per la risoluzione nel senso ...michela/2gg07/TALKS/rodriguez.pdf · con κ(A) = kAk·kA ... Confronto tra le versioni Matlab di TLLS e di un algoritmo

Risultati numerici

1000 2000 3000 4000 500010

−16

10−14

10−12

ρ=0.

5

2 4 6 8 1010

−16

10−14

10−12

1000 2000 3000 4000 5000

10−10

10−8

10−6

10−4

n

ρ=0.

99

2 4 6 8 10

10−10

10−8

10−6

10−4

α

TLLS

TLLS no piv.

QR

Cholesky

Matrice KMS, m = 2n (sin.), α = mn e n = 2000 (destra)

Page 16: Un algoritmo rank-revealing per la risoluzione nel senso ...michela/2gg07/TALKS/rodriguez.pdf · con κ(A) = kAk·kA ... Confronto tra le versioni Matlab di TLLS e di un algoritmo

Dipendenza dal condizionamento

Condizionamento di xLS rispetto ad una perturbazione in A

κLS = κ(A) +κ(A)2 tan θ

η

con κ(A) = ‖A‖ · ‖A†‖, η = ‖A‖·‖x‖‖Ax‖ ∈ [1, κ(A)], and

θ = arccos‖Ax‖‖b‖

= ](b,Ax) ∈[0,

π

2

]• Householder QR e influenzato da κLS

• Eq. normali + Cholesky dipende da κ(A)2 e non da η, θ

• TLLS ?

Page 17: Un algoritmo rank-revealing per la risoluzione nel senso ...michela/2gg07/TALKS/rodriguez.pdf · con κ(A) = kAk·kA ... Confronto tra le versioni Matlab di TLLS e di un algoritmo

Dipendenza dal condizionamento

0 20 40 60 8010

−10

10−8

10−6

10−4

10−2

θ (degrees)

TLLSQRCholesky

0 20 40 60 8010

−10

10−9

10−8

10−7

10−6

θ (degrees)

TLLSQRCholesky

Matrice KMS, (m, n) = (1500, 500), ρ = .99, .999κ(A) = 3.7 · 104, 1.1 · 106, η ' 1

Page 18: Un algoritmo rank-revealing per la risoluzione nel senso ...michela/2gg07/TALKS/rodriguez.pdf · con κ(A) = kAk·kA ... Confronto tra le versioni Matlab di TLLS e di un algoritmo

Complessita computazionale - metodi non strutturati

0 500 1000 1500 200010

3

106

109

1012

n

flops

complessita’

0 500 1000 1500 200010

−4

10−2

100

102

nse

cond

i

tempo di calcolo

TLLSHouseholder QRCholesky

TLLSHouseholder QRCholesky

Confronto tra qr e chol di Matlab e la versione MEX di TLLSAMD Athlon 64 3200+, GNU/Linux x86 64, Matlab 64bit

Matrice KMS (ρ = .99), m = 2n

Page 19: Un algoritmo rank-revealing per la risoluzione nel senso ...michela/2gg07/TALKS/rodriguez.pdf · con κ(A) = kAk·kA ... Confronto tra le versioni Matlab di TLLS e di un algoritmo

Complessita computazionale - metodo superfast

5 7 9 11 1310

−15

10−10

10−5

log2 n

rela

tive

erro

r

TLLSTLLS no piv.superfast

5 7 9 11 1310

−2

100

102

104

log2 n

time

in s

econ

ds

TLLSTLLS no piv.superfast

Confronto tra le versioni Matlab di TLLS e di un algoritmo superfast[Van Barel, Heinig, Kravanja 2003]

Matrice rand-Toeplitz, m = 2n

Page 20: Un algoritmo rank-revealing per la risoluzione nel senso ...michela/2gg07/TALKS/rodriguez.pdf · con κ(A) = kAk·kA ... Confronto tra le versioni Matlab di TLLS e di un algoritmo

Complessita: crossover risp. ai metodi non strutturati

La dipendenza da m e lineare per i metodi non strutturati equadratica per TLLS.

Cholesky −→ n2(m +1

3n)

Householder QR −→ 2n2(m − 1

3n)

TLLS −→ 143m2 + 284mn + 133n2

Questo significa che per ogni n, all’aumentare di m, si arriva ad unpunto in cui i metodi non strutturati risultano piu efficienti.

Page 21: Un algoritmo rank-revealing per la risoluzione nel senso ...michela/2gg07/TALKS/rodriguez.pdf · con κ(A) = kAk·kA ... Confronto tra le versioni Matlab di TLLS e di un algoritmo

Complessita: crossover risp. ai metodi non strutturati

120

4060

80100

1

2

3

4

5

60

2

4

6

8

10

αlog10

n

log(Complessita/n2) per Householder QR (grid) e TLLS (surf)

Page 22: Un algoritmo rank-revealing per la risoluzione nel senso ...michela/2gg07/TALKS/rodriguez.pdf · con κ(A) = kAk·kA ... Confronto tra le versioni Matlab di TLLS e di un algoritmo

Sistema lineare a rango non pieno

• Eliminiamo l’ipotesi che la matrice A sia sovradeterminata e arango pieno

Ax = b, A ∈ Rm×n,

{m Q n

rank(A) ≤ min(m, n)

• Applichiamo l’algoritmo TLLS

MA =

Im A 0A∗ 0 A∗b0 In 0

−→ Sm+n(MA) =?

Nel caso a rango pieno si ha

xLS = Sm+n(MA) = (A∗A)−1A∗b

Page 23: Un algoritmo rank-revealing per la risoluzione nel senso ...michela/2gg07/TALKS/rodriguez.pdf · con κ(A) = kAk·kA ... Confronto tra le versioni Matlab di TLLS e di un algoritmo

Fase 1

Applichiamo l’algoritmo di eliminazione di Gauss alle prime mcolonne. Il pivoting non e indispensabile per il funzionamentodell’algoritmo (lo e per la sua stabilita).

Im A 0

A∗ 0 A∗b0 In 0

−→

Im A 0

0 −A∗A A∗b0 In 0

Questa fase e equivalente alla costruzione delle equazioni normali.

A∗A in generale e singolare

Page 24: Un algoritmo rank-revealing per la risoluzione nel senso ...michela/2gg07/TALKS/rodriguez.pdf · con κ(A) = kAk·kA ... Confronto tra le versioni Matlab di TLLS e di un algoritmo

Fase 2

Supponiamo inizialmente che A∗A sia ben ordinata:

−A∗A =

[G11 G12

G21 G22

]con rank(A) = k e G11 quadrata k × k non singolare.

Applichiamo k passi dell’algoritmo di Gauss alla sottomatrice Im A 0

0 −A∗A A∗b0 In 0

−→[−A∗A A∗b

In 0

]

Page 25: Un algoritmo rank-revealing per la risoluzione nel senso ...michela/2gg07/TALKS/rodriguez.pdf · con κ(A) = kAk·kA ... Confronto tra le versioni Matlab di TLLS e di un algoritmo

Fase 2

Supponiamo inizialmente che A∗A sia ben ordinata:

−A∗A =

[G11 G12

G21 G22

]con rank(A) = k e G11 quadrata k × k non singolare.

Applichiamo k passi dell’algoritmo di Gauss alla sottomatrice

[−A∗A A∗b

In 0

]=

G11 G12 c1

G21 G22 c1

Ik 0 00 In−k 0

Page 26: Un algoritmo rank-revealing per la risoluzione nel senso ...michela/2gg07/TALKS/rodriguez.pdf · con κ(A) = kAk·kA ... Confronto tra le versioni Matlab di TLLS e di un algoritmo

Fase 2

Supponiamo inizialmente che A∗A sia ben ordinata:

−A∗A =

[G11 G12

G21 G22

]con rank(A) = k e G11 quadrata k × k non singolare.

Applichiamo k passi dell’algoritmo di Gauss alla sottomatriceG11 G12 c1

G21 G22 c1

Ik 0 00 In−k 0

−→

Uk Z c1

0 On−k c2

0 Y1 x1

0 Y2 x2

Page 27: Un algoritmo rank-revealing per la risoluzione nel senso ...michela/2gg07/TALKS/rodriguez.pdf · con κ(A) = kAk·kA ... Confronto tra le versioni Matlab di TLLS e di un algoritmo

Risultato dell’algoritmo

Uk Z c1

0 On−k c2

0 Y1 x1

0 Y2 x2

• soluzione di base di Ax = b

xB =

[x1

x2

]

• base per il nucleo di A

Y =

[Y1

Y2

]=

[y1 · · · yn−k

]

Page 28: Un algoritmo rank-revealing per la risoluzione nel senso ...michela/2gg07/TALKS/rodriguez.pdf · con κ(A) = kAk·kA ... Confronto tra le versioni Matlab di TLLS e di un algoritmo

Risultato dell’algoritmo

Uk Z c1

0 On−k c2

0 Y1 x1

0 Y2 x2

• soluzione di base di Ax = b

xB =

[x1

x2

]

• base per il nucleo di A

Y =

[Y1

Y2

]=

[y1 · · · yn−k

]

Page 29: Un algoritmo rank-revealing per la risoluzione nel senso ...michela/2gg07/TALKS/rodriguez.pdf · con κ(A) = kAk·kA ... Confronto tra le versioni Matlab di TLLS e di un algoritmo

Risultato dell’algoritmo

Uk Z c1

0 On−k c2

0 Y1 x1

0 Y2 x2

• soluzione di base di Ax = b

xB =

[x1

x2

]=

[−G−1

11 c1

0

]

• base per il nucleo di A

Y =

[Y1

Y2

]=

[y1 · · · yn−k

]=

[−G−1

11 G12

In−k

]

Page 30: Un algoritmo rank-revealing per la risoluzione nel senso ...michela/2gg07/TALKS/rodriguez.pdf · con κ(A) = kAk·kA ... Confronto tra le versioni Matlab di TLLS e di un algoritmo

Rank revealing?

Rango numerico

rε = min‖E‖2≤ε

rank(A + E ) ⇔ σrε > ε ≥ σrε+1

L’algoritmo si arresta quando

|Mrr | < τ

C’e relazione tra ε e τ?

Rank revealing LU [Chan 1984], [Hwang et al. 1992].Stime del condizionamento per matrici triangolari [Higham 1987].

Page 31: Un algoritmo rank-revealing per la risoluzione nel senso ...michela/2gg07/TALKS/rodriguez.pdf · con κ(A) = kAk·kA ... Confronto tra le versioni Matlab di TLLS e di un algoritmo

Pivoting nella fase 2

Nella fase 2 il pivoting (su righe e colonne) e indispensabile

Supponiamo di applicare il pivoting totale[−A∗A A∗b

In 0

]−→

[−PA∗AQ PA∗b

Q 0

]e poniamo

G = −PA∗AQ, Q =[Q1 Q2

], c = PA∗b.

Allora G11 G12 c1

G21 G22 c1

Q1 Q2 0

−→

Uk L−1G12 L−1c1

0 On−k c2 − G21G−111 c1

0 Q2 − Q1G−111 G12 −Q1G

−111 c1

Page 32: Un algoritmo rank-revealing per la risoluzione nel senso ...michela/2gg07/TALKS/rodriguez.pdf · con κ(A) = kAk·kA ... Confronto tra le versioni Matlab di TLLS e di un algoritmo

Pivoting nella fase 2

Uk L−1G12 L−1c1

0 On−k c2 − G21G−111 c1

0 Q2 − Q1G−111 G12 −Q1G

−111 c1

• soluzione di base di Ax = b

xB = −Q1G−111 c1 = Q

[−G−1

11 c1

0

],

• base per il nucleo di A

Y = Q2 − Q1G−111 G12 = Q

[−G−1

11 G12

In−k

]

Page 33: Un algoritmo rank-revealing per la risoluzione nel senso ...michela/2gg07/TALKS/rodriguez.pdf · con κ(A) = kAk·kA ... Confronto tra le versioni Matlab di TLLS e di un algoritmo

Pivoting nella fase 2

Uk L−1G12 L−1c1

0 On−k c2 − G21G−111 c1

0 Q2 − Q1G−111 G12 −Q1G

−111 c1

• soluzione di base di Ax = b

xB = −Q1G−111 c1 = Q

[−G−1

11 c1

0

],

• base per il nucleo di A

Y = Q2 − Q1G−111 G12 = Q

[−G−1

11 G12

In−k

]

Page 34: Un algoritmo rank-revealing per la risoluzione nel senso ...michela/2gg07/TALKS/rodriguez.pdf · con κ(A) = kAk·kA ... Confronto tra le versioni Matlab di TLLS e di un algoritmo

Pivoting nella fase 1

Nella fase 1 il pivoting non e indispensabile

M =

Im A 0

A∗ 0 A∗b0 In 0

Il parametro di scala γ regola l’entita del pivoting.

Per il metodo della matrice aumentata con equilibratura, e statodimostrato [Bjorck 1992] che una buona scelta e

γ = 2−1/2σn(A)

in quanto minimizza κ2(Mγ), e quindi la stima in avanti dell’erroresulla soluzione.

Page 35: Un algoritmo rank-revealing per la risoluzione nel senso ...michela/2gg07/TALKS/rodriguez.pdf · con κ(A) = kAk·kA ... Confronto tra le versioni Matlab di TLLS e di un algoritmo

Pivoting nella fase 1

Nella fase 1 il pivoting non e indispensabile,ma e determinante per la stabilita dell’algoritmo.

Mγ =

γIm A 0

A∗ 0 1γ A∗b

0 In 0

Il parametro di scala γ regola l’entita del pivoting.

Per il metodo della matrice aumentata con equilibratura, e statodimostrato [Bjorck 1992] che una buona scelta e

γ = 2−1/2σn(A)

in quanto minimizza κ2(Mγ), e quindi la stima in avanti dell’erroresulla soluzione.

Page 36: Un algoritmo rank-revealing per la risoluzione nel senso ...michela/2gg07/TALKS/rodriguez.pdf · con κ(A) = kAk·kA ... Confronto tra le versioni Matlab di TLLS e di un algoritmo

Pivoting nella fase 1

Nella fase 1 il pivoting non e indispensabile,ma e determinante per la stabilita dell’algoritmo.

Mγ =

γIm A 0

A∗ 0 1γ A∗b

0 In 0

Il parametro di scala γ regola l’entita del pivoting.

Per il metodo della matrice aumentata con equilibratura, e statodimostrato [Bjorck 1992] che una buona scelta e

γ = 2−1/2σn(A)

in quanto minimizza κ2(Mγ), e quindi la stima in avanti dell’erroresulla soluzione.

Page 37: Un algoritmo rank-revealing per la risoluzione nel senso ...michela/2gg07/TALKS/rodriguez.pdf · con κ(A) = kAk·kA ... Confronto tra le versioni Matlab di TLLS e di un algoritmo

Strategie di pivoting

• pivoting totale (costoso)

• pivoting parziale + “butta via le colonne piccole”

• pivoting totale simmetrico (fattorizzazione LDLT )

• pivoting di Bunch-Kaufman

Page 38: Un algoritmo rank-revealing per la risoluzione nel senso ...michela/2gg07/TALKS/rodriguez.pdf · con κ(A) = kAk·kA ... Confronto tra le versioni Matlab di TLLS e di un algoritmo

Strategie di pivoting

• pivoting totale (costoso)

• pivoting parziale + “butta via le colonne piccole”

• pivoting totale simmetrico (fattorizzazione LDLT )

• pivoting di Bunch-Kaufman

Page 39: Un algoritmo rank-revealing per la risoluzione nel senso ...michela/2gg07/TALKS/rodriguez.pdf · con κ(A) = kAk·kA ... Confronto tra le versioni Matlab di TLLS e di un algoritmo

Strategie di pivoting

• pivoting totale (costoso)

• pivoting parziale + “butta via le colonne piccole”

• pivoting totale simmetrico (fattorizzazione LDLT )

• pivoting di Bunch-Kaufman

Page 40: Un algoritmo rank-revealing per la risoluzione nel senso ...michela/2gg07/TALKS/rodriguez.pdf · con κ(A) = kAk·kA ... Confronto tra le versioni Matlab di TLLS e di un algoritmo

Strategie di pivoting

• pivoting totale (costoso)

• pivoting parziale + “butta via le colonne piccole”

• pivoting totale simmetrico (fattorizzazione LDLT )

• pivoting di Bunch-Kaufman

Page 41: Un algoritmo rank-revealing per la risoluzione nel senso ...michela/2gg07/TALKS/rodriguez.pdf · con κ(A) = kAk·kA ... Confronto tra le versioni Matlab di TLLS e di un algoritmo

Fattorizzazione LDLT

Preserva la simmetria ed e connessa a Cholesky e QR. Im A 0A∗ 0 A∗b0 In 0

1→

Im 0 00 −A∗A A∗b0 In 0

2→

Im 0 00 D 00 0 xLS

Pivoting totale simmetrico

• se al passo k il massimo e in posizione (`, `)

pivot = M``

• se il massimo e in posizione (r , s)

pivot =

(Mss Msr

Mrs Mrr

)(tile pivot)

Page 42: Un algoritmo rank-revealing per la risoluzione nel senso ...michela/2gg07/TALKS/rodriguez.pdf · con κ(A) = kAk·kA ... Confronto tra le versioni Matlab di TLLS e di un algoritmo

Da fare. . .

• implementazione nel caso strutturato

• test numerici (matrici con e senza struttura)

• indagare sulle varie strategie di pivoting

• confronto con RRQR, UTV, [Chan 1984]

• soluzione normale, up/down-dating, subset selection. . .

• matrici sparse?

Page 43: Un algoritmo rank-revealing per la risoluzione nel senso ...michela/2gg07/TALKS/rodriguez.pdf · con κ(A) = kAk·kA ... Confronto tra le versioni Matlab di TLLS e di un algoritmo

Fine