Академический Документы
Профессиональный Документы
Культура Документы
INGENIERÍA QUÍMICA
Problema 2.1
Dado el siguiente seudo código del método de eliminación de Gauss, desarrollar un programa en C++.
Seudo código
En el presente algoritmo, se implementa el método mediante la utilización de una matriz extendida para incluir el
término independiente.
Función: Obtener_Datos( )
Entre n, A = {A i , j ; 1 ≤ i ≤ n, 1 ≤ j ≤ n + 1}
Fin
Función: Aplicar_Metodo( )
Para k = 1, n
Si (A k ,k )
≤ 10−8 entonces
Retorne ERROR_PIVOTE_PCERO
Fin-si
Para i = k + 1, n
A
Haga m = i , k
Ak ,k
Para j = k + 1, n + 1
Haga A i , j = A i , j − m ⋅ A k , j
Fin-para
Fin-para
Fin-para
Para i = n,1, −1
Haga s = 0
Para j = i + 1, n
Haga s = s + A i , j ⋅ x j
Fin-para
A i , n +1 − s
Haga xi =
A i ,i
Fin-para
Retorne ERROR_OK
Fin
Función: Salida_en_Archivo( )
Para i = 1, n
Muestre xi
Fin-para
Fin
2 Trabajo Práctico Nº 2
Carlos M. Albarracín
Programa C++
Los datos se leen desde un archivo de texto denominado: sistema.txt (ver problema 2.2).
/* TRABAJO PRÁCTICO 2 */
/* Sistemas lineales. Método de Gauss básico */
#include "U:\anqlib++\anqlib++.h"
#include "U:\errores.h"
//Efectuar Cálculos
if(error==ERROR_OK) error=Aplicar_Metodo();
system("PAUSE");
return error;
}
int Obtener_Datos(){
int i,j,error;
char buffer_lectura[5000];//buffer para almacenar los datos del archivo
//Obtener el número n
error=leeEntero(buffer_lectura,&n);
if(error!=0) return error;
return ERROR_OK;
}
if(error2<0){
//Errores de cada método numérico en particular
ANÁLISIS NUMÉRICO 3
INGENIERÍA QUÍMICA
int Aplicar_Metodo(){
int i,j,k;
double q,s;
//Triangulación
for(k=1; k<=n; k++){
if(fabs(a[k][k]) <= 1.0e-8) return ERROR_PIVOTE_PCERO;
for(i=k+1; i<=n; i++){
q=a[i][k]/a[k][k];
for(j=k+1; j<=n+1; j++){
a[i][j]-=q*a[k][j];
}
}//for i
}//for k
//Sustitución regresiva
for(k=n; k>=1; k--){
s=0.0;
for(j=k+1; j<=n; j++) s+=a[k][j]*x[j];
x[k]=(a[k][n+1]-s)/a[k][k];
}//for k
return ERROR_OK;
}
Archivo: errores.h
#define ERROR_OK 0
#define ERROR_PIVOTE_PCERO 1
Utilice el programa desarrollado en el problema 2.1 para obtener la solución del siguiente sistema de ecuaciones:
2 x1 + 3 x2 − x3 = −1
4 x1 + 4 x2 − 3x3 = 1
−2 x1 + 3 x2 − x3 = −1
4 Trabajo Práctico Nº 2
Carlos M. Albarracín
[Número de ecuaciones]
3
[ecuación 1]
2.0 3.0 -1.0
[término independiente 1]
-1.0
[ecuación 2]
4.0 4.0 -3.0
[término independiente 2]
1.0
[ecuación 3]
-2.0 3.0 -1.0
[término independiente 3]
-1.0
[Fin datos]
Problema 2.2
Dado el siguiente sistema de ecuaciones:
1 1 1 25
x1 + x2 + x3 + x4 =
2 3 4 12
1 1 1 1 77
x1 + x2 + x3 + x4 =
2 3 4 5 60
1 1 1 1 57
x1 + x2 + x3 + x4 =
3 4 5 6 60
1 1 1 1 319
x1 + x2 + x3 + x4 =
4 5 6 7 420
Problema 2.3
Utilice el programa desarrollado en el problema 2.1 para obtener la solución del siguiente sistema de ecuaciones:
⎡ 4 −1 0 −1 0 0 ⎤ ⎡ x1 ⎤ ⎡ 2 ⎤
⎢ −1 4 −1 0 −1 0 ⎥ ⎢ x ⎥ ⎢ 1 ⎥
⎢ ⎥ ⎢ 2⎥ ⎢ ⎥
⎢ 0 −1 4 0 0 −1⎥ ⎢ x3 ⎥ ⎢ 2 ⎥
⎢ ⎥•⎢ ⎥ = ⎢ ⎥
⎢ −1 0 0 4 −1 0 ⎥ ⎢ x4 ⎥ ⎢ 2 ⎥
⎢ 0 −1 0 −1 4 −1⎥ ⎢ x5 ⎥ ⎢ 1 ⎥
⎢ ⎥ ⎢ ⎥ ⎢ ⎥
⎣⎢ 0 0 −1 0 −1 4 ⎦⎥ ⎣⎢ x6 ⎦⎥ ⎣⎢ 2 ⎦⎥
Problema 2.4
Resuelva el sistema dado en el sistema Web de trabajos prácticos, completando las tablas que allí se indican. Efectúe
los cálculos en forma manual.