Domanda su Fattorizzazione LU
Salve , quando devo calcolare una fattorizzazione LU tramite Gauss , so applicare il Pivoting . Questo perchè calcolo la fattorizzazione passo per passo .
Ora se devo calcolare la Fattorizzazione tramite l'algoritmo di Crout , come faccio ad applicare un Pivoting mentre sto calcolando la fattorizzazione ?
Aiutatemi , su internet non ho trovato nulla
Ora se devo calcolare la Fattorizzazione tramite l'algoritmo di Crout , come faccio ad applicare un Pivoting mentre sto calcolando la fattorizzazione ?
Aiutatemi , su internet non ho trovato nulla
Risposte
Si fa in modo del tutto simile alle altre varianti della fattorizzazione di Gauss. Prima di iniziare ad aggiornare la nuova riga e la nuova colonna si trova il pivot e si scambiano le righe.
Gli unici fattori che possono dare problemi se =0 sono L11 , L22,L33 ??
Se avessi tempo , mi faresti un grande favore a postare un esempio . Ciò che non mi è chiaro è come modificare le equazioni di Crout già risolte , nel caso in cui dovessi applicare un pivoting
Se avessi tempo , mi faresti un grande favore a postare un esempio . Ciò che non mi è chiaro è come modificare le equazioni di Crout già risolte , nel caso in cui dovessi applicare un pivoting
L11, L22, L33!? Ma devi calcolarlo a mano? Comunque per le matrici \(\displaystyle 3\times 3 \) i valori sono quelli.
In ogni caso non devi aspettare di utilizzare materialmente quei valori, la ricerca del pivot va fatta prima di ogni altra operazione di quella ripetizione del ciclo più esterno.
In ogni caso non devi aspettare di utilizzare materialmente quei valori, la ricerca del pivot va fatta prima di ogni altra operazione di quella ripetizione del ciclo più esterno.
Sono stato bocciato allo scritto perchè non sapevo come applicare ( a mano ) l'algoritmo di Crout su una matrice.
Credo che Crout vada usato solo se la matrice non neccessiti di pivoting e nel caso contrario usare gauss
Credo che Crout vada usato solo se la matrice non neccessiti di pivoting e nel caso contrario usare gauss
No, è solo una variante di Gauss. E puoi farci il pivoting. Ci sono 9 varianti delle decomposizione LU moltiplicate per infinite possibili condizioni sulle diagonali di L e U. Spero quindi di aver considerato la stessa variante che tu chiami Crout.
Sia \(\displaystyle A = \begin{pmatrix} 0 & 11 & 0 \\ 1 & 2 & 13 \\ 2 & 4 & 8 \end{pmatrix} \) (costruita apposta per dover fare sempre il pivoting).
Si ha quindi:
\begin{align} \begin{pmatrix} 1 & 0 & 0 \\ 0 & 1 & 0 \\ 0 & 0 & 1 \end{pmatrix}A &= \begin{pmatrix} 1 & 0 & 0 \\ 0 & 1 & 0 \\ 0 & 0 & 1 \end{pmatrix}\begin{pmatrix} 0 & 11 & 0 \\ 1 & 2 & 13 \\ 2 & 4 & 8 \end{pmatrix} \\
\begin{pmatrix} 0 & 0 & 1 \\ 0 & 1 & 0 \\ 1 & 0 & 0 \end{pmatrix}A &= \begin{pmatrix} 1 & 0 & 0 \\ 0 & 1 & 0 \\ 0 & 0 & 1 \end{pmatrix}\begin{pmatrix} 2 & 4 & 8 \\ 1 & 2 & 13 \\ 0 & 11 & 0 \end{pmatrix} \\
\begin{pmatrix} 0 & 0 & 1 \\ 0 & 1 & 0 \\ 1 & 0 & 0 \end{pmatrix}A &= \begin{pmatrix} 2 & 0 & 0 \\ 0 & 1 & 0 \\ 0 & 0 & 1 \end{pmatrix}\begin{pmatrix} 1 & 2 & 4 \\ 1 & 2 & 13 \\ 0 & 11 & 0 \end{pmatrix} \\
\begin{pmatrix} 0 & 0 & 1 \\ 0 & 1 & 0 \\ 1 & 0 & 0 \end{pmatrix}A &= \begin{pmatrix} 2 & 0 & 0 \\ 1 & 1 & 0 \\ 0 & 0 & 1 \end{pmatrix}\begin{pmatrix} 1 & 2 & 4 \\ 0 & 0 & 9 \\ 0 & 11 & 0 \end{pmatrix} \\
\begin{pmatrix} 0 & 0 & 1 \\ 1 & 0 & 0 \\ 0 & 1 & 0 \end{pmatrix}A &= \begin{pmatrix} 2 & 0 & 0 \\ 0 & 1 & 0 \\ 1 & 0 & 1 \end{pmatrix}\begin{pmatrix} 1 & 2 & 4 \\ 0 & 11 & 0 \\ 0 & 0 & 9 \end{pmatrix} \\
\begin{pmatrix} 0 & 0 & 1 \\ 1 & 0 & 0 \\ 0 & 1 & 0 \end{pmatrix}A &= \begin{pmatrix} 2 & 0 & 0 \\ 0 & 11 & 0 \\ 1 & 0 & 1 \end{pmatrix}\begin{pmatrix} 1 & 2 & 4 \\ 0 & 1 & 0 \\ 0 & 0 & 9 \end{pmatrix} \\
\begin{pmatrix} 0 & 0 & 1 \\ 1 & 0 & 0 \\ 0 & 1 & 0 \end{pmatrix}A &= \begin{pmatrix} 2 & 0 & 0 \\ 0 & 11 & 0 \\ 1 & 0 & 9 \end{pmatrix}\begin{pmatrix} 1 & 2 & 4 \\ 0 & 1 & 0 \\ 0 & 0 & 1 \end{pmatrix} \\
\end{align}
Pertanto \(\displaystyle P = \begin{pmatrix} 0 & 0 & 1 \\ 1 & 0 & 0 \\ 0 & 1 & 0 \end{pmatrix} \), \(\displaystyle L = \begin{pmatrix} 2 & 0 & 0 \\ 0 & 11 & 0 \\ 1 & 0 & 9 \end{pmatrix} \) e \(\displaystyle U = \begin{pmatrix} 1 & 2 & 4 \\ 0 & 1 & 0 \\ 0 & 0 & 1 \end{pmatrix} \)
Sia \(\displaystyle A = \begin{pmatrix} 0 & 11 & 0 \\ 1 & 2 & 13 \\ 2 & 4 & 8 \end{pmatrix} \) (costruita apposta per dover fare sempre il pivoting).
Si ha quindi:
\begin{align} \begin{pmatrix} 1 & 0 & 0 \\ 0 & 1 & 0 \\ 0 & 0 & 1 \end{pmatrix}A &= \begin{pmatrix} 1 & 0 & 0 \\ 0 & 1 & 0 \\ 0 & 0 & 1 \end{pmatrix}\begin{pmatrix} 0 & 11 & 0 \\ 1 & 2 & 13 \\ 2 & 4 & 8 \end{pmatrix} \\
\begin{pmatrix} 0 & 0 & 1 \\ 0 & 1 & 0 \\ 1 & 0 & 0 \end{pmatrix}A &= \begin{pmatrix} 1 & 0 & 0 \\ 0 & 1 & 0 \\ 0 & 0 & 1 \end{pmatrix}\begin{pmatrix} 2 & 4 & 8 \\ 1 & 2 & 13 \\ 0 & 11 & 0 \end{pmatrix} \\
\begin{pmatrix} 0 & 0 & 1 \\ 0 & 1 & 0 \\ 1 & 0 & 0 \end{pmatrix}A &= \begin{pmatrix} 2 & 0 & 0 \\ 0 & 1 & 0 \\ 0 & 0 & 1 \end{pmatrix}\begin{pmatrix} 1 & 2 & 4 \\ 1 & 2 & 13 \\ 0 & 11 & 0 \end{pmatrix} \\
\begin{pmatrix} 0 & 0 & 1 \\ 0 & 1 & 0 \\ 1 & 0 & 0 \end{pmatrix}A &= \begin{pmatrix} 2 & 0 & 0 \\ 1 & 1 & 0 \\ 0 & 0 & 1 \end{pmatrix}\begin{pmatrix} 1 & 2 & 4 \\ 0 & 0 & 9 \\ 0 & 11 & 0 \end{pmatrix} \\
\begin{pmatrix} 0 & 0 & 1 \\ 1 & 0 & 0 \\ 0 & 1 & 0 \end{pmatrix}A &= \begin{pmatrix} 2 & 0 & 0 \\ 0 & 1 & 0 \\ 1 & 0 & 1 \end{pmatrix}\begin{pmatrix} 1 & 2 & 4 \\ 0 & 11 & 0 \\ 0 & 0 & 9 \end{pmatrix} \\
\begin{pmatrix} 0 & 0 & 1 \\ 1 & 0 & 0 \\ 0 & 1 & 0 \end{pmatrix}A &= \begin{pmatrix} 2 & 0 & 0 \\ 0 & 11 & 0 \\ 1 & 0 & 1 \end{pmatrix}\begin{pmatrix} 1 & 2 & 4 \\ 0 & 1 & 0 \\ 0 & 0 & 9 \end{pmatrix} \\
\begin{pmatrix} 0 & 0 & 1 \\ 1 & 0 & 0 \\ 0 & 1 & 0 \end{pmatrix}A &= \begin{pmatrix} 2 & 0 & 0 \\ 0 & 11 & 0 \\ 1 & 0 & 9 \end{pmatrix}\begin{pmatrix} 1 & 2 & 4 \\ 0 & 1 & 0 \\ 0 & 0 & 1 \end{pmatrix} \\
\end{align}
Pertanto \(\displaystyle P = \begin{pmatrix} 0 & 0 & 1 \\ 1 & 0 & 0 \\ 0 & 1 & 0 \end{pmatrix} \), \(\displaystyle L = \begin{pmatrix} 2 & 0 & 0 \\ 0 & 11 & 0 \\ 1 & 0 & 9 \end{pmatrix} \) e \(\displaystyle U = \begin{pmatrix} 1 & 2 & 4 \\ 0 & 1 & 0 \\ 0 & 0 & 1 \end{pmatrix} \)
Grazie mille 
A me tuttavia sembra uguale al metodo di Gauss , la prof nell'esame aveva specificatamente chiesto Crout e non Gauss , bohh
ps: Credo di aver capito , correggimi se sbaglio , la matrice che la Prof ha inserito nell'esame era Tridiagonale . Ci dovrebbe essere un metodo di Crout per matrici tridiagonali . Per come sono definite non credo sia possibile fare pivoting con esse

A me tuttavia sembra uguale al metodo di Gauss , la prof nell'esame aveva specificatamente chiesto Crout e non Gauss , bohh
ps: Credo di aver capito , correggimi se sbaglio , la matrice che la Prof ha inserito nell'esame era Tridiagonale . Ci dovrebbe essere un metodo di Crout per matrici tridiagonali . Per come sono definite non credo sia possibile fare pivoting con esse
OK, quindi stiamo parlando di Crout per matrici tridiagonali. Hai bisogno di trovare l'algoritmo? https://en.wikipedia.org/wiki/Tridiagon ... _algorithm
[edit] A quanto dice wiki se il metodo veloce non funziona, si passa ad utilizzare l'algoritmo standard.
[edit] A quanto dice wiki se il metodo veloce non funziona, si passa ad utilizzare l'algoritmo standard.
Gentilissimo grazie mille