Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Variables Globales
Función Cargar_Datos()
{
Ingresar n //Dimensión del sistema.
Ingresar A //Matriz de coeficientes de n filas y n+1 columnas.
}
Función Gauss()
{
//Triangularización
Para k=1 hasta n-1
{
Para i=k+1 hasta n
{
q = Ai,k / Ak,k //Pivote.
Ai,k = 0
Para j=k+1 hasta n+1
{
Ai,j = Ai,j - (q * Ak,j);
}
}
}
//Verificación de Ann.
si(An,n == 0)
{
return -1; //El sistema no tiene solución única.
}
//Sustitución Inversa. Cálculo de solución.
Xn = An,n+1 / An,n
Para i=n-1 hasta 1 paso -1
{
s=0;
Para j=i+1 hasta n
{
s = s + (Ai,j * xj)
}
xi=(Ai,n+1 - s) / Ai,i
}
return 0; //Todo bien. Solución encontrada.
}
Función Mostrar_Resultado()
{ Para i=1 hasta n
{
Mostrar Xi
}
}
NJH
Función main()
{
int r //Retorno de Aplicar Método.
Cargar_Datos()
r = Gauss()
si(r == 0)
{
Mostrar_Resultado()
}
sino
{
Mostrar "Error: El sistema no tiene solución única"
}
}
Programa
//Declaración de librerias
#include <iostream>
#include <math.h>
#include <iomanip> //formato de salida.
using namespace std;
//Variables globales
int n; //Cantidad de ecuaciones
double A[100][100]; //Matriz de coeficiente.
double X[100]; //Vector resultado.
void Cargar_Datos()
{
int i,j;
cout<<"Ingrese el Nro. de ecuaciones (Max.100): ";
cin>>n;
for(i=1; i<=n; i++)
{
for(j=1; j<=n+1; j++)
{
cout<<"Coef. ["<<i<<"]["<<j<<"]= ";
cin>>A[i][j];
}
}
}
int Gauss()
{
int k,i,j; //Indices de ciclo.
double q,s; //pivote y sumatoria.
double max; //Estrategia de pivoteo máximo.
int f; //Fila del pivote máximo.
double aux; //Auxiliar para intercambio de filas.
//Triangularización
for(k=1; k<=n-1; k++)
{
for(i=k+1; i<=n; i++)
{
NJH
q = A[i][k] / A[k][k]; //Pivote.
A[i][k]=0;
for(j=k+1; j<=n+1; j++)
{
A[i][j] = A[i][j] - (q * A[k][j]);
}
}
}
//Verificación de Ann.
if(A[n][n]==0)
{
return -1; //El sistema no tiene solución única.
}
//Sustitución Inversa. Cálculo de solución.
X[n] = A[n][n+1] / A[n][n];
for(i=n-1; i>=1; i--)
{
s=0;
for(j=i+1; j<=n; j++)
{
s = s + (A[i][j]*X[j]);
}
X[i]=(A[i][n+1] - s) / A[i][i];
}
return 0; //Todo bien. Solución encontrada.
}
void Mostrar_Resultado()
{
int i;
cout<<fixed<<setprecision(8); //Redondeo a 8 decimales.
cout<<"\n\nVector solución\n";
for(i=1; i<=n; i++)
{
cout<<"X["<<i<<"] = "<<X[i]<<"\n";
}
}
int main()
{
int r; //Retorno de la función Gauss.
Cargar_Datos();
r = Gauss();
if(r == 0)
{
Mostrar_Resultado();
}
else
{
cout<<"Error: El sistema no tiene solución única";
}
system("pause");
return 0;
}
NJH
Utilice el programa desarrollado para obtener la solución del siguiente sistema de ecuaciones lineales
Función Cargar_Datos()
{
Ingresar n //Dimensión del sistema.
Ingresar A //Matriz de coeficientes de n filas y n+1 columnas.
}
Función Gauss()
{
//Triangularización
Para k=1 hasta n-1
{
}
//Sustitución Inversa. Cálculo de solución.
Xn = An,n+1 / An,n
Para i=n-1 hasta 1 paso -1
{
s=0;
Para j=i+1 hasta n
{
s = s + (Ai,j * xj)
}
xi=(Ai,n+1 - s) / Ai,i
}
return 0; //Todo bien. Solución encontrada.
}
Función Mostrar_Resultado()
{
Para i=1 hasta n
{
Mostrar Xi
}
}
NJH
Función main()
{
int r //Retorno de Aplicar Método.
Cargar_Datos()
r = Gauss()
si(r == 0)
{
Mostrar_Resultado()
}
sino
{
Mostrar "Error: El sistema no tiene solución única"
}
}