Skip to content

Calcolo del determinante di una matrice di ordine <= 4 con il teorema di Laplace

License

Notifications You must be signed in to change notification settings

appersiano/laplace-equal-or-less-4

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 

Repository files navigation

Calcolo del determinante di una matrice di ordine <= 4 con il teorema di Laplace

##Input: Il programma chiede all'utente l'ordine della matrice che intende inserire; poi tramite un'apposita interfaccia lo guida nell'inserimento delle cifre nella matrice riga per riga.

##Output: Il programma restituisce in output il determinante della matrice. Nel caso che la matrice inserita sia invece di ordine 4 viene visualizzata l'estrazione delle sottomatrici e i rispettivi complementi algebrici, infine viene mostrato il determinante.

##Scelte adottate: Innanzitutto occorre dire che la matrice (che come sappiamo è un vettore pluridimensionale) viene organizzata in memoria .data su un vettore monodimensionale.

Per il “popolamento” della matrice ho utilizzato due cicli for, uno per scorrere le righe e uno annidato per scorrere le colonne in modo da riuscire ad organizzare la matrice in un vettore lineare.

Mentre per la procedura ricorsiva del calcolo matrice ho utilizzato 3 casi base:

  • Ordine matrice uguale a 1: il determinante è dato dall'elemento stesso (m[0][0])
  • Ordine matrice uguale a 2: il determinante è dato da: m[0][0]*m[1][1]-m[0][1]*m[1][0]
  • Ordine matrice uguale a 3: in questo caso per calcolare il determinante della matrice utilizzo la regola di Sarrus il cui determinante è dato da:

m[0][0]*m[1][1]*m[2][2]+m[0][1]*m[1][2]*m[2][0]+

m[0][2]*m[1][0]*m[2][1]-m[2][0]*m[1][1]*m[0][2]-

m[2][1]*m[1][2]*m[0][0]-m[2][2]*m[1][0]*m[0][1]

Nel caso che invece la matrice inserita fosse di ordine 4 il programma utilizza il teorema di Laplace il quale dice che: il determinante di una matrice è uguale alla somma dei prodotti degli elementi di una qualunque colonna per i rispettivi complementi algebrici. Vengono quindi calcolati e sommati i rispettivi complementi algebrici di ogni elemento in posizione m[?][0] della matrice (che per chiarezza ho chiamato caporiga nel programma assembly). Il programma infatti mostra l'estrazione della sottomatrice rispetto l'elemento citato e il rispettivo complemento algebrico, infine restituisce il determinante della matrice iniziale inserita.

Possibili migliorie: Conoscendo i casi noti in cui il determinante di una matrice è uguale a 0, ad esempio quando si ha un' intera riga/colonna di zeri oppure due righe/colonne identiche ecc ecc, una possibile ed efficace miglioria sarebbe quella di inserire un controllo preventivo sui dati inseriti dall'utente e fornire quindi in modo precoce il determinante della matrice evitando all' elaboratore tutti i macchinosi calcoli; così si può ottenere un incremento notevole delle prestazioni.

About

Calcolo del determinante di una matrice di ordine <= 4 con il teorema di Laplace

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published