L’eliminazione di Gauss, spesso chiamata anche metodo di Gauss, è il procedimento fondamentale per risolvere sistemi lineari e analizzare matrici tramite operazioni elementari sulle righe. L’idea è trasformare il sistema iniziale in un sistema equivalente ma più semplice, tipicamente triangolare o in forma a scala, senza cambiare l’insieme delle soluzioni.
In forma compatta un sistema lineare si scrive:
dove A è la matrice dei coefficienti, \mathbf{x} il vettore delle incognite e \mathbf{b} il vettore dei termini noti. L’eliminazione lavora di solito sulla matrice aumentata (A\,|\,\mathbf{b}), cioè sulla matrice che contiene insieme coefficienti e termini noti.
Le tre operazioni elementari sono:
- scambiare due righe;
- moltiplicare una riga per uno scalare non nullo;
- sommare a una riga un multiplo di un’altra riga.
Queste operazioni corrispondono a sostituire equazioni con equazioni equivalenti. Per questo non alterano la soluzione del sistema, ma rendono visibili pivot, variabili libere, incompatibilità e dipendenze lineari.
Forma a scala
Una matrice è in forma a scala quando i pivot avanzano verso destra scendendo di riga e le righe nulle, se presenti, sono poste in fondo. I pivot indicano le variabili principali; le colonne senza pivot corrispondono a variabili libere.
Il procedimento operativo è:
- scegliere un pivot nella prima colonna utile;
- usare il pivot per annullare gli elementi sotto di esso;
- passare al sottosistema ottenuto eliminando la riga e la colonna del pivot;
- ripetere finché non restano colonne utili;
- leggere la forma a scala e, se possibile, risolvere per sostituzione all’indietro.
Per esempio, in un sistema con tre incognite, l’obiettivo classico è ottenere una struttura del tipo:
Da qui si ricava prima x_3, poi x_2, poi x_1. Questo passaggio finale è la sostituzione all’indietro.
Compatibilità e rango
La forma a scala permette di discutere la compatibilità di un sistema. Se nella matrice aumentata compare una riga del tipo:
il sistema è incompatibile. Se invece non ci sono righe contraddittorie, il numero di pivot determina se la soluzione è unica o infinita.
Il rango di una matrice è il numero di pivot nella sua forma a scala. Per il teorema di Rouché-Capelli, un sistema è compatibile se il rango della matrice dei coefficienti coincide con il rango della matrice aumentata; se il rango comune è minore del numero di incognite, il sistema ha infinite soluzioni.
Caso quadrato non singolare
Nel caso quadrato non singolare, l’eliminazione produce un sistema triangolare superiore:
La soluzione si ottiene con sostituzione all’indietro, partendo dall’ultima equazione. Questo è il caso classico dei sistemi determinati con matrice invertibile.
Il costo computazionale per una matrice densa n\times n è dell’ordine di:
mentre la sostituzione all’indietro costa O(n^2). Per matrici grandi e sparse, la struttura degli zeri diventa importante perché l’eliminazione può generare fill-in, cioè nuovi elementi non nulli in posizioni che erano inizialmente nulle. Nei risolutori ingegneristici questo aspetto incide su memoria, tempo di calcolo e scelta dell’ordinamento delle incognite.
Pivoting
Dal punto di vista numerico, non conviene dividere per pivot nulli o molto piccoli. Il pivoting parziale scambia le righe per scegliere, nella colonna corrente, un pivot di modulo grande. Questo riduce l’amplificazione degli errori di arrotondamento.
Senza pivoting, anche sistemi teoricamente ben posti possono produrre risultati numericamente scadenti. Il pivoting non risolve ogni problema di condizionamento numerico, ma rende l’algoritmo molto più stabile nella pratica. Se il numero di condizionamento della matrice è molto alto, piccole perturbazioni nei dati possono comunque causare grandi variazioni nella soluzione.
Il pivoting totale, che può scambiare righe e colonne, è più costoso e meno usato nei calcoli ordinari. Nei sistemi lineari, lo scambio di colonne cambia l’ordine delle incognite e deve quindi essere tracciato con attenzione.
Collegamento con la fattorizzazione LU
L’eliminazione di Gauss è strettamente collegata alla fattorizzazione LU. Se gli scambi di righe sono rappresentati da una matrice di permutazione P, spesso si scrive:
dove L è triangolare inferiore e U triangolare superiore. Una volta calcolata la fattorizzazione, si possono risolvere molti sistemi con la stessa matrice A e termini noti diversi:
Questo è essenziale in simulazione numerica, analisi strutturale, circuiti, ottimizzazione e metodi impliciti per equazioni differenziali.
Rango e inversa
L’eliminazione permette anche di calcolare l’inversa di una matrice quadrata, se esiste. Si lavora sulla matrice aumentata:
e si riduce A all’identità tramite operazioni elementari. Se la riduzione arriva a:
allora C=A^{-1}.
Tuttavia calcolare esplicitamente l’inversa è spesso meno stabile e meno efficiente che risolvere direttamente il sistema lineare. Nelle applicazioni numeriche, “risolvere Ax=b” non dovrebbe essere tradotto automaticamente in “calcolare A^{-1}”.
Interpretazione geometrica
Ogni operazione elementare sulle righe sostituisce un’equazione con una combinazione lineare equivalente delle equazioni originali. L’insieme delle soluzioni non cambia. L’eliminazione rende visibili dipendenze, incompatibilità e gradi di libertà.
Se una colonna non ha pivot, la variabile corrispondente può essere scelta liberamente e le altre variabili dipendono da essa. Se ogni colonna delle incognite ha pivot e il sistema è compatibile, la soluzione è unica.
Dal punto di vista degli spazi vettoriali, l’eliminazione individua quali equazioni sono indipendenti e quali sono combinazioni delle altre. Dal punto di vista delle colonne di A, chiarisce se il vettore \mathbf{b} appartiene allo spazio generato dalle colonne: se non vi appartiene, il sistema non ha soluzione.
Applicazioni ingegneristiche
L’eliminazione di Gauss è alla base dei risolutori diretti usati in molte discipline. In elettrotecnica, le leggi di Kirchhoff portano a sistemi lineari per correnti e tensioni incognite. In scienza delle costruzioni, il metodo degli spostamenti e i modelli agli elementi finiti generano matrici di rigidezza. In fluidodinamica computazionale, trasferimento di calore, ottimizzazione e stima ai minimi quadrati, la soluzione di sistemi lineari è spesso il nucleo numerico del calcolo.
Nei problemi piccoli, il metodo può essere svolto a mano per discutere soluzioni e parametri. Nei problemi grandi, conta l’implementazione: pivoting, struttura sparsa, ordinamento, memoria disponibile, parallelizzazione e controllo del residuo determinano la qualità del risultato.
Errori comuni
Il primo errore è scambiare operazioni sulle righe e sulle colonne in un sistema aumentato: le operazioni sulle colonne cambiano il significato delle variabili e non sono equivalenti alle operazioni sulle equazioni.
Il secondo errore è ignorare pivot nulli o quasi nulli. Un pivot piccolo può amplificare molto gli errori di arrotondamento; il pivoting non è un dettaglio cosmetico, ma una parte essenziale dell’algoritmo numerico.
Il terzo errore è arrotondare troppo presto nei calcoli manuali. Se si approssimano i coefficienti a ogni passaggio, il risultato finale può essere distorto anche quando il sistema è semplice.
Il quarto errore è confondere forma a scala e forma ridotta. La forma a scala basta per la sostituzione all’indietro; la forma ridotta di Gauss-Jordan spinge l’eliminazione anche sopra i pivot e rende più immediata la lettura delle soluzioni, ma richiede più operazioni.
Il quinto errore è usare l’inversa esplicita come metodo ordinario di soluzione. Per trovare \mathbf{x} in A\mathbf{x}=\mathbf{b} è quasi sempre preferibile risolvere il sistema direttamente o usare una fattorizzazione.
L’eliminazione di Gauss è quindi sia un metodo algebrico sia un algoritmo numerico. La sua affidabilità pratica dipende da pivoting, condizionamento della matrice, struttura sparsa e gestione degli errori di arrotondamento.
Vedi anche: matrice aumentata, sistema lineare, rango, teorema di Rouché-Capelli, pivoting parziale, fattorizzazione LU, condizionamento numerico, numero di condizionamento, regola di Cramer, formulario di geometria e algebra lineare e sistemi lineari numerici: Gauss, LU e pivoting.