Solución de Sistema de ecuaciones con el método de Gauss en c++

el programa que se muestra a continuación
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;

}

Compartir

0 Comment to "Solución de Sistema de ecuaciones con el método de Gauss en c++"

Publicar un comentario