Computing">
Gauss Jordan C++
Gauss Jordan C++
Gauss Jordan C++
Código: 2220271
#include <conio.h>
#include <math.h>
#include <iostream>
double matriz[50][50];
double identidad[50][50];
double b[50];
double solucion[50];
int N;
void leerEcuaciones(void);
void agregarIdentidad(void);
void extraerInversa(void);
void obtenerValores(void);
void escribirSolucion(void);
void escalonar_matriz(void);
leerEcuaciones();
agregarIdentidad();
extraerInversa();
obtenerValores();
escribirSolucion();
return 0;
void escribirSolucion(){
if(i == N-1){
cout<<solucion[i]<<")";
}else{
cout<<solucion[i]<<", ";
void obtenerValores()
}
}
void leerEcuaciones()
do{
cout.flush();
cin>>N;
if(N>50 || N<2) {
system("pause");
cout.flush();
}while(N>50 || N<2);
for(fi=0;fi<N;fi++)
for(co=0;co<N;co++)
cout<<"Ingrese el valor de matriz [" <<(fi+1)<< "]" << "[" <<(co+1)<< "]:";
cout.flush();
cin>>matriz[fi][co];
for(fi=0;fi<N;fi++)
{
cout.flush();
cin>>b[fi];
system("pause");
void agregarIdentidad()
int i,j;
for(i=0;i<50;i++)
for(j=0;j<50;j++)
if(i==j) identidad[i][j]=1;
else identidad[i][j]=0;
void extraerInversa()
escalonar_matriz();
for(cont=0;cont<N;cont++)
{
for(cont2=0;cont2<N;cont2++)
if(matriz[cont][cont2]!=0)
if(matriz[cont][cont2]!=1)
multip_fila(cont,pow(matriz[cont][cont2],-1));
ceros_arriba(cont,cont2);
ceros_abajo(cont,cont2);
break;
for(cont=0;cont<N;cont++)
for(cont2=0;cont2<N;cont2++)
if(cont==cont2)
if(matriz[cont][cont2]!=1) flag=1;
else
if(matriz[cont][cont2]!=0) flag=1;
}
}
if(flag==1)
return;
else
}
system("pause");
void escalonar_matriz(void)
for(cont=0;cont<N;cont++)
col=0,ceros=0;
if(matriz[cont][col]==0)
do{
ceros++;
col++;
}while(matriz[cont][col]==0);
vec[cont]=ceros;
do
flag=0;
for(cont=0;cont<N-1;cont++)
{
if(vec[cont]>vec[cont+1])
aux=vec[cont];
vec[cont]=vec[cont+1];
vec[cont+1]=aux;
permutar_filas(cont,cont+1);
flag=1;
}while(flag==1);
float aux;
int cont;
for(cont=0;cont<N;cont++)
aux=matriz[fila1][cont];
matriz[fila1][cont]=matriz[fila2][cont];
matriz[fila2][cont]=aux;
aux=identidad[fila1][cont];
identidad[fila1][cont]=identidad[fila2][cont];
identidad[fila2][cont]=aux;
int cont;
for(cont=0;cont<N;cont++)
matriz[fila][cont]=(matriz[fila][cont])*factor;
identidad[fila][cont]=(identidad[fila][cont])*factor;
int cont;
for(cont=0;cont<N;cont++)
matriz[fila1][cont]=(matriz[fila1][cont])+((matriz[fila2][cont])*factor);
identidad[fila1][cont]=(identidad[fila1][cont])+((identidad[fila2][cont])*factor);
}
}
int cont;
for(cont=0;cont<fila_pivote;cont++)
sumar_fila_multip(cont,fila_pivote,((matriz[cont][columna_pivote])*(-1)));
int cont;
for(cont=columna_pivote+1;cont<N;cont++)
sumar_fila_multip(cont,fila_pivote,((matriz[cont][columna_pivote])*(-1)));
}
AL COPILAR