matrici di Householder su Matlab

Messaggioda star89 » 14/05/2011, 15:01

Buon sabato a tutti ragazzi..avrei bisogno di un aiuto per poter scrivere sul matlab il codice per costruire matrici di Householder.
La definizione non è costruttiva,quindi non so proprio da dove iniziare..magari se avete anche qualche idea.
Conoscere questo tipo di matrici mi serve per scrivere un programma su matlab che implementi la fattorizzazione QR (nonostante in matlab ci sia già il comando predefinito),quindi scomporre una matrice A in una matrice Q ortogonale,e una matrice R triangolare.
Vi ringrazio già in anticipo..a presto!!!
Avatar utente
star89
New Member
New Member
 
Messaggi: 79
Iscritto il: 10/07/2008, 21:10
Località: Italy

Messaggioda star89 » 04/06/2011, 17:52

nessuno? :(
Avatar utente
star89
New Member
New Member
 
Messaggi: 79
Iscritto il: 10/07/2008, 21:10
Località: Italy

Messaggioda dissonance » 06/06/2011, 00:24

Senti, sono cose che non tocco più da anni purtroppo. Però mi ricordo che non è necessario, e anzi è una inutile lungaggine computazionale, costruire esplicitamente una matrice di Householder. Infatti una tale matrice è identificata univocamente da un vettore \( \displaystyle {v} \) e uno scalare \( \displaystyle \beta \), se non sbaglio così:

\( \displaystyle {E}{\left({v},{v},\beta\right)}={I}-\beta{\vee}^{{H}} \) (\( \displaystyle {{v}}^{{H}} \)=trasposto e coniugato di \( \displaystyle {v} \))

cosicché il prodotto per un vettore è dato dalla formula

\( \displaystyle {E}{\left({v},{v},\beta\right)}{w}={w}-{\left(\beta{{w}}^{{H}}{v}\right)}{w} \).

Usare questa formula è computazionalmente più efficiente che costruire esplicitamente la matrice di Householder e poi farne il prodotto per \( \displaystyle {w} \).
Avatar utente
dissonance
Moderatore
Moderatore
 
Messaggi: 9907
Iscritto il: 24/05/2008, 19:39
Località: Bari

Messaggioda star89 » 16/06/2011, 21:02

si ma non è una definizione o una proprietà operativa..
Avatar utente
star89
New Member
New Member
 
Messaggi: 79
Iscritto il: 10/07/2008, 21:10
Località: Italy

Messaggioda dissonance » 17/06/2011, 00:33

???

Più operativa di così: è una formula esplicita. Che cosa vuoi dire?
Avatar utente
dissonance
Moderatore
Moderatore
 
Messaggi: 9907
Iscritto il: 24/05/2008, 19:39
Località: Bari

Messaggioda star89 » 17/06/2011, 09:21

Per implementare la fattorizzazione qr su matlab, ovvero fattorizzare una matrice A in una matrice Q unitaria e R triangolare superiore, devo utilizzare le matrici di Householder. Come hai detto nel post precedente,non è necessario trovare tutta la matrice, bensì il vettore che la identifica.
Per la fattorizzazione qr bisogna costruire una sequenza finita di matrici \( \displaystyle {A}={A}_{{1}};{A}_{{2}};{A}_{{3}}\ldots;{A}_{{n}} \) ; si avrà che \( \displaystyle {A}_{{n}}={R} \)
Si tratta di trovare il vettore Householder, che ne identifica la matrice corrispondente, per ogni colonna della matrice A, per costruire tale sequenza.

La mia domanda è : come trovo il vettore di Householder avendo un altro vettore in input?

Spero di aver preso bene appunti a lezione e di esser stata chiara!
Avatar utente
star89
New Member
New Member
 
Messaggi: 79
Iscritto il: 10/07/2008, 21:10
Località: Italy

Messaggioda giaorl » 20/06/2011, 11:36

C'è il procedimento per trovare la formula per trovare \( \displaystyle v \) , si fanno un po' di calcoli però: imponi che \( \displaystyle P x = \alpha e_1 \) (da qui trovi \( \displaystyle v \) ) e inoltre imponi imponi che \( \displaystyle P \) sia unitaria (da qui trovi il \( \displaystyle \beta \) ). Alla fine il vettore buono che determina la \( \displaystyle P \) è
\( \displaystyle v = \begin{pmatrix} x_1 - \alpha\\ x_2\\ \dots\\ x_n \end{pmatrix} \)
dove \( \displaystyle \alpha = - ||x||_2 \frac{x_1}{|x_1|} \) (se capita che \( \displaystyle x_1 = 0 \) va bene \( \displaystyle \alpha = - ||x||_2 \) ). Il segno - serve per evitare cancellazione nel calcolo \( \displaystyle x_1 - \alpha \) .
\( \displaystyle \beta = \frac{1}{||x||_2 ( ||x||_2 + |x_1|)} \)
Avatar utente
giaorl
New Member
New Member
 
Messaggi: 76
Iscritto il: 19/03/2010, 15:32
Località: Bari

Messaggioda star89 » 20/06/2011, 18:01

ok..quindi solo la prima componente cambia?
Avatar utente
star89
New Member
New Member
 
Messaggi: 79
Iscritto il: 10/07/2008, 21:10
Località: Italy

Messaggioda giaorl » 20/06/2011, 18:03

Sì, è quella la cosa comodissima!
Avatar utente
giaorl
New Member
New Member
 
Messaggi: 76
Iscritto il: 19/03/2010, 15:32
Località: Bari

Messaggioda star89 » 21/06/2011, 17:58

perfetto :) grazie mille allora!!
Avatar utente
star89
New Member
New Member
 
Messaggi: 79
Iscritto il: 10/07/2008, 21:10
Località: Italy


Torna a Analisi Numerica e Ricerca Operativa

Chi c’è in linea

Visitano il forum: Nessuno e 0 ospiti