calcular el determinante de matriz de cualquier dimensión en c++

en este programa se calcula el determinante de una matriz de cualquier dimensión haciendo uso de la triangularización de una matriz.













#include<iostream>
using namespace std; /*
para calcular el determinante en es te programa se uso la la triangulirizacion de
una matriz
DATOS:
M-->matriz cuadrada
d-->dimension de la matriz cuadrada M
*/

double determinante(double M[50][50],int d){
    
    
double aux;
    
double determinante=1;
    
for(int k=0;k<d-1;k++){//recorrer la diagonal

        determinante*=M[k][k];
        
if(M[k][k]==0)
            
return 0;
        
else{
            
            
for(int i=k+1;i<d;i++){//recorrer fila

                aux=-M[i][k];
                
for(int j=k;j<d;j++){
                    
M[i][j]=M[i][j]+aux*M[k][j]/M[k][k];
                
}
              
            
}
        
}
      
    
}
    
determinante*=M[d-1][d-1];
    
return determinante;
}

void ingresar_datos(double M[50][50],int d){
    
cout<<"ingrese datos de la matriz:"<<endl;
    
for(int i=0;i<d;i++){
        
cout<<"\t"<<"fila "<<i+1<<" :"<<endl;
        
for(int j=0;j<d;j++){
            
cin>>M[i][j];
        
}
    
}
}

int main (int argc, char *argv[]) {
    
double M[50][50];
    
int d;
    
cout<<"ingrese dimension de la matriz:";
    
cin>>d;
    
ingresar_datos(M,d);
    
cout<<"el determinante es: "<<determinante(M,d)<<endl;
    
return 0;

}

Compartir

3 Responses to "calcular el determinante de matriz de cualquier dimensión en c++"

  1. Gracias si funciona recomendado

    ResponderBorrar
  2. Hay un problema si llenas la matriz en ese orden da un resultado erroneo 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 1.7, 1.8, 1.9, 2.1, 2.2, 2.3, 2.4, 2.5, 2.6, 2.7.

    ResponderBorrar