Beruflich Dokumente
Kultur Dokumente
ejemplo:
Supongamos que es necesario encontrar los números "x", "y", "z", que satisfacen
simultáneamente estas ecuaciones:
Primero:
Después,
Por último
CÓDIGO EN C++:
#include<iostream>
#include<cmath>
using namespace std;
/*
M-->matriz aumentada
n-->numero de ecuaciones
*/
void gauss_jordan(double M[20][20],int n){
double may;//variable para almacenar el mayor de la columna k
int ind;//indice del mayor-->indice de may
double aux;
double pivote;
//cambiar filas
if(k!=ind){
for(int i=0;i<n+1;i++){
aux=M[k][i];
M[k][i]=M[ind][i];
M[ind][i]=aux;
}
}
if(M[k][k]==0){
cout<<"no tiene solucion";
break;
}
else{
M[i][j]=M[i][j]+pivote*(M[k][j]/M[k][k]);
}
}
else{
pivote=M[k][k];
for(int j=k;j<n+1;j++){
M[i][j]=M[i][j]/pivote;
}
}
}
}
}
}
void ingresar_coeficientes(double M[20][20],int n){
cout<<"ingrese ecuaciones:"<<endl;
for(int i=0;i<n;i++){
cout<<"\t"<<"fila "<<i+1<<" : "<<endl;
for(int j=0;j<n+1;j++){
cin>>M[i][j];
}
}
}
int main (int argc, char *argv[]) {
int n;
double M[20][20];
cout<<"ingrese numero de ecuaciones:";
cin>>n;
ingresar_coeficientes(M,n);
cout<<"matriz aumentada:"<<endl;
for(int i=0;i<n;i++){
for(int j=0;j<n+1;j++){
cout<<M[i][j]<<"\t";
}cout<<endl;
}
cout<<"reduccion:"<<endl;
gauss_jordan(M,n);
for(int i=0;i<n;i++){
for(int j=0;j<n+1;j++){
cout<<M[i][j]<<"\t";
}cout<<endl;
}
cout<<"solucion:"<<endl;
for(int i=0;i<n;i++){
cout<<"X"<<i+1<<"="<<M[i][n]<<"\t";
}cout<<endl;
return 0;
}