Problema con decomposizione LU

IlRosso1
Salve a tutti!
Sto provando un'esercizio di algebra lineare che dice questo:

Sia $ alpha in CC $ e si consideri la matrice
$ A(alpha) = | ( alpha+1 , 2 , 0 , 1 , 2 ),( 0 , 1 , 2 , 1 , 1 ),( alpha+1 , alpha+1 , 1 , 0 , -1 ),( 0 , 0 , alpha+1 , alpha+1 , 0 ) | $
Se ne calcoli una decomposizione LU e, per i valori di $ alpha $ per i quali non è possibile, una decomposizione
P trasposta LU.

Io sto cercando di fare la LU e le operazioni elementari che ho applicato in successione sono:
$ E1(1/(alpha+1)), E3(1/(alpha+1)), E31(-1), E3((alpha+1)/(alpha-1)), E32(-1), E3((alpha-1)/(3-2*alpha)), E4(1/(alpha+1)), E43(-1), E4((3-2*alpha)/(3-alpha)) $
Secondo voi è corretto? Ho l'impressione che ci sia qualcosa che non va!
Grazie

Risposte
vict85
"IlRosso":
Salve a tutti!
Sto provando un'esercizio di algebra lineare che dice questo:

Sia $ alpha in CC $ e si consideri la matrice
$ A(alpha) = | ( alpha+1 , 2 , 0 , 1 , 2 ),( 0 , 1 , 2 , 1 , 1 ),( alpha+1 , alpha+1 , 1 , 0 , -1 ),( 0 , 0 , alpha+1 , alpha+1 , 0 ) | $
Se ne calcoli una decomposizione LU e, per i valori di $ alpha $ per i quali non è possibile, una decomposizione
P trasposta LU.

Io sto cercando di fare la LU e le operazioni elementari che ho applicato in successione sono:
$ E1(1/(alpha+1)), E3(1/(alpha+1)), E31(-1), E3((alpha+1)/(alpha-1)), E32(-1), E3((alpha-1)/(3-2*alpha)), E4(1/(alpha+1)), E43(-1), E4((3-2*alpha)/(3-alpha)) $
Secondo voi è corretto? Ho l'impressione che ci sia qualcosa che non va!
Grazie


Ci sono molti modi per giustificare la decomposizione LU quella delle operazioni elementari non è la mia preferita :D

Detto questo mi sembra difficile comprendere che hai fatto dalle semplici operazioni scritte di fila senza mettersi ad fare tutto il calcolo anche se penso ci sia qualcosa di sbagliato... Trovo comunque che per come è fatta la matrice una decomposizione PAQ = LU potrebbe essere più indicata, soprattutto nel caso in cui $alpha=-1$.
La matrice finale esce nel modo corretto? Quello è l'unico modo che hai per comprendere se hai fatto tutto giusto. Dopo che hai la decomposizione puoi moltiplicare e vedi subito se hai sbagliato.

IlRosso1
La matrice mi sembra essere corretta come forma..il mio dubbio è nel calcolo della matrice L che se ho capito bene è la matrice che si ottiene moltiplicando tutte le matrici corrispondenti alle operazioni elementari partendo dall'ultima fino alla prima e poi invertendola.
Il mio dubbio è: è possibile che tra le operazioni elementari me ne compaiano alcune con lo stesso indice? oppure è sintomo di qualche errore? Ad esempio $ E3(1/(alpha+1)) $, $ E3((alpha+1)/(alpha-1)) $ e $ E3((alpha-1)/(3-2*alpha)) $...oppure ancora $ E4(1/(alpha+1)) $ e $ E4((3-2*alpha)/(3-alpha)) $ .

vict85
Secondo me ti conviene cambiare libro. Che la matrice [tex]L[/tex] sia prodotta così ok ma è il modo più lontano dal metodo pratica che esista e anche difficile da visualizzare.

Quello che dici tu, ignorando il pivoting, si vede osservando che le operazioni elementari sono tutte matrici triangolari inferiori e la loro moltiplicazione è [tex]L[/tex].

[tex]L_n\dots L_1 A = U[/tex]
[tex]A = L_1^{-1}\dots L_n^{-1} U[/tex]

Ma già con il pivoting le cose si complicano un po' e quindi lo trovo un modo bruttino per visualizzare le cose e non semplicissimo da applicare. In ogni caso non devi invertire la matrice ma ogni singola operazione elementare...

La fattorizzazione [tex]LU[/tex] può essere fatta "inplace" calcolando sia [tex]L[/tex] che [tex]U[/tex] insieme senza nessun riferimento alle operazioni elementari.

Un modo abbastanza pratico è quello di vedere [tex]A[/tex] come moltiplicazione di [tex]L[/tex] e [tex]U[/tex] e calcolare il prodotto ricorsivamente.

Per esempio

[tex]A = \left(\begin{array}{cc} a_{11} & a_{1*} \\ a_{*1} & A_2 \end{ tabular }\right) = \left(\begin{array}{cc} 1 & 0 \\ l_{*1} & L_2 \end{ tabular }\right)\left(\begin{array}{cc} u_{11} & u_{1*} \\ 0 & U_2 \end{ tabular }\right)[/tex]

Quindi:
[tex]a_{11} = u_{11}[/tex] che è equivalente a [tex]u_{11} = a_{11}[/tex]
[tex]a_{1*} = u_{1*}[/tex] che è equivalente a [tex]u_{1*} = a_{1*}[/tex]
[tex]a_{*1} = l_{*1}u_{11}[/tex] cioè [tex]l_{*1} = a_{*1}u_{11}^{-1} = a_{*1}a_{11}^{-1}[/tex]
[tex]A_2 = l_{*1}u_{1*} + L_2U_2[/tex] cioè [tex]L_2U_2 = A_2 - l_{*1}u_{1*} = A_2 - a_{11}^{-1}a_{*1}a_{1*}[/tex]

Si noti che [tex]a_{*1}[/tex] è un vettore colonna (matrice [tex](n-1)\times 1[/tex]), [tex]a_{1*}[/tex] è un vettore riga (matrice [tex]1 \times (n-1)[/tex]) e così anche [tex]l_{*1}[/tex] e [tex]u_{1*}[/tex]. Il prodotto [tex]a_{*1}a_{1*}[/tex] è una matrice [tex](n-1)\times(n-1)[/tex] come [tex]A_2[/tex]. L'algoritmo che ne esce fuori è equivalente a quello delle operazioni elementari ma sono possibili vari riordini nelle operazioni. Su dei buoni libri di algebra lineare numerica le trovi.

Comunque passiamo alla tua matrice.

[tex]\left(\begin{array}{ccccc} \alpha+1 & 2 & 0 & 1 & 2\\ 0 & 1 & 2 & 1 & 1 \\ \alpha+1 & \alpha +1 & 1 & 0 & -1 \\ 0 & 0 & \alpha+1 & \alpha+1 & 0 \end{ tabular }\right)[/tex]

Nel primo passaggio sottraiamo la prima riga alle altre per un fattore [tex]a_{i1}/a_{11}[/tex] e troviamo la prima colonna di [tex]L[/tex]. Qui se [tex]\alpha=-1[/tex] allora non è possibile la fattorizzazione con il pivoting di righe. Con un pivoting totale è possibile.

[tex]\left(\begin{array}{c|cccc} \alpha+1 & 2 & 0 & 1 & 2 \\\hline 0 & 1 & 2 & 1 & 1 \\ 0 & \alpha +1 -2 & 1 & 0-1 & -1-2 \\ 0 & 0 & \alpha+1 & \alpha+1 & 0 \end{ tabular }\right) = \left(\begin{array}{c|cccc} \alpha+1 & 2 & 0 & 1 & 2 \\\hline 0 & 1 & 2 & 1 & 1 \\ 0 & \alpha -1 & 1 & -1 & -3 \\ 0 & 0 & \alpha+1 & \alpha+1 & 0 \end{ tabular }\right)[/tex]

[tex]L = \left(\begin{array}{ccccc} 1 & 0 & 0 & 0\\ 0 & 1 & 0 & 0 \\ 1 & * & 1 & 0 \\ 0 & * & * & 1 \end{ tabular }\right)[/tex] fai attenzione che la matrice L è una [tex]4\times 4[/tex]

Passiamo quindi alla seconda riga. Non ci sono problemi di pivoting.

[tex]\left(\begin{array}{cc|ccc} \alpha+1 & 2 & 0 & 1 & 2 \\ 0 & 1 & 2 & 1 & 1 \\\hline 0 & 0 & 1 - 2(\alpha-1) & -1- (\alpha-1) & -3- (\alpha-1) \\ 0 & 0 & \alpha+1 & \alpha+1 & 0 \end{ tabular }\right) = \left(\begin{array}{cc|ccc} \alpha+1 & 2 & 0 & 1 & 2 \\ 0 & 1 & 2 & 1 & 1 \\\hline 0 & 0 & 3-2\alpha & -\alpha & -(\alpha + 2) \\ 0 & 0 & \alpha+1 & \alpha+1 & 0 \end{ tabular }\right)[/tex]

[tex]L = \left(\begin{array}{ccccc} 1 & 0 & 0 & 0\\ 0 & 1 & 0 & 0 \\ 1 & \alpha-1 & 1 & 0 \\ 0 & 0 & * & 1 \end{ tabular }\right)[/tex]

Passiamo quindi alla terza riga. Qui c'è il problema del pivoting se [tex]3-2\alpha = 0[/tex] cioè se [tex]\displaystyle\alpha = \frac32[/tex]. In quel caso basta scambiare le ultime due righe.

caso 1)

[tex]\displaystyle U = \left(\begin{array}{ccccc} \alpha+1 & 2 & 0 & 1 & 2 \\ 0 & 1 & 2 & 1 & 1 \\ 0 & 0 & 3-2\alpha & -\alpha & -\alpha - 2 \\ 0 & 0 & 0 & \alpha+1 +\alpha\frac{\alpha+1}{3 -2\alpha} & (\alpha+2)\frac{\alpha+1}{3 -2\alpha} \end{ tabular }\right)[/tex]... i calcoli non ho voglia di finirli...

[tex]L = \left(\begin{array}{ccccc} 1 & 0 & 0 & 0\\ 0 & 1 & 0 & 0 \\ 1 & \alpha-1 & 1 & 0 \\ 0 & 0 & \frac{\alpha+1}{3 -2\alpha} & 1 \end{ tabular }\right)[/tex]

Il caso 2 aggiunge solo il pivoting. Devi scambiare anche le righe in [tex]L[/tex] prima di calcolare [tex]a_{43}[/tex].

I conti ti tornano?

IlRosso1
Si si ora i conti mi tornano! intanto grazie della pazienza e della più che esaustiva spiegazione..ammetto che non è stato automatico per me capire il ragionamento ma ora ce l'ho fatta! Purtroppo però non posso cambiare libro e metodo come mi consigli perchè il libro l'ha scritto il mio prof e vuole che usiamo quello e per quanto riguarda il metodo lui vuole che usiamo proprio questo! :(
Però sono riuscito a capire il collegamento tra questo metodo che mi hai spiegato e quello che ci ha spiegato il prof quindi casomai, dando le opportune spiegazioni, posso utilizzare anche questo! :D
Ora però ho alcuni dubbii riguardo la decomposizione $ P^TLU $ : in che momento devo sostituire i valori di $ alpha $ per cui non è possibile la decomposizione $ LU $ ?
Grazie mille per l'aiuto!

IlRosso1
Scusate sono ancora io! :oops:
Mi sono appena accorto che ho dei problemi di visualizzazione dei post, non so voi..cmq per chi non lo vedesse nell'ultimo post avevo chiesto delucidazioni riguardo la $ P^TLU $ per l'esercizio che ho proposto..Detto questo grazie a chi ha la possibilità di darmi una mano! :-)

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