Vai al contenuto principale

Sviluppo per cofattori (sviluppo di Laplace): una guida utile

Una guida passo passo allo sviluppo per cofattori (sviluppo di Laplace), con le definizioni fondamentali, esempi svolti, proprietà chiave e il collegamento all’inversione di matrici tramite la matrice aggiunta.
Aggiornato 4 mag 2026  · 12 min leggi

Calcolare il determinante di una matrice 3×3 - o più grande - non è così semplice come nel caso 2×2.

Non puoi limitarti a moltiplicare in croce due diagonali. Più la matrice cresce, più i calcoli diventano complicati. Senza un metodo strutturato, è facile perdere il filo. È esattamente il tipo di problema per cui è stato pensato lo sviluppo per cofattori - chiamato anche sviluppo di Laplace.

Lo sviluppo per cofattori è un metodo per calcolare il determinante di qualsiasi matrice quadrata, espandendo lungo una riga o una colonna scelta. Scompone il problema in modo ricorsivo in determinanti più piccoli che sai già risolvere.

In questo articolo vedremo la definizione dello sviluppo per cofattori, la formula che lo governa, esempi passo passo per matrici 2×2 e 3×3, le proprietà chiave e le applicazioni pratiche.

Che cos’è lo sviluppo per cofattori?

Lo sviluppo per cofattori è un metodo ricorsivo per calcolare il determinante di qualsiasi matrice quadrata.

In questo contesto, "ricorsivo" significa che, invece di calcolare il determinante di una matrice grande tutto in una volta, lo scomponi in determinanti più piccoli. Questi a loro volta si scompongono in altri ancora più piccoli. Continui finché non restano matrici 2×2, che sono banali da risolvere.

Funziona per ogni matrice quadrata - 2×2, 3×3, 4×4 e oltre. Detto questo, è più utile per le 3×3 e superiori, dove non puoi semplicemente moltiplicare due diagonali in croce.

L’idea di base è semplice. Scegli una singola riga o colonna e sviluppi lungo quella. Ogni elemento in quella riga o colonna contribuisce con un sotto-problema più piccolo. Risolvi ogni sotto-problema, combini i risultati e ottieni il tuo determinante. Tutto qui.

Minore e cofattore: le definizioni chiave

Prima di sviluppare un determinante, devi capire due mattoni fondamentali: minori e cofattori.

Il minore

Il minore M_ij è il determinante della matrice più piccola che ottieni eliminando la riga i e la colonna j dalla matrice originale.

Supponiamo di avere una matrice 3×3 A e di voler calcolare il minore M_12. Elimina la riga 1 e la colonna 2. Rimane una 2×2. Calcolane il determinante: quello è il tuo minore.

Il cofattore

Il cofattore C_ij fa un passo oltre il minore. Applica un fattore di segno basato sulla posizione (i, j):

The cofactor

Il cofattore

Il termine (-1)^(i+j) mantiene o ribalta il segno del minore, a seconda di dove ti trovi nella matrice.

Quando i + j è pari, (-1)^(i+j) = +1, quindi il cofattore coincide con il minore. Quando i + j è dispari, (-1)^(i+j) = -1, quindi il cofattore inverte il segno del minore.

Lo schema a scacchiera

Questa alternanza di segni crea uno schema a scacchiera sull’intera matrice:

The checkerboard pattern

Lo schema a scacchiera

L’angolo in alto a sinistra parte sempre con +. Da lì, i segni alternano in ogni direzione. Questo schema ti dice a colpo d’occhio se un cofattore aggiungerà o sottrarrà al tuo determinante.

La formula dello sviluppo per cofattori

Ecco la formula che stavi aspettando.

Per lo sviluppo lungo la riga i:

Expansion along row i

Sviluppo lungo la riga i

Per lo sviluppo lungo la colonna j:

Expansion along column j

Sviluppo lungo la colonna j

In parole semplici, significa che moltiplichi ogni elemento della riga o colonna scelta per il suo cofattore, poi sommi il tutto.

I termini a_ij sono i singoli elementi della matrice. I termini C_ij sono i cofattori calcolati per ogni posizione. Moltiplicali, somma i risultati e ottieni il determinante.

Non importa quale riga o colonna scegli. Lo sviluppo lungo la riga 1 dà lo stesso risultato dello sviluppo lungo la riga 3 o la colonna 2. Il determinante è una proprietà fissa della matrice: il percorso di sviluppo è solo una tua scelta.

Quella scelta influisce però sulla quantità di lavoro. Una riga o colonna con più zeri significa meno cofattori da calcolare. Se una riga ha due zeri e tre elementi non nulli, devi calcolare i cofattori solo per quei tre elementi: gli zeri non contribuiscono alla somma. Prima di scegliere riga o colonna, dai sempre un’occhiata alla matrice alla ricerca di zeri.

Passo dopo passo: come funziona lo sviluppo per cofattori

Lo sviluppo per cofattori segue sempre gli stessi 3 passaggi.

Passo 1: Scegli una riga o una colonna. Esamina la matrice e scegli la riga o colonna con il maggior numero di zeri. Meno elementi non nulli significa meno cofattori da calcolare.

Passo 2: Per ogni elemento non nullo in quella riga o colonna:

  • Calcola il minore M_ij: elimina la riga i e la colonna j, poi prendi il determinante di ciò che resta.

  • Applica il fattore di segno (-1)^(i+j) usando lo schema a scacchiera per ottenere il cofattore C_ij.

  • Moltiplica l’elemento a_ij per il suo cofattore C_ij.

Passo 3: Somma tutti i prodotti.

The determinant

Il determinante

Quello è il tuo determinante.

Se una delle sottomatrici è più grande di 2×2, ripeti lo stesso processo finché non arrivi a determinanti 2×2 - che puoi risolvere direttamente con ad - bc.

Esempio 1: sviluppo per cofattori di una matrice 2×2

Colleghiamo il tutto con il caso più semplice possibile.

Prendi questa matrice 2×2:

Sample 2x2 matrix

Esempio di matrice 2x2

Sviluppa lungo la riga 1. I due elementi sono a_11 = 3 e a_12 = 1.

  • Per a_11 = 3: elimina la riga 1 e la colonna 1. Resta solo (4). Il fattore di segno è (-1)^(1+1) = +1. Quindi C_11 = +4.

  • Per a_12 = 1: elimina la riga 1 e la colonna 2. Resta solo (2). Il fattore di segno è (-1)^(1+2) = -1. Quindi C_12 = -2.

Ora somma i prodotti:

Determinant calculation

Calcolo del determinante

Noterai che coincide con la formula standard 2×2 ad - bc = (3)(4) - (1)(2) = 10. Lo sviluppo per cofattori e la scorciatoia della moltiplicazione incrociata sono due strade per arrivare alla stessa risposta.

Esempio 2: sviluppo per cofattori di una matrice 3×3

Ora affrontiamo un esempio completo 3×3.

Considera questa matrice:

Sample 3x3 matrix

Esempio di matrice 3x3

La riga 1 ha uno zero in posizione (1,2), quindi sviluppiamo lungo la riga 1. Quello zero ci permette di saltare completamente un cofattore.

Passo 1: imposta lo sviluppo

Expansion setup (1)

Impostazione dello sviluppo (1)

Dato che a_12 = 0, il termine centrale scompare:

Expansion setup (2)

Impostazione dello sviluppo (2)

Dobbiamo calcolare solo due cofattori. È il vantaggio di aver scelto la riga giusta.

Passo 2: calcola C_11

Ora elimina la riga 1 e la colonna 1. Ecco cosa rimane:

First computation

Prima computazione

Il segno in posizione (1,1) è (-1)^(1+1) = +1, quindi C_11 = +2.

Passo 3: calcola C_13

Il passo successivo è eliminare la riga 1 e la colonna 3. Resta questo:

Second computation

Seconda computazione

Il segno in posizione (1,3) è (-1)^(1+3) = +1, quindi C_13 = +11.

Passo 4: somma i prodotti

Determinant calculation

Calcolo del determinante

Questo è il tuo determinante. Scegliendo fin da subito la riga con uno zero, hai trasformato un problema con tre cofattori in uno con due. Lavora sempre in modo intelligente.

Scegliere la riga o la colonna migliore

La riga o la colonna che scegli non cambia il risultato, ma cambia quanto lavoro devi fare.

Cerca sempre prima gli zeri. Ogni zero nella riga o colonna scelta è un cofattore che non devi calcolare. Nell’esempio 3×3 sopra, uno zero ha ridotto il lavoro da tre cofattori a due. In matrici più grandi, una riga con più zeri può evitarti diversi sotto-determinanti.

Ecco alcuni punti da ricordare

  • Uno zero in una riga o colonna significa un cofattore in meno da calcolare
  • Due zeri significano due cofattori in meno
  • Tutti zeri tranne uno significa calcolare un solo cofattore

Questo conta ancora di più al crescere della matrice. Uno sviluppo per cofattori ingenuo su una matrice n×n richiede tempo fattoriale: una 4×4 richiede di calcolare i determinanti di quattro matrici 3×3, ognuna delle quali si sviluppa in tre matrici 2×2. Sono 24 calcoli singoli prima ancora di cominciare a sommare. Per una 5×5, sono 120.

Per matrici grandi, lo sviluppo per cofattori non è lo strumento giusto. La riduzione di riga e la decomposizione LU gestiscono le matrici grandi molto più rapidamente. Lo sviluppo per cofattori è meglio riservarlo ai casi 2×2 e 3×3, o al lavoro teorico in cui serve esprimere simbolicamente il determinante.

Per qualsiasi cosa tu stia risolvendo a mano, dedica qualche secondo a cercare la riga o colonna con più zeri prima di iniziare. È il modo più semplice per ridurre gli errori di calcolo.

Sviluppo per cofattori e struttura ricorsiva

Lo sviluppo per cofattori ha una struttura ricorsiva intrinseca.

Per trovare il determinante di una matrice n×n, sviluppi lungo una riga o una colonna e calcoli i determinanti di matrici (n-1)×(n-1) . Ciascuna di queste si sviluppa in matrici (n-2)×(n-2). Continui a ridurre finché non arrivi a matrici 2×2, che risolvi direttamente.

Questa proprietà ricorsiva è ciò che definisce il determinante algebricamente. Ti dice cos’è un determinante a ogni dimensione, non solo come calcolarlo.

La ricorsione ha però un costo.

Ogni livello di sviluppo moltiplica il numero di sotto-problemi e, per matrici grandi, il calcolo cresce rapidamente. Ecco perché le librerie numeriche non usano lo sviluppo per cofattori sotto il cofano. La riduzione di riga e i metodi di fattorizzazione scalano molto meglio.

Per matrici piccole e lavori teorici, la struttura ricorsiva è proprio ciò che vuoi. Per tutto il resto, è meglio cercare un altro approccio.

Connessione con la matrice aggiunta

I cofattori sono il mattone di base dell’inversione di matrici. Non servono solo ad aiutarti a calcolare i determinanti.

Se calcoli il cofattore C_ij per ogni elemento di una matrice A, ottieni una matrice dei cofattori C. Prendine la trasposta - scambia righe e colonne - e ottieni la matrice aggiunta:

The adjugate matrix

La matrice aggiunta

Da qui, l’inversa della matrice segue direttamente:

Matrix inverse

L’inversa della matrice

In parole povere, significa che devi calcolare tutti i cofattori, ordinarli in una matrice, trasporla, poi dividere per il determinante. Questa è l’inversa.

Ci sono due cose da ricordare qui:

  1. Funziona solo quando det(A) ≠ 0: un determinante nullo implica che la matrice non ha inversa
  2. Questa formula è esatta, il che la rende utile per lavori teorici e algebra simbolica. Per il calcolo numerico con matrici grandi, altri metodi sono più rapidi.

Se ti stai chiedendo il legame con lo sviluppo per cofattori, ricorda solo che ogni voce della matrice aggiunta deriva da un cofattore che calcoleresti durante lo sviluppo. Lo stesso processo che ti dà il determinante fornisce anche tutto ciò che serve per invertire la matrice.

Proprietà dello sviluppo per cofattori

Lo sviluppo per cofattori ha alcune proprietà che vale la pena conoscere. Ti eviteranno di mettere in dubbio il tuo lavoro e ti aiuteranno a individuare scorciatoie.

Ecco quattro proprietà da ricordare:

  • Lo sviluppo lungo qualsiasi riga o colonna dà lo stesso risultato. Puoi sviluppare lungo la riga 2 o la colonna 3: il determinante non cambia. Scegli quella con più zeri
  • Il determinante è lineare in ciascuna riga. Se moltiplichi una riga per una costante k, anche il determinante si moltiplica per k. Ciò discende direttamente dal modo in cui i cofattori si moltiplicano per ciascun elemento
  • Scambiare due righe inverte il segno del determinante. Scambia le righe una volta e il determinante si nega. Scambiale due volte e torna com’era. Ecco perché devi tenere traccia con attenzione delle operazioni di riga
  • Se due righe sono linearmente dipendenti, il determinante è nullo. Dipendenza lineare significa che una riga è un multiplo scalare di un’altra - o più in generale, che le righe non generano l’intero spazio. La matrice è singolare e non esiste inversa

Queste proprietà ti permettono di semplificare le matrici prima di sviluppare: ridurre le righe, individuare dipendenze ed evitare calcoli inutili.

Errori comuni

Lo sviluppo per cofattori ha alcuni punti critici che si ripresentano spesso. Ecco a cosa fare attenzione.

  • Dimenticare il segno (-1)^(i+j). È l’errore più comune. Calcoli correttamente il minore, moltiplichi per l’elemento e sbagli il risultato perché hai saltato il fattore di segno. Controlla sempre lo schema a scacchiera prima di scrivere un cofattore
  • Eliminare la riga o colonna sbagliata per il minore. Quando calcoli M_ij, elimini la riga i e la colonna j - la riga e la colonna dell’elemento su cui stai sviluppando. Uno scivolone comune è eliminare quella sbagliata, soprattutto in una 3×3 dove la matrice rimanente può sembrare simile tra cancellazioni diverse
  • Fermarsi troppo presto nella ricorsione. Quando la tua sottomatrice è ancora 3×3 o più grande, devi sviluppare ancora. Alcuni trattano un minore 3×3 come se fosse 2×2 e applicano direttamente ad - bc
  • Errori aritmetici nei passaggi ricorsivi. Più vai in profondità nella ricorsione, più moltiplicazioni e inversioni di segno devi tenere a mente. Un singolo errore aritmetico in un sotto-determinante iniziale si propaga in tutti i passaggi successivi. Lavora con attenzione su ogni determinante 2×2 prima di combinare i risultati

Se il risultato finale ti sembra sbagliato, lo schema dei segni e l’eliminazione per il minore sono le prime due cose da ricontrollare.

Quando usare lo sviluppo per cofattori

Lo sviluppo per cofattori è lo strumento giusto in alcune situazioni specifiche.

Per matrici piccole, è l’approccio più diretto. Una 2×2 è banale, e una 3×3 è gestibile a mano in pochi minuti. Oltre la 4×4, il numero di passaggi ricorsivi cresce così velocemente che altri metodi risultano più rapidi e meno inclini agli errori.

È anche la scelta ideale per lavori teorici e simbolici. Se stai affrontando una dimostrazione, derivando una formula o calcolando un determinante con elementi variabili e non numerici, lo sviluppo per cofattori ti dà un’espressione simbolica esatta con cui lavorare. La riduzione di riga è ottima con i numeri, ma diventa complicata con i simboli.

Ecco un rapido riepilogo di quando usarlo:

  • Stai lavorando con una matrice 2×2 o 3×3
  • Ti serve un risultato simbolico esatto, non un’approssimazione numerica
  • Stai affrontando una dimostrazione che richiede di espandere esplicitamente il determinante
  • Vuoi costruire intuizione su cosa rappresenti effettivamente il determinante

Per matrici numeriche grandi, lascialo perdere. La riduzione di riga e la decomposizione LU gestiscono questi casi molto più velocemente e con un rischio di errori aritmetici molto minore. La maggior parte delle librerie numeriche usa questi metodi proprio per questo motivo.

Lo sviluppo per cofattori va visto come uno strumento per calcoli a mano e teoria, non come un algoritmo generico.

Conclusione

Lo sviluppo per cofattori ti offre un modo sistematico e ricorsivo per calcolare il determinante di qualsiasi matrice quadrata.

I due mattoni fondamentali - i minori e lo schema dei segni (-1)^(i+j) - guidano l’intero processo. Se li imposti correttamente, il resto è semplice. Scegli una riga o colonna con zeri per ridurre il lavoro, riduci a determinanti 2×2 e somma i risultati.

Oltre ai determinanti, il metodo si collega alla matrice aggiunta e alla formula dell’inversa. I cofattori che calcoli durante lo sviluppo sono gli stessi che compongono adj(A) - rendendo lo sviluppo per cofattori una base per comprendere come funziona algebricamente l’inversione di matrici.

Per matrici piccole e lavoro teorico, è il metodo più trasparente disponibile. Per matrici numeriche grandi, meglio la riduzione di riga o una libreria numerica.

Se vuoi vedere lo sviluppo per cofattori in azione, iscriviti al nostro corso Algebra lineare per la Data Science in R.


Dario Radečić's photo
Author
Dario Radečić
LinkedIn
Senior Data Scientist con base in Croazia. Top Tech Writer con oltre 700 articoli pubblicati, per più di 10 milioni di visualizzazioni. Autore del libro Machine Learning Automation with TPOT.

FAQ sullo sviluppo per cofattori

Che cos’è lo sviluppo per cofattori?

Lo sviluppo per cofattori - detto anche sviluppo di Laplace - è un metodo per calcolare il determinante di qualsiasi matrice quadrata. Funziona sviluppando lungo una riga o una colonna scelta, moltiplicando ogni elemento per il suo cofattore e sommando i risultati. Il processo riduce ricorsivamente matrici più grandi in altre più piccole finché non restano determinanti 2×2 che puoi risolvere direttamente.

Quando dovrei usare lo sviluppo per cofattori?

Lo sviluppo per cofattori funziona meglio per matrici piccole - 2×2 e 3×3 - e per problemi teorici o simbolici in cui serve un’espressione esatta. Per matrici numeriche grandi, la riduzione di riga e la decomposizione LU sono più veloci e meno inclini agli errori. La maggior parte delle librerie numeriche usa questi metodi sotto il cofano.

Qual è la differenza tra minore e cofattore?

Un minore M_ij è il determinante della matrice che ottieni dopo aver eliminato la riga i e la colonna j. Un cofattore C_ij prende quel minore e applica un fattore di segno (-1)^(i+j), che mantiene o inverte il segno a seconda della posizione. Il cofattore è ciò che usi effettivamente nella formula di sviluppo.

Perché la scelta della riga o colonna non influisce sul risultato?

Lo sviluppo lungo qualsiasi riga o colonna produce sempre lo stesso determinante: è una proprietà fondamentale del metodo. La scelta influisce solo sulla quantità di aritmetica, non sul risultato. Scegliere una riga o colonna con più zeri riduce il numero di cofattori da calcolare.

In che modo lo sviluppo per cofattori è collegato all’inversione di matrici?

I cofattori calcolati durante lo sviluppo sono gli stessi valori usati per costruire la matrice aggiunta adj(A), che è la trasposta della matrice dei cofattori. L’inversa di una matrice è quindi A^{-1} = (1 / det(A)) * adj(A). Ciò significa che lo sviluppo per cofattori è alla base della formula algebrica dell’inversione di matrici.

Argomenti

Impara con DataCamp

Corso

Algebra lineare per la Data Science in R

4 h
21K
Questo corso è un'introduzione all'algebra lineare, uno dei temi matematici più importanti alla base della scienza dei dati.
Vedi dettagliRight Arrow
Inizia il corso
Mostra altroRight Arrow
Correlato

blog

Che cos'è Snowflake? Guida per principianti alla piattaforma dati cloud

Esplora le basi di Snowflake, la piattaforma dati cloud. Scopri la sua architettura, le sue funzionalità e come integrarla nelle tue pipeline di dati.
Tim Lu's photo

Tim Lu

12 min

blog

Tokenizzazione nel NLP: come funziona, sfide e casi d'uso

Guida al preprocessing NLP nel machine learning. Copriamo spaCy, i transformer di Hugging Face e come funziona la tokenizzazione in casi d'uso reali.
Abid Ali Awan's photo

Abid Ali Awan

10 min

blog

I 15 migliori server MCP remoti che ogni AI builder dovrebbe conoscere nel 2026

Scopri i 15 migliori server MCP remoti che stanno trasformando lo sviluppo AI nel 2026. Scopri come migliorano automazione, ragionamento, sicurezza e velocità dei workflow.
Abid Ali Awan's photo

Abid Ali Awan

15 min

Mostra altroMostra altro