calcula la solución de un sistema de ecuaciones lineales usando el método de la eliminación de Gauss sin pivote.
#include<iostream>
using namespace std;
/*
M-->matriz aumentada
n-->numero de ecuaciones
*/
void trianngularizacion(double M[20][20],double n){
double aux;
for(int k=0;k<n-1;k++){//recorrer la diagonal
if(M[k][k]==0)
cout<<"no tiene solucion";
else{
for(int i=k+1;i<n;i++){//recorrer fila
aux=-M[i][k];
for(int j=k;j<n+1;j++){//recorrer elementos de una fila
M[i][j]=M[i][j]+aux*M[k][j]/M[k][k];
}
}
}
}
}
/*
M-->matriz trianngularizada
v-->vector donde se almacenará la solucion del sistema
*/
void vector_solucion(double V[20],double M[20][20],int n){
double acum;
//recorrer matriz triangularizada
for(int i=n-1;i>=0;i--){
acum=0;
for(int j=n-1;j>=0;j--){
if(j>i){//recorrer matriz triangular
acum+=M[i][j]*V[j];
}
}
V[i]=(M[i][n]-acum)/M[i][i];
}
}
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[]) {
double M[20][20];
double V[20];
int n;
cout<<"ingrese la cantidad de ecuaciones:";
cin>>n;
ingresar_coeficientes(M,n);
cout<<"trianngularizacion de matriz de coeficientes:"<<endl;
trianngularizacion(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<<"vector solucion :"<<endl;
vector_solucion(V,M,n);
for(int i=0;i<n;i++){
cout<<"X"<<i<<"="<<V[i]<<"\t";
}cout<<endl;
return 0;
}
0 Comment to "Solución de Sistema de ecuaciones con el método de Gauss en c++"
Publicar un comentario