• In diretta da GamesVillage.it
    • News
    • -
    • In Evidenza
    • -
    • Recensioni
    • -
    • RetroGaming
    • -
    • Anteprime
    • -
    • Video
    • -
    • Cinema

Visualizzazione risultati da 1 a 2 di 2

Discussione: Algoritmi matrici...

Cambio titolo
  1. #1
    eMule MorpXT Power User L'avatar di simo87
    Registrato il
    01-04
    Località
    Verona
    Messaggi
    689

    Algoritmi matrici...

    Ragazzi sono in difficoltà non riesco a creare un algoritmo che calcoli il determinante con il metodo di laplace me ne potete postare uno?? Grazie in anticipo...

  2. #2
    Utente L'avatar di pentothal
    Registrato il
    10-02
    Località
    Firenze
    Messaggi
    4.692
    Il calcolo del determinante col metodo di lagrange è un po' complicato in quanto se si supera la dimensione 2*2 bisogna ricorrere ad altri metodi di calcolo per potervisi ricondurre (es Sarrus, Cramer...). Questo esempio si basa sul calcolo del determinante di matrici 3*3 (come ho detto il solo farlo 4*4 sarebbe stato MOLTO più complicato e non credo a scuola vi chiedano cose così complesse)

    Codice:
    /* Librerie */
    #include <iostream.h>
    #include <stdio.h>
    #include <conio.h>
    #include <math.h>
    
    /* Costanti */
    const unsigned int dim = 3;
    
    /* Variabili globali */
    int mat[dim][dim] = {1,0,1,2,1,3,0,4,1};
    int m2x2[2][2];
    int i_app, j_app;
    
    /* Prototipi */
    int det(int,int);
    
    int main(void){
       int riga = 0;
       float res = 0;
       for(int j=0; j<dim; j++)
          res = res+(pow((-1),(riga+1)+(j+1))*mat[riga][j]*det(riga,j));
       cout<<"det = "<<res;
       getch();
       return 0;
    }
    
    int det(int i_ref, int j_ref){
       i_app = j_app = 0;
       for(int i=0; i<dim; i++){
          if(i!=i_ref){
             for(int j=0; j<dim; j++){
                if(j!=j_ref){
                   m2x2[i_app][j_app] = mat[i][j];
                   j_app++;
                }
             }
             i_app++;
          }
       }
       return ((m2x2[0][0]*m2x2[1][1])-(m2x2[1][0]*m2x2[0][1]));
    }

Regole di Scrittura

  • Tu non puoi inviare nuove discussioni
  • Tu non puoi inviare risposte
  • Tu non puoi inviare allegati
  • Tu non puoi modificare i tuoi messaggi
  •