Giter VIP home page Giter VIP logo

laplace-equal-or-less-4's Introduction

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.

laplace-equal-or-less-4's People

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.