Está en la página 1de 4

MÉTODOS ITERATIVOS EN SISTEMAS LINEALES

Curso: Métodos Numéricos Para Ingeniería

INTRODUCCIÓN  x1(0) 
 (0) 
El diseño de sistemas de redes, rigideces de  x2 
elementos estructurales, requieren la solución de x(0)   x3(0) 
 
sistemas lineales. Sin embargo, para mejorar el  
tiempo de cálculo los métodos directos son una  x(0) 
mala elección, por lo que los métodos iterativos
 n 
ofrecen una importante salida para mejorar la 2. Este método se basa en el despeje de cada
velocidad y facilidad de cálculo, uno de los
incógnita de un sistema de ecuaciones como
métodos iterativos más famosos es el de Gauss-
Seidel. el siguiente.

A continuación, se presentas los métodos de Jacobi  a11 x1 a12 x2 a13 x3 ... a1n xn  b1
y Gauss-Seidel. a x  a x a23 x3 ... a2 n xn  b2


21 1 22 2

 31 1
a x  a32 x2 a33 x3 ... a3n xn  b3
MÉTODOS ITERATIVOS 

Los métodos iterativos representan una alternativa an1 x1 an 2 x2
 an3 x3 ... ann xn  bn
potente para solucionar los sistemas de ecuaciones
lineales, puesto que éstos se acercan más a la 3. Despejamos las incógnitas (variable x) de
solución real esperada a medida que se itera, de estas ecuaciones y empleamos el vector inicial
manera que la calidad de la aproximación obtenida para la primera iteración.
dependerá de la cantidad de iteraciones que esté
dispuesto a efectuar.  ( k ) b1 a12 ( k 1) a13 ( k 1) a1n ( k 1)
 x1  a 
a11
x2 
a11
x3 ... 
a11
xn
 11

MÉTODO DE JACOBI  ( k ) b2 a21 ( k 1) a a


 x2  a  a x1  23 x3( k 1) ...  2 n xn( k 1)
 22 22 a22 a22

El método parte de un sistema de ecuaciones al  x( k )  b3  a31 x( k 1) 


a32 ( k 1)
x2 ... 
a3n ( k 1)
xn
 3 a33 a33 1 a33 a33
cual se le aplicaran unos arreglos si es necesario 

para poder implementar este método. Cuando se 
tiene el sistema de ecuaciones definido se debe  xn( k )  bn  an1 x1( k 1) 
an 2 ( k 1)
x2 
an3 ( k 1)
x3 ...
 ann ann ann ann
hacer lo posible para que la matriz tenga la forma
de diagonalmente dominante.
4. Realizamos una serie de iteraciones hasta
Forma diagonalmente dominante de la matriz A, lograr que el Ea (error absoluto: se calcula con
del sistema AX = b. la norma del máximo) sea menor o igual de la
tolerancia dada.

x( k )  x( k 1) 
 Tol

PROCEDIMIENTO A SEGUIR NOTA


Esta norma del máximo es la mayor componente
1. Para emplear este método se nos debe en valor absoluto del vector en consideración.
proporcionar un vector inicial x(0).
Ejemplo 1: Así tendríamos las iteraciones:
Resolver por Jacobi el sistema lineal
4 x1  x2  x3  x4  1
 x  5x  x  x  2
 1 2 3 4

 x1  2 x2  8x3  4 x4  1
2 x1  3x2  5x3  12 x4  2

0 
0 
Además, el vector de partida es: x (0)  
0 
 
0 
Solución:

Llevando a la forma x = Tx + c para luego


escribirlo en la forma iterativa x(k) = Tx(k – 1) + c Por lo que se tiene:

4 x1  x2  x3  x4  1 x(18)  x(17)  = máx{0.000357,


 x  5x  x  x  2
 1 2 3 4 0.000302,0.000317,0.000381}= 0.000381
De  tenemos
 x1  2 x2  8x3  4 x4  1  0.0005  0.5103
2 x1  3x2  5x3  12 x4  2
 0.183407 
 1 1 1 1  0.387541 
 x1  0  4 x2  4 x3  4 x4  4 x(18)   es una aproximación con 3
 0.276195
x   1 x  0  1 x  1 x  2  
 2 5
1
5
3
5
4
5  0.154028 
 cifras decimales de precisión exacta.
 x3  1 x1  1 x2  0  1 x4  1
 8 4 2 8
 1 1 5 1 NOTA
 x4   x1  x2  x3  Se necesito 18 iteraciones para llegar a 3
 6 4 12 6
decimales de precisión exacta, si se desea más
Iteración 1: precisión deberá hacerse más iteraciones.

 1 1 1 1 1 1 MÉTODO DE GAUSS-SEIDEL


 x1  4  x20  x30  x4 0 
4 4 4 4

x  1  2 1
 x1 0  1
 x3 0  1 
 x4 0 

2 El método de Gauss-Seidel es casi idéntico al
 2 5 5 5 5 5 método de Jacobi. La única diferencia entre estos

 x3  
1  1 1
 x1 0  1
 x2 0  1  
 x4  
0 1 dos métodos está en que, en el método de Gauss -
 8 8 4 2 8 Seidel una vez que se ha calculado el valor de xi,
 1 1 1 5 1 este valor se sustituye inmediatamente en la
 x41   x10  x20  x30 
 6 6 4 12 6 misma iteración.

Iteración k:  ( k ) b1 a12 ( k 1) a13 ( k 1) a1n ( k 1)


 x1  a 
a11
x2 
a11
x3 ... 
a11
xn
 11
 k  1 1 1 1  ( k ) b2 a21 ( k )
 x1  4  x2 k 1  x3 k 1  x4 k 1  x2  a  a x1
a
 23 x3( k 1)
a
...  2 n xn( k 1)
4 4 4 a22 a22
  22 22

 x k   2  1 x k 1 1  k 1
 x3
1  k 1
 x4  x( k )  b3  a31 x( k ) a32 ( k ) a
 2 1
 3  x2 ...  3n xn( k 1)
5 5 5 5 a33 a33 1 a33 a33
 
 x3 k    1  1 x1 k 1 1
 x2 k 1
1
 x4 k 1 
 8 8 4 2 
  xn( k )  bn  an1 x1( k ) 
an 2 ( k )
x2 
an3 ( k )
x3 ...
 k 1 1  k 1 1  k 1 5
 x4   x1  x2  x3 k 1  ann ann ann ann
 6 6 4 12
Ejemplo 2: Así tendríamos las iteraciones:
Resolver por Jacobi el sistema lineal
4 x1  x2  x3  x4  1
 x  5x  x  x  2
 1 2 3 4

 x1  2 x2  8x3  4 x4  1
2 x1  3x2  5x3  12 x4  2

0 
0 
Además, el vector de partida es: x (0)  
0 
  x(6)  x(5)  =0.000082  0.5x103
0 
Solución:
 0.183568 
Llevando a la forma x = Tx + c para luego  0.387656 
escribirlo en la forma iterativa x(k) = Tx(k – 1) + c x(6)  
 0.276060
 
4 x1  x2  x3  x4  1  0.154183 
 x  5x  x  x  2
 1 2 3 4
De  tenemos x(6) es una aproximación con 3 cifras decimales de
 x1  2 x2  8x3  4 x4  1
2 x1  3x2  5x3  12 x4  2 precisión exacta.

NOTA
 1 1 1 1 Se puede notar que la velocidad de convergencia del
 x1  0  4 x2  4 x3  4 x4  4 método de Gauss-Seidel es mucho mejor que la de
 Jacobi.
x   1 x  0  1 x  1 x  2
 2 5
1
5
3
5
4
5
 IMPLEMENTACIÓN NUMÉRICA
 x3  1 x1  1 x2  0  1 x4  1
 8 4 2 8 Programa: gseidel.m
 1 1 5 1 function X=gseidel(A,b,X0,N)
 x4   x1  x2  x3  % Resuelve el sistema Ax=b
 6 4 12 6 % usando Gauss-Seidel x=L*x+U*x0+C
% X0=vector de partida,
% N=num.máx.iteraciones
Iteración 1: % Sintaxis: X=gseidel(A,b,X0,N)
[n,r]=size(A);
 1 1 1 1 1 1 m=length(b);
 x1  4  x2 0  x3 0  x4 0  if n~=r, error('Debe ser matriz
4 4 4 4
 cuadrada...'); end
 x1  2  1 x1 1  0 1  0 7 if m~=n, error('El tamaño del vector no es
 x3  x4 
 2 5 5
1
5 5 20 correcto...'); end
 if all(diag(A))==0, error('Hay elementos
 x31   1  1 x11 1
 x21
1  0
 x4 
29 nulos en la diagonal'); end
 8 8 4 2 160 C=zeros(n,1);
 1 1 1 1 1 5 1 217
for i=1: n
 x4 1 T(i,:)=-A(i,:)/A(i,i); C(i)=b(i)/A(i,i);
 x1  x2  x3 
 6 6 4 12 1920 T(i,i)=0;
end
U=triu(T); L=tril(T); X=X0;
Iteración k: for i=1: N
for k=1:n
X(k)=L(k,:)*X+U(k,:)*X0+C(k);
 k  1 1 1 1
 x1  4  x2 k 1  x3 k 1  x4 k 1 end
fprintf('---%d\n',i);
4 4 4
 fprintf('%18.9f\n',X);
 x k   2  1 x k  1  k 1
 x3
1  k 1
 x4 if norm(X-X0,inf)<=0.0005
 2 5 5
1
5 5 break;
 else
 x3 k    1  1 x1 k  1 k 
 x2
1  k 1
 x4 X0=X;
 8 8 4 2 end
 1 1 k  1 k  5
end
 k
 x4   x1  x2  x3 k  if i==N,error('No se tuvo exito'); end
 6 6 4 12 end
RECOMENDACIÓN FUENTES BIBLIOGRÁFICAS

En este módulo se recomienda tomar en cuente lo - Chapra, S., & R, C. (2007). Métodos Numéricos
siguiente: para Ingenieros. La Ciudad de México, México:
1. Definir cuál va a ser el vector incógnito inicial. McGranw-Hill.
2. Definir que método usar: Jacobi o Gauss-
Seidel. - Guillem, N., & Galván, R. (2008). Cálculo
3. Por facilidad puede usar el programa gseidel
numérico con Octave. Fundación de Software
para calcular por Gauss-Seidel la solución con
Octave. Libre.

También podría gustarte