Método de
Jacobi
Integrantes:
Haziel Victor Esquivel Calvo
Roberto Carlos Calle Hidalgo
Efrain Flores Alanoca
Mauricio Lionel Escalante Cueto
Mayela Alexsandra Balderrama Intipampa
Descripcion
En análisis numérico el método de Jacobi es un método iterativo, usado para resolver
sistemas de ecuaciones lineales del tipo Ax = B
A x = b
a11 a11 a11 x1 b1
a11 a11 a11 x2 = b2
a11 a11 a11 x3 b3
La base del método consiste en construir una sucesión convergente definida
iterativamente. El límite de esta sucesión es precisamente la solución del sistema.
Resolucion
Antes de empezar con la resolucion del sistema de ecuaciones se debe verificar que la matriz A sea Diagonalmente dominante,
esto para poder encontrar una Convergencia y asi encontrar una solucion,
Definicion: A es diagonalmente dominante si y solo si:
n
|aij| > |aij| , i≠j
j=1
Para solucionar el sistema de ecuaciones se toma una matriz X que es la matriz de soluciones de X, esta matriz contiene los
resultados iniciales para el sistema de ecuaciones, a partir de este sistema se puede contruir una sucecion para encontrar la
solucion para cada Xi
1
x1 = a11 ( b1 - a12 x2 - a13 x3 - ........ - a1n xn )
1
x2 =a22 ( b2 - a21 x1 - a23 x3 - ........ - a2n xn )
1
x3 =a33 ( b3 - a12 x1 - a22 x2 - ........ - ain xn )
1
x4 =a44 ( b4 - ai2 x1 - ai3 x3 - ........ - ain xn )
.........
1
xn =ann ( bn - an1 x1 - an2 x2 - ........ - an,n-1 xn-1 )
Con cada iteracion se puede encontrar un nuevo Xi, que esta en funcion a un Xi anterior, asi que para un numero K de
iteraciones tenemos:
1 n
xi = aii ( bi -
k+1
i=1
aij xi ) , i=1,2,3.......
k
j≠i
Observaciones
Antes de empezar con la resolucion del ejercicio se debe comprobar si este es diagonalmente dominante, pero en caso de que no
lo sea puede que ordenando las ecuaciones de manera correcta si sea diagonalemte dominante
Sistema de ecuaciones diagonalemte dominante
3x1 - 1x2 -1 x3 = 1 |3| > |-1| + |-1|
-1x1 - 3x2 +1x3 = 3 |-3| > |-1| + |-1|
2x1 + 1x2 + 4x3 = 7 |4| > |+2| + |1|
Sistema de ecuaciones diagonalemte NO dominante
-1x1 - 3x2 +1x3 = 3 |-1| > |-3| + |1|
3x1 - 1x2 -1 x3 = 1 |-1| > |3| + |-1|
2x1 + 1x2 + 4x3 = 7 |4| > |+2| + |1|
Tolerancia y Error
Durante las iteraciones del metodo se tiene en cuenta que existe un error ya que este metodo es de aproximacion y todo metodo de
aproximacion tiene un error.
ei = |x1| - |xi|
k+1 k+1 k
Se calcula el error maximo entre los errores K+1, y se comprueba que este sea menor que la tolerancia para asi terminar el ciclo
emax < ε Donde ε representa la tolerancia
Algoritmo
Con la anterior solucion se puede generar un algoritmo que resuelva un sistema de ecuaciones NxN, este algoritmo empieza en un
K=1, ya que el k=0 son las soluciones previas que se tiene al empezar a resolver sl sistema de ecuaciones.
function jacobi(A,B,ε)
//n representa el numero de ecuaciones
//x0 es un aproximacion a la solucion
for K->1 hasta tolerancia
for i->1 hasta n
suma -> 0
for j->1 hasta n
if( j!=1 )
suma += a[i][j]*x[j]
error[i] = abs(x1[i]-x[i])
x[i] -> (b[i]-suma)/a[i][i]
max_e = 0
for k in error
if( k > max_e )
max_e = k
if( max_e < tol )
break
La convergencia del algoritmo hace referencia al criterior para detener la operacion, este tiene que ser un valor muy pequeño,
muchos de los lenguajes de programacion no manejan muchos decimales y con las operaciones pueden llegar a redondear
muchos numeros y perder precision, esto puede pasar con mayor frecuencia en las soluciones con numeros enteros y no en las
soluciones fraccionarias.
Ejemplo 1
Transformar el sistema de ecuaciones en un sistema matricial
3x1 - 1x2 -1 x3 = 1 3 -1 -1 x1 1
-1x1 + 3x2 +1x3 = 3 -1 3 1 x2 = 3
2x1 + 1x2 + 4x3 = 7 2 1 4 x3 7
Una vez con la forma matricial se empieza a calculcar cada Xi para esta operacion se utiliza el algoritmo anterior.
Para k = 1
1 1
x1 = ( b1 - a12 x2 - a13 x3 ) = ( 1 - (-1) 0 - (-1) 0 ) = 0.33333
a11 3
1 1
x2 = ( b2 - a21 x1 - a23 x3 ) = ( -1 - 1 * 0 - 1 * 0 ) = 1.0
a22 3
1 1
x3 = ( b3 - a31 x1 - a32 x2 ) = ( 7 - 2 * 0 - 1 * 0 ) = 1.75
a33 4
Para k = 2
1
x1 = ( 1 - (-1) 1 - (-1) 1.75 ) = 1.25
3
1
x2 = ( 3 - 1 * 0.33333 - 1 * 1.75 ) = 0.52777
3
1
x3 = ( 7 - 2 * 0.33333 - 1 * 1 ) = 1.33333
4
Para k = 3
1
x1 = ( 1 - (-1) 0.52777 - (-1) 1.33333 ) = 0.95370
3
1
x2 = ( 3 - 1 * 1.25 - 1 * 1.33333 ) = 0.97222
3
1
x3 = ( 7 - 2 * 1.25 - 1 * 0.52777 ) = 0.99305
4
Para k = 4
1
x1 = ( 1 - (-1) 0.97222 - (-1) 0.99305 ) = 0.98842
3
1
x2 = ( 3 - 1 * 0.95370 - 1 * 0.99305 ) = 0.98688
3
1
x3 = ( 7 - 2 * 0.95370 - 1 * 0.97222 ) = 1.03009
4
Para k = 5
1
x1 = ( 1 - (-1) 0.98688 - (-1) 1.03009 ) = 1.00565
3
1
x2 = ( 3 - 1 * 0.98842 - 1 * 1.03009 ) = 0.98611
3
1
x3 = ( 7 - 2 * 0.98842 - 1 * 0.98688 ) = 1.00906
4
Para k = 35
1
x1 = ( 1 - (-1) 0.99999 - (-1) 1.0 ) = 1.0
3
1
x2 = ( 3 - 1 * 1.0 - 1 * 1.0 ) = 1.0
3
1
x3 = ( 7 - 2 * 1.0 - 1 * 0.99999 ) = 1.0
4