cianfa72 ha scritto:3m0o ha scritto:Poi continui prendendo come pivot \( a_{3,4} = -1/2 \). E ottieni continuando
$ [[1,2,-1,1],[0,0,1,-1/2], [0,0,0,1],[0,0,0,0]] $
Ed è a scalini.
E' proprio qui il mio dubbio: dalla letteratura (vedi per es https://www.youmath.it/lezioni/algebra-lineare/matrici-e-vettori/831-eliminazione-di-gauss.html step 4 algoritmo di Gauss) al passo 2 visto che gli elementi $ a_{i,2}^((2)) $ per $ i=2,3,4 $ sono tutti nulli si dovrebbe procedere considerando la sottomatrice ottenuta eliminando la seconda riga e la seconda colonna: $ [[-3,2],[-3,1]] $ ovvero $ [[3,-2],[3,-1]] $ nel tuo caso
Allora l'algoritmo lì è sbagliato o quanto meno è differente da quello che hanno dato a me! Difatti seguendo l'algoritmo otteniamo
$ [[1,2,-1,1],[0,0,2,-1], [0,0,3,-2],[0,0,3,-1]] $
Poi il punto 4) effettivamente dice di considerare la sottomatrice
$ [[0,2,-1], [0,3,-2],[0,3,-1]] $
Poi il punto 1) dice di andare direttamente al punto 4) che a sua volta dice di consdierare la matrice
$ [[3,-2],[3,-1]] $
Poi ottieni
$ [[3,-2],[0,-3]] $
Ed in fine ottieni pertanto
$ [[1,2,-1,1],[0,0,2,-1], [0,0,3,-2],[0,0,0,-3]] $
Che NON è ridotta a scalini. L'algoritmo corretto è il seguente
Operazioni di tipo I: Scambiare due righe della matrice
Operazioni di tipo II: Moltiplicare una riga della matrice per uno scalare non nullo
Operazioni di tipo III: Addizionare una riga della matrice per un multiplo scalare di un altra riga della matrice
Sia \( K \) un campo e \( A \in K^{n \times m } \). Se \( A = 0 \) è ridotta a scalini, se \( A \neq 0 \)
1) Sia \( j_1 \) il più piccolo indice colonna per il quale un coefficiente di \( A \) è non nullo, diremo \( a_{i,j_1} \neq 0 \). Per un operazione di tipo I scambiare la riga \( i \) con la riga \( 1 \) in modo da ottenere \( a_{1,j_1} \neq 0 \).
(Il punto 2) è per rendere i pivot uguali a 1)
2) Per un operazione di tipo II moltiplicare la prima riga per \( a_{1,j_1}^{-1} \) e otteniamo \( a_{1,j_1}=1 \)
3) Per una successione finita di operazioni di tipo III annulliamo tutti i coefficienti della \( j_1\)-esima colonna. È sufficiente infatti aggiungere \( -a_{k,j_1} \times \) la prima riga alla riga \(k \). In modo da ottenere una matrice della forma \[ A'= \begin{pmatrix}
0 & \ldots & 0 &1 & \star & \ldots & \star \\
0 & \ldots & 0 &0 & \star & \ldots & \star \\
\vdots & \vdots & \vdots &\vdots & \vdots & \vdots & \vdots \\
0 & \ldots & 0 &0 & \star & \ldots & \star \\
\end{pmatrix} \]
4) Porre \( B \) la matrice consistente della righe 2 alla riga \( n \) di \[ A' = \begin{pmatrix}
0 & \ldots & 0 &1 & \star & \ldots & \star \\
& & & & & & \\
& & & B & & & \\
& & & & & &
\end{pmatrix} \] (praticamente elimini la prima riga).
5) Sia \( j_2 \) il più piccolo indice colonna per la quale \( B \) possiede un coefficiente non nullo. Abbiamo certamente \( j_2 > j_1 \), effettuare la procedura da 1) a 3) alla matrice \(B\) per ottenere \( B' \) e sostituire \( B' \) al posto di \( B \) nella matrice \( A' \) per ottenere una matrice \( A'' \) della forma
\[ A'' = \begin{pmatrix}
0 & \ldots & 0 &1 & \star & \ldots & \star \\
& & & & & & \\
& & & B' & & & \\
& & & & & &
\end{pmatrix}=\begin{pmatrix}
0 & \ldots & 0 &1 & \star & \star & \star & \star& \ldots& \star\\
0 & \ldots & 0 &0 & \ldots & 0 & 1& \star&\ldots &\star \\
0 & \ldots & 0&0 & \ldots & 0 & 0&\star &\ldots &\star \\
\vdots & \ldots & \vdots &0 & \ldots & 0 & 0& \star& \ldots&\star \\
\end{pmatrix} \]
(Il punto 6) annulli i coefficiente sopra il pivot, ma non è necessario per una riduzione a scalini).
6) Con un operazione di tipo III annuliamo il coefficiente \( a_{1,j_2} \) alla riga 1. Questa operazione non modifica tutti gli elementi della prima riga di \( A'' \) precedenti della colonna \( j_2 \).
7) Ripetere la procedura fino a ottenere una matrice a scalini.
Credo che l'algoritmo del link che hai dato è valido aggiustando il loro punto 1) con il mio punto 1).