//******************************************************************* //* Libreria: Sistemas de ecuaciones lineales con objetos //* Version: 1.0 //* Programa: sist_ec_lineales.hpp //* fecha: 30 de Septiembre de 2005 //******************************************************************* #include #include "lista.hpp" class gauss_jordan: public lista { public: gauss_jordan(); void GJ_invierte(void); }; //******************************************************************* gauss_jordan::gauss_jordan() { // nactual=NULL; // ntemp=NULL; // ninicial=NULL; } //******************************************************************* void gauss_jordan::GJ_invierte(void) { int i=0; //contador del renglon int m=0; //renglones o filas int j=0; //contador de las columnas int n=0; //columnas int g=0; //usada para calculo detallado double tmp=0.0; double x=0.0; cout << "cuantos renglones: "; cin >> m; cout << endl << "cuantas columnas: "; cin >> n; for(j=1; j<=n-1; j++) //Este no considera el vector solucion: n-1 for(i=1; i<=m; i++) for(g=1; g<=n; g++) if(i==j) //Esto determina si es el renglon pivote { if(busca(i, g)) //Esto determina si es el elemento pivote aij if(i==g) { x=nactual->x; nactual->x = 1; } else nactual->x = nactual->x/x; } else { if(busca(i, g)) { tmp=nactual->x*(-1); if(busca(j,g)) tmp=nactual->x*tmp; if(busca(i,g)) nactual->x=nactual->x+tmp; } } }