Dubbi su algoritmo di Gauss e fattorizzazione LU

Rosy19931
Salve a tutti, sto studiando per l'esame di calcolo numerico e ho riscontrato un paio di problemi, per cui chiedo il vostro aiuto. Sto studiando dal libro "Matematica numerica: metodi, algoritmi e software" di Almerico Murli; ecco le cose che non mi sono chiare finora:

1) Quando valuta la complessità computazionale dell'algoritmo di Gauss, il libro dice:



Non capisco perché dice che servono 2n(n-1) flop per modificare la sottomatrice e il vettore dei termini noti... Il mio ragionamento è: per calcolare \(\displaystyle a_{ij} \) effettuiamo 2(n-1) flop (abbiamo n-1 moltiplicazioni e n-1 sottrazioni), ma anche per calcolare \(\displaystyle b_i \) per i=2,...,n abbiamo 2(n-1) flop (anche qui n-1 moltiplicazioni e n-1 sottrazioni)... dov'è che sbaglio?

2) Per spiegare la fattorizzazione LU, il libro fa riferimento a una matrice \(\displaystyle M_k \) detta triangolare unitaria elementare inferiore di indice k, ma non ho per niente capito la definizione:

"Dato un vettore m del tipo \(\displaystyle m_T = (0,0,...m_{k+1},...,m_n) \) la matrice \(\displaystyle M_k \) di ordine n, definita come \(\displaystyle M_k = I - me_{kT} \), dove \(\displaystyle e_{kT} \) è il k-esimo vettore unitario, è detta matrice triangolare unitaria elementare inferiore di indice k."

Ma se moltiplico m per il k-esimo vettore unitario non ottengo il vettore nullo???

Grazie a chi mi aiuterà!

Risposte
wolframio32
Ti rispondo al primo quesito:
Supponiamo che tu debba fare k passi. Avendo bene in mente il pseudo codice dell'algoritmo di Gauss, sai che devi eseguire:

(n-k) volte l'operazione di moltiplicazione,
(n-k) l'operazione di sottrazione,
1 volta la divisione per il calcolo del moltiplicatore.

Tutto questo lo devi eseguire in totale (n-k) volte. Per il termine noto, lo stesso devi eseguire (n-k) volte sottrazioni ed (n-k) volte moltiplicazioni (0 divisioni poichè l'hai già eseguita prima).

In totale avrai \(\displaystyle (n-k)[(n-k)+1+(n-k)]+2(n-k) \), cioè: \(\displaystyle 2(n-k)^2 +3(n-k) \).

Ora non ti resta che scrivere: \(\displaystyle \sum_{k=1}^{n-1} 2(n-k)^2 +3(n-k) \). Dopo bisogna proseguire con i calcoli (usando note formule dell'analisi) per ottenere che la complessità del metodo di Gauss si riduce a \(\displaystyle \frac{1}{3} n^3\).

vict85
"Rosy1993":
2) Per spiegare la fattorizzazione LU, il libro fa riferimento a una matrice \(\displaystyle M_k \) detta triangolare unitaria elementare inferiore di indice k, ma non ho per niente capito la definizione:

"Dato un vettore m del tipo \(\displaystyle m_T = (0,0,...m_{k+1},...,m_n) \) la matrice \(\displaystyle M_k \) di ordine n, definita come \(\displaystyle M_k = I - me_{kT} \), dove \(\displaystyle e_{kT} \) è il k-esimo vettore unitario, è detta matrice triangolare unitaria elementare inferiore di indice k."

Ma se moltiplico m per il k-esimo vettore unitario non ottengo il vettore nullo???

Grazie a chi mi aiuterà!


Direi che, per \(\displaystyle k=1\) e \(n=3 \) intenda questo:

\(\displaystyle \begin{pmatrix}0 \\ m_2 \\ m_3 \end{pmatrix}
\begin{pmatrix}1 \\ 0 \\ 0 \end{pmatrix}^{\intercal} =
\begin{pmatrix}0 \\ m_2 \\ m_3 \end{pmatrix}
\begin{pmatrix}1 & 0 & 0 \end{pmatrix} =
\begin{pmatrix}0 & 0 & 0 \\ m_2 & 0 & 0 \\ m_3 & 0 & 0 \end{pmatrix} \)

perciò \(M_1\) è la seguente matrice:

\(\displaystyle \begin{pmatrix}1 & 0 & 0 \\ -m_2 & 1 & 0 \\ -m_3 & 0 & 1 \end{pmatrix} \)

Rosy19931
Grazie mille a entrambi per la risposta! :D
Vict85, in effetti sono stata troppo impulsiva e ho trasformato quello che doveva essere un prodotto colonna per riga in un prodotto riga per colonna :oops: Adesso è chiaro! ;)
wolframio32, ci ho messo un po' ma credo di aver capito anche la tua risposta, oggi faccio i calcoli e vedrò di scovare questa fantomatica complessità :D
Se dovessi avere altri problemi faccio affidamento su di voi!!! :P

Rispondi
Per rispondere a questa discussione devi prima effettuare il login.