determinante metodo gaus urgente!!!
Necesito sacar el determinante de una matriz de cualquier dimension. EStoy intentando sacarlo por el metodo de gaus(triangulación inferior) pero para dimension 3x3 no da bien. Alguien me podria decir que estoy haciendo mal o que falla???
el código es el siguiente:
double ClaseMatriz::determinante(){
int renglones=1, i,j,it,jt,k,ip,jp;
double det=1,num;
ClaseMatriz matriztem(*this);
for(it=0;it<filas;it++)
{
for(jt=0;jt<columnas;jt++)
matriztem.matriz[it][jt]=0;
}
cout << "matriztem: punto 1" << endl;
matriztem.Visualizar();
for(renglones=1; renglones<filas; renglones++)
{
for(i=renglones;i<filas;i++)
{
num=-(matriz[i][renglones-1]/matriz[renglones-1][renglones-1]);
for(j=0;j<columnas;j++){
matriztem.matriz[i][j]=((num*matriz[renglones-1][j])+matriz[i][j]);
}
}
}
cout << "matriztem: punto 2" << endl;
matriztem.Visualizar();
renglones=1;
for(ip=renglones; ip<filas;ip++)
{
for(jp=0;jp<columnas;jp++)
matriz[ip][jp]=matriztem.matriz[ip][jp];
}
cout << "matriz : punto 3" << endl;
(*this).Visualizar();
for(k=0;k<filas;k++)
{
det=matriz[k][k]*det;
}
return(det);
}
el código es el siguiente:
double ClaseMatriz::determinante(){
int renglones=1, i,j,it,jt,k,ip,jp;
double det=1,num;
ClaseMatriz matriztem(*this);
for(it=0;it<filas;it++)
{
for(jt=0;jt<columnas;jt++)
matriztem.matriz[it][jt]=0;
}
cout << "matriztem: punto 1" << endl;
matriztem.Visualizar();
for(renglones=1; renglones<filas; renglones++)
{
for(i=renglones;i<filas;i++)
{
num=-(matriz[i][renglones-1]/matriz[renglones-1][renglones-1]);
for(j=0;j<columnas;j++){
matriztem.matriz[i][j]=((num*matriz[renglones-1][j])+matriz[i][j]);
}
}
}
cout << "matriztem: punto 2" << endl;
matriztem.Visualizar();
renglones=1;
for(ip=renglones; ip<filas;ip++)
{
for(jp=0;jp<columnas;jp++)
matriz[ip][jp]=matriztem.matriz[ip][jp];
}
cout << "matriz : punto 3" << endl;
(*this).Visualizar();
for(k=0;k<filas;k++)
{
det=matriz[k][k]*det;
}
return(det);
}
