Calcolatrice di matrici gratuita

Esegui operazioni matriciali: addizione, sottrazione, moltiplicazione, trasposizione, determinante e inverso.

Matrice A

Matrice B

Come funziona

Definisci le dimensioni delle matrici A e B, inserisci i valori e seleziona un'operazione. La calcolatrice verifica le dimensioni ed esegue l'operazione, mostrando il risultato in una griglia matriciale chiara.

Operazioni supportate

Domande frequenti

Quali dimensioni di matrice sono supportate?

Sono supportate le matrici fino a 6×6. Seleziona il numero di righe e di colonne per ogni matrice prima di inserire i valori.

Quando posso calcolare un inverso?

L'inverso di una matrice esiste solo per matrici quadrate (stesso numero di righe e colonne) con un determinante diverso da zero. Le matrici singolari (determinante = 0) non hanno inverso.

I miei dati vengono salvati?

No. Tutti i calcoli vengono eseguiti nel tuo browser. Niente viene salvato o inviato a un server.

Cos'è davvero una matrice

Una matrice è un array rettangolare di numeri disposti in righe e colonne e trattato come un singolo oggetto matematico. La forma si scrive come m × n dove m è il numero di righe e n il numero di colonne, sempre prima le righe. I singoli numeri all'interno sono voci o elementi; una voce alla riga i, colonna j si indica come aij usando l'indicizzazione in base 1. (Uno dei bug più comuni nel portare gli articoli di matematica in codice è la discordanza tra questa convenzione in base 1 e l'indicizzazione in base 0 usata da C, Python e JavaScript.)

Un vettore è una matrice con una riga (1 × n, «vettore riga») o una colonna (m × 1, «vettore colonna»). Uno scalare è una matrice 1 × 1. Questo annidamento conta: significa che ogni operazione dell'algebra lineare (prodotti scalari, proiezioni, trasformazioni) può essere espressa in modo uniforme come aritmetica matriciale, ed è per questo che le matrici sono diventate il linguaggio universale della matematica applicata dopo il 1900.

Una breve storia

Il più antico precursore noto si trova nei cinesi Nove capitoli sull'arte matematica (intorno al II secolo a.C.), che usavano un metodo tabulare di eliminazione gaussiana chiamato fangcheng per risolvere sistemi di equazioni lineari. Il termine moderno «matrice» fu coniato dal matematico inglese James Joseph Sylvester nel 1850, rifacendosi alla parola latina per «grembo», una struttura all'interno della quale potevano crescere i sottodeterminanti. L'articolo fondante fu il «A Memoir on the Theory of Matrices» del 1858 di Arthur Cayley, amico e collaboratore di Sylvester, che formalizzò la moltiplicazione di matrici, la matrice identità, la matrice nulla e l'inversa, trasformando le matrici da comodità notazionale ad algebra a sé stante.

Tra la fine del XIX e l'inizio del XX secolo l'eliminazione di Gauss-Jordan, la teoria degli autovalori e il teorema spettrale consolidarono le matrici come strumento centrale dell'algebra lineare. Le svolte del XX secolo furono la formulazione della meccanica delle matrici della teoria quantistica di Werner Heisenberg del 1925 (ed è per questo che i fisici cominciarono a prendere sul serio le matrici), l'articolo del 1947 di John von Neumann e Herman Goldstine sull'inversione numerica di matrici di ordine elevato che fondò la moderna algebra lineare numerica, e l'uscita nel 1979 di BLAS (Basic Linear Algebra Subprograms) e l'uscita nel 1992 di LAPACK: le librerie ottimizzate che ogni piattaforma di calcolo scientifico, da MATLAB a NumPy, alla fine richiama.

Le sei operazioni fondamentali, spiegate

Addizione e sottrazione. Entrambe le matrici devono avere dimensioni identiche. Il risultato ha la stessa forma e ogni voce è la somma voce per voce: cij = aij + bij. Non puoi sommare una 2×3 a una 3×2; l'operazione non è definita. L'addizione di matrici è commutativa e associativa, proprio come l'addizione ordinaria dei numeri.

Moltiplicazione di matrici. L'operazione che rende potenti le matrici, e quella che la maggior parte delle persone sbaglia al primo incontro. Perché C = A × B sia definita, le dimensioni interne devono coincidere: se A è m × n, B deve essere n × p, e il risultato C è m × p. La «n» centrale si annulla; la «m» e la «p» esterne sopravvivono. Ogni voce è calcolata come prodotto scalare di una riga di A per una colonna di B: cij = Σ aik · bkj sommato su k.

Un esempio svolto 2×2:

A = [1 2]   B = [5 6]   A·B = [1·5+2·7  1·6+2·8] = [19 22]
    [3 4]       [7 8]         [3·5+4·7  3·6+4·8]   [43 50]

La moltiplicazione di matrici non è commutativa: A·B ≠ B·A in generale, e a volte i due prodotti hanno persino forme diverse. (Se A è 2×3 e B è 3×2, A·B è 2×2 ma B·A è 3×3.) Questa non commutatività è all'origine di gran parte della ricchezza dell'algebra lineare ed è il motivo per cui l'articolo del 1858 di Cayley è considerato fondante.

Trasposta: scritta AT: scambia righe e colonne. La voce che era alla riga i, colonna j diventa la voce alla riga j, colonna i. Quindi se A è m × n, AT è n × m. Identità utile: (A·B)T = BT·AT, con l'ordine invertito.

Determinante: un singolo scalare che riassume una matrice quadrata. Per una 2×2 è ad − bc; per matrici più grandi si espande ricorsivamente tramite l'espansione per cofattori (impraticabile oltre la 4×4) o tramite la decomposizione LU (l'algoritmo che usano i computer, O(n³)). Geometricamente, il valore assoluto del determinante è il fattore di cui la mappa lineare scala le aree (in 2D), i volumi (in 3D), e così via. Un determinante di 2 significa che il quadrato unitario viene mappato in un parallelogramma di area 2; un determinante negativo significa che l'orientamento si capovolge (una riflessione speculare); un determinante pari a zero significa che la trasformazione fa collassare tutto su una retta o un punto, la matrice è singolare (non invertibile).

Inversa: scritta A⁻¹: la matrice unica tale che A · A⁻¹ = A⁻¹ · A = I, dove I è la matrice identità. L'inversa «annulla» ciò che fa A. Esiste solo per matrici quadrate con determinante diverso da zero. I computer calcolano le inverse tramite l'eliminazione di Gauss-Jordan o la decomposizione LU. Per la 2×2 la formula è la famosa (1/det) × [d, -b; -c, a].

Perché le matrici contano al di fuori della matematica dei libri di testo

Le matrici sono ovunque nell'informatica moderna perché ogni trasformazione lineare è una matrice:

Matrici speciali che vale la pena conoscere

Note sulla stabilità numerica

L'aritmetica delle matrici in virgola mobile nasconde trappole che non emergono negli esempi dei libri di testo. Il numero di condizionamento di una matrice misura quanto la sua inversa amplifica piccole perturbazioni nell'input, per una matrice mal condizionata, un errore dello 0,1% in una voce può causare un errore del 1000% nel risultato. Il classico esempio patologico è la matrice di Hilbert (voci 1/(i+j-1)), il cui numero di condizionamento esplode esponenzialmente con la dimensione; una matrice di Hilbert 6×6 ha già un numero di condizionamento attorno a 10⁷, il che significa che sette cifre decimali di precisione vengono perse nell'inversa.

In pratica, gli scienziati del calcolo non calcolano quasi mai A⁻¹ in modo esplicito. Per risolvere A·x = b, usano la decomposizione LU o QR; per usare l'inversa implicitamente, moltiplicano A⁻¹·b tramite decomposizione anziché costruire prima A⁻¹. Per sistemi mal condizionati o rettangolari, si preferisce la pseudoinversa basata su SVD (inversa di Moore-Penrose). Questo calcolatore calcola l'inversa esplicita per uso didattico, il che va bene a dimensioni piccole ma vale la pena tenerlo presente quando si sale di scala.

Ambito, in tutta onestà

Questo calcolatore copre addizione / sottrazione / moltiplicazione / trasposizione / determinante / inversa su matrici fino a 6×6, le operazioni che uno studente incontra in un primo corso di algebra lineare. Non calcola autovalori, autovettori o decomposizioni di matrici (LU, QR, SVD); non mostra i passaggi di riduzione per righe; non supporta voci simboliche o frazionarie; non gestisce i numeri complessi; e non accetta espressioni matriciali come A²·BT. Per quelle funzionalità, gli strumenti dedicati (Symbolab, Wolfram Alpha, MATLAB, NumPy, Octave, SageMath) sono il passo avanti giusto.

Altre domande

Perché la moltiplicazione di matrici non è commutativa?

Perché le matrici rappresentano trasformazioni, e l'ordine in cui applichi le trasformazioni conta. Ruotare e poi traslare non è la stessa cosa che traslare e poi ruotare, la traslazione trascina in modo diverso a partire da un orientamento di partenza diverso. La non commutatività della moltiplicazione di matrici è la codifica algebrica di questo fatto fisico, ed è ciò che rende interessanti (e ostiche) la grafica 3D e la meccanica quantistica.

Quando una matrice non è invertibile?

Quando il suo determinante è zero (in modo equivalente, quando le sue righe (o colonne) sono linearmente dipendenti) ossia, quando la trasformazione lineare che rappresenta fa collassare a zero qualche vettore non nullo. Geometricamente, la matrice mappa uno spazio di dimensione superiore su un sottospazio di dimensione inferiore e non puoi recuperare la dimensione persa. Tali matrici sono dette «singolari». Per le matrici mal condizionate ma tecnicamente invertibili, l'inversa esiste in teoria ma è enormemente imprecisa in virgola mobile, vedi la sezione sulla stabilità numerica qui sopra.

Perché l'indicizzazione in base 1 in matematica ma in base 0 nel codice?

La convenzione matematica risale a secoli fa, la prima riga è la riga 1 perché il conteggio inizia da 1. I linguaggi di programmazione hanno scelto l'indicizzazione in base 0 perché semplifica l'aritmetica dei puntatori sulla memoria degli array: l'elemento all'offset i si trova a base + i × element_size, senza alcun fattore di correzione -1. Entrambe le convenzioni sono profondamente radicate; una delle fonti di bug più affidabili è tradurre un articolo che dice «riga 3» in codice che richiede matrix[2].

Esiste un algoritmo di moltiplicazione di matrici più veloce di tutti?

L'algoritmo ingenuo a triplo ciclo gira in O(n³). Volker Strassen mostrò nel 1969 che 7 moltiplicazioni bastano per la 2×2 (invece di 8), dando un O(n^2,807) asintotico quando applicato ricorsivamente. Successivi affinamenti nel corso dei decenni hanno spinto il limite teorico fino a circa O(n^2,371), ma le costanti sono così grandi che per qualsiasi matrice in cui ti imbatteresti davvero, l'ingenuo O(n³) implementato dentro BLAS / cuBLAS vince. Il limite inferiore è matematicamente aperto: è almeno O(n²) ma nessuno conosce la risposta esatta.

Viene inviato qualcosa a un server?

No. L'aritmetica consiste in semplici operazioni in virgola mobile in JavaScript, calcolate nel tuo browser. Nulla delle tue matrici lascia la pagina; lo strumento funziona offline una volta caricato.

Strumenti correlati