Calcolatore Sistemi Lineari (Cramer, Gauss-Jordan)
Calcolatore sistemi lineari A x = b: regola di Cramer, eliminazione di Gauss-Jordan, teorema Rouche-Capelli, sistemi sotto/sovra determinati e applicazioni.
Segnala un errore di calcolo
Aiutaci a migliorare. Descrivi cosa non torna nel calcolo.
Risultato
| Voce | Valore |
|---|
Mostra dettagli completi
Condividi risultato
Disclaimer: questo calcolo ha valore puramente indicativo. Per decisioni importanti, consulta un professionista qualificato.
Sistemi lineari
Un sistema di equazioni lineari A x = b consiste di n equazioni in m incognite x_1, ..., x_m. In forma matriciale:
A x = b dove A e matrice n x m, x vettore m x 1, b vettore n x 1.
Risolvere il sistema significa trovare il vettore x che soddisfa tutte le equazioni simultaneamente. E uno dei problemi fondamentali dell algebra lineare con applicazioni in fisica, ingegneria, statistica, computer graphics.
Esempio numerico
Sistema 3x3:
2 x_1 + x_2 - x_3 = 8
-3 x_1 - x_2 + 2 x_3 = -11
-2 x_1 + x_2 + 2 x_3 = -3
Soluzione: x_1 = 2, x_2 = 3, x_3 = -1. Verificare: 2*2 + 3 - (-1) = 8 ok.
Regola di Cramer (sistemi quadrati)
Per A quadrata n x n con det(A) != 0:
x_i = det(A_i) / det(A)
dove A_i e la matrice ottenuta sostituendo la i-esima colonna di A con b. Esempio 2x2 con det(A) = ad - bc != 0: x_1 = (b_1 d - b_2 b) / det, x_2 = (a b_2 - c b_1) / det. Cramer (1750) elegantissimo ma costo O(n!) o O(n^4) con cofattori. Inefficiente per n > 4.
Eliminazione di Gauss-Jordan
Algoritmo standard per risolvere sistemi lineari arbitrari (anche non quadrati). Operazioni elementari su righe:
- Scambiare due righe.
- Moltiplicare una riga per scalare non zero.
- Sommare a una riga un multiplo di un altra riga.
Obiettivo: ridurre [A|b] in forma a scala ridotta (RREF, Reduced Row Echelon Form). Costo: O(n^3) flop (con pivot parziale per stabilità numerica). Standard in produzione (LAPACK).
Decomposizione LU
Variante di Gauss: A = L U dove L triangolare inferiore con 1 sulla diagonale, U triangolare superiore. Risoluzione in due passi: L y = b (forward sub), U x = y (backward sub). Vantaggio: per più vettori b, fattorizzare A una sola volta poi risolvere O(n^2) per ogni b. Variante PA = LU (con pivot) per stabilità.
Teorema di Rouche-Capelli
Caratterizzazione completa delle soluzioni:
- Se rank(A) < rank(A|b): sistema INCONSISTENTE (no soluzione).
- Se rank(A) = rank(A|b) = m (numero variabili): SOLUZIONE UNICA.
- Se rank(A) = rank(A|b) < m: INFINITE soluzioni con (m - rank) parametri liberi.
Per sistemi quadrati n = m: det(A) != 0 implica soluzione unica. det(A) = 0 implica nessuna soluzione o infinite.
Sistemi sottodeterminati
n < m (più incognite che equazioni). Ammette infinite soluzioni (se consistente). Soluzione generale: x = x_p + Null(A) (particolare + spazio nullo). Soluzione di minima norma euclidea: x_min = A^+ b dove A^+ e pseudoinversa di Moore-Penrose. Comune in compressed sensing (signali sparsi), regressione regolarizzata.
Sistemi sovradeterminati
n > m (più equazioni che incognite). Generalmente NO soluzione esatta. Soluzione least squares: minimizza ||A x - b||^2. Equazioni normali: A^T A x = A^T b -> x = (A^T A)^(-1) A^T b (se A^T A invertibile). Tipico in: regressione lineare, data fitting, image reconstruction.
Stabilità numerica e condizionamento
Numero di condizionamento: cond(A) = ||A|| ||A^(-1)||. Indica sensibilità della soluzione a piccole perturbazioni di b. cond(A) = 1: ben condizionato. cond(A) >> 1: mal condizionato (soluzione sensibile a errori di arrotondamento). Pivot parziale (scambia righe per pivot massimo) migliora stabilità ma non basta per matrici molto mal condizionate. Pivot totale: anche scambio colonne, costo aggiuntivo O(n).
Metodi iterativi
Per matrici sparse (molti zeri) e n grande, metodi iterativi sono più efficienti del Gauss diretto:
- Jacobi: x^(k+1) = D^(-1) (b - (L+U) x^(k)).
- Gauss-Seidel: usa valori aggiornati immediatamente. Convergenza più rapida.
- SOR (Successive Over-Relaxation): introduce parametro omega per accelerare.
- Conjugate gradient: per A simmetrica positiva definita, ottimo.
- GMRES: per matrici generiche.
Applicazioni
- FEM (Finite Element Method): K u = f con K stiffness matrix.
- Reti elettriche: leggi di Kirchhoff.
- Programmazione lineare: simplex method.
- Reti neurali: backprop risolve sistemi.
- Image processing: filtri lineari.
- Quantum mechanics: operatori come matrici.
- Catene Markov: stato stazionario via (P^T - I) pi = 0.
- Curve fitting: regressione polinomiale.
Storia
Cina antica (Jiuzhang Suanshu, 200 a.C.): primo metodo simile a Gauss. Cramer (1750): formule esplicite. Gauss (1809, "Theoria motus corporum coelestium"): elimination metodo per orbite. Jordan (1888): variante a scala ridotta. Cholesky (1910): variante per matrici simmetriche. Wilkinson (1960s): analisi stabilità numerica. LAPACK (1992-): standard moderno.
Modalita del calcolatore
Cinque modalita: eliminazione di Gauss-Jordan (standard); regola di Cramer (sistemi quadrati); verifica soluzione candidata; analisi rango via Rouche-Capelli; sistemi sottodeterminati e sovradeterminati con least squares.
La geometria dei sistemi lineari: intersezioni nello spazio
Ogni equazione lineare rappresenta geometricamente un oggetto piatto: una retta in due dimensioni, un piano in tre, un iperpiano in generale. Risolvere un sistema significa trovare i punti che appartengono contemporaneamente a tutte queste superfici, cioe la loro intersezione. Questa visione geometrica illumina immediatamente perche un sistema puo avere una, infinite o nessuna soluzione.
Se due rette nel piano si incrociano in un punto, il sistema ha soluzione unica. Se coincidono, ogni punto e soluzione e le soluzioni sono infinite. Se sono parallele e distinte, non si incontrano mai e il sistema e impossibile. In dimensioni superiori la stessa logica si estende a piani e iperpiani. Il teorema di Rouche-Capelli traduce questa geometria in aritmetica: confrontando il rango della matrice dei coefficienti con quello della matrice completa si stabilisce esattamente quale dei tre casi si verifica, senza bisogno di visualizzare.
Il condizionamento: quando piccoli errori diventano grandi
Non tutti i sistemi lineari sono ugualmente facili da risolvere in pratica. Alcuni sono mal condizionati: piccole variazioni nei coefficienti o nei termini noti producono enormi variazioni nella soluzione. Geometricamente corrisponde a rette quasi parallele, il cui punto di intersezione si sposta violentemente al minimo cambiamento di pendenza. In questi casi anche gli inevitabili errori di arrotondamento del calcolatore possono rendere la soluzione numerica del tutto inaffidabile.
La gravita del problema si misura con il numero di condizionamento della matrice: un valore vicino a 1 indica un sistema ben posto, valori enormi segnalano condizionamento pessimo. Un esempio classico e la matrice di Hilbert, i cui numeri di condizionamento crescono esponenzialmente con la dimensione, rendendola un banco di prova per gli algoritmi. Riconoscere e gestire il malcondizionamento e essenziale in ingegneria e nel calcolo scientifico, dove si ricorre a tecniche come il pivoting, la regolarizzazione o l'aumento della precisione per ottenere risultati affidabili.
Aggiornato a luglio 2026
Domande frequenti
Cos'e un sistema di equazioni lineari?
Come si risolve con l'eliminazione di Gauss?
Cos'e la regola di Cramer?
Quante soluzioni puo avere un sistema?
Cosa dice il teorema di Rouche-Capelli?
Cosa sono i sistemi sovradeterminati?
Cos'e il condizionamento di un sistema?
A cosa servono i sistemi lineari?
Formula
A x = b. Cramer: x_i = det(A_i)/det(A). Gauss: ridurre [A|b] a RREF. LU: A = LU, risolvere L y = b, U x = y. Rouche-Capelli: rank(A) vs rank(A|b). Least squares: A^T A x = A^T b.
Commenti (0)
Accedi per lasciare un commento.
Ancora nessun commento. Sii il primo!