Fecha:29/06/2021
Nombre del estudiante: Judith Garcia Hernández
Nombre del docente: Torres Torres Mauricio
INTRODUCCION
En esta etapa analizaremos y nos apoyaremos en el método de Jacobi y el de Gauss-Seidel para la
solución de un caso práctico, en el cual primero obtendremos el sistema de ecuaciones 3x3 para
resolverlo de forma analítica. Posteriormente lo resolveremos por medio de los métodos mencionados
para los cuales desarrollaremos el código fuente y posteriormente los haremos ejecutables y así poder
comparar los resultados. Como sabemos ambos métodos son iterativos y a continuación podremos ver las
ventajas y desventajas que conlleva realizar cada uno de ellos.
CONCEPTUALIZACION
Método aspectos Jacobi Gauss-Seidel
En que consiste Son los procesos de
aproximaciones sucesivas para
resolver sistemas de ecuaciones
lineales compatibles
determinados. Ambos requieren
de la verificación de un criterio
de convergencia comúnmente
Usar fórmulas como iteración de conocido como diagonal
punto fijo. Un método iterativo pesada.
con el cual se resuelve el
sistema lineal A x = b comienza
con una aproximación inicial x
(0) a la solución x y genera una
sucesión de vectores x (k) que
converge a x.
Ventajas Es más exacto más rápido y
acepta fracciones
Si la matriz de coeficientes
originales es diagonalmente
dominante converge. Si la radio
espectral de la matriz es menor
a uno, también converge
Desventajas Es muy largo al igual que un
poco tedioso, no siempre
converge a la solución.
El método no siempre converge
y calcular el radio espectral de la
matriz puede ser muy extenso
CASO PRACTICO
Definir ecuación 3x3:
4x + 3y + 2z =
960 X + 3y + z =
510 2x + y +3z =
610
Despeje:
x = (960 – 3y – 2z) / 4
y = (510 – x – z) /3
z = (610 – 2x – y) / 3
SOLUCION ANALITICA
X = 120
Y = 100
Z = 90
SOLUCION METODO JACOBI
CÓDIGO FUENTE:
#Include<iostream>
#include<iomanip>
#include<math.h>
#define f1(x, y, z) (960-3*y-2*z) /4
#define f2(x, y, z) (510-x-z) /3
#define f3(x, y, z) (610-2*x-y) /3
Using namespace std.
Int main ()
{
Float x0=0, y0=0, z0=0, x1, y1, z1, e1, e2, e3, e; int step=1; Cout<<
setprecision (6) << fixed.
Cout<<"enter tolerable error:
"; cin>>e.
Cout<< endl<<"count\tx\t\ty\t\tz"<< endl; do
{
X1 = f1(x0,y0,z0);
Y1 = f2(x0,y0,z0); Z1
= f3(x0,y0,z0).
Cout<< step<<"\t"<< x1<<"\t"<< y1<<"\t"<< z1<< endl;
E1 = fabs(x0-x1); e2 = fabs(y0-y1); e3 = fabs(z0-z1);
Step++;
X0 = x1; y0 = y1; z0 = z1;
}while(e1>e && e2>e && e3>e);
Cout<< endl<<"solution: x = "<< x1<<", y = "<< y1<<" and z = "<< z1; return 0;
}
IMAGEN EJECUTABLE DEL METODO JACOBI
X = 120.007
Y = 100.004
Z = 90.006
SOLUCION METODO GAUSS-SEIDEL
CÓDIGO FUENTE:
#Include<iostream>
#include<iomanip>
#include<math.h>
#define f1(x,y,z) (960-3*y-2*z)/4
#define f2(x,y,z) (510-x-z)/3
#define f3(x,y,z) (610-2*x-y)/3
using namespace std;
int main()
{
float x0=0, y0=0, z0=0, x1, y1, z1, e1, e2, e3, e; int step=1
cout<< setprecision(6)<< fixed; cout<<"Enter
tolerable error: "; cin>>e;
cout<< endl<<"Count\tx\t\ty\t\tz"<< endl; do
{
x1 = f1(x0,y0,z0); y1
= f2(x1,y0,z0); z1 =
f3(x1,y1,z0);
cout<< step<<"\t"<< x1<<"\t"<< y1<<"\t"<< z1<< endl; e1
= fabs(x0-x1); e2 = fabs(y0-y1); e3 = fabs(z0-z1);
step++;
x0 = x1; y0 = y1; z0 = z1;} while(e1>e && e2>e && e3>e);
cout<< endl<<"Solution: x = "<< x1<<", y = "<< y1<<" and z = "<< z1; return 0;
}
IMAGEN EJECUTABLE DEL METODO GAUSS-SEIDEL
X = 120.034 Y = 99.993 Z = 89.979
REFERENCIAS:
Chapra, S. & Canale, R. (2007). Métodos numéricos para ingenieros. Recuperado de
https://elibro.net/es/ereader/uvm/73710
Serrano, J. (s.f.). Métodos Numéricos: Bisección. Recuperado de
https://www.geogebra.org/m/mny3npuu