Metodo de Jacobi - Gauss Seidel
Metodo de Jacobi - Gauss Seidel
Metodo de Jacobi - Gauss Seidel
Las fórmulas iterativas no siempre convergen, su análisis puede ser complicado, la convergencia
es de primer orden y se requiere elegir algún vector inicial para comenzar el proceso iterativo. En la
época actual el estudio de estos métodos iterativos se puede considerar principalmente como de
interés teórico matemático, excepto para resolver grandes sistemas de ecuaciones lineales con
matrices esparcidas y cuya convergencia se puede determinar fácilmente.
Para definir un método iterativo, se expresa el sistema AX = B en la forma X = G(X) con el mismo
fundamento descrito en el método del Punto Fijo para resolver ecuaciones no lineales.
X(0) es el vector inicial. A partir de este vector se obtienen sucesivamente los vectores X(1), X(2), ...
Si el método converge, entonces X(k) tiende a la solución X a medida que k crece:
X (k) → X
k →∞
94
Realice dos iteraciones, comenzando con los valores iniciales: x1(0) = x2(0) = x3(0) = 1
k=0: x1(1) = 1/5 (5 + 3x2(0) – x3(0)) = 1/5 (5 + 3(1) – (1)) = 1/5 (7) = 1.4
x2(1) = 1/4 (6 – 2x1(0) + x3(0)) = 1/4 (6 – 2(1) + (1)) = 1/4 (5) = 1.25
x3(1) = 1/8 (4 – 2x1(0) + 3x2(0)) = 1/8 (4 – 2(1) + 3(1)) = 1/8 (5) = 0.625
k=1:
x1(2) = 1/5 (5 + 3x2(1) – x3(1)) = 1/5 (5 + 3(1.25) – (0.625)) = 1.6250
x2(2) = 1/4 (6 – 2x1(1) + x3(1)) = 1/4 (6 – 2(1.4) + (0.625)) = 0.9563
x3(2) = 1/8 (4 – 2x1(1) + 3x2(1)) = 1/8 (4 – 2(1.4) + 3(1.25)) = 0.6188
function x = jacobi(a,b,x)
n=length(x);
t=x; % t es asignado con el vector X ingresado
for i=1:n
s=a(i,1:i-1)*t(1:i-1)+a(i,i+1:n)*t(i+1:n);
x(i) = (b(i) - s)/a(i,i);
end
Ejemplo
Use la función jacobim para encontrar el vector solución del ejemplo anterior con una precisión
de 0.0001 Determine cuántas iteraciones se realizaron. Comenzar con el vector inicial x=[1; 1; 1]
Ecuación recurrente del método de Jacobi según el método del Punto Fijo X = G(X)
X = D-1B - D-1 (L + U)X
En donde
1
D −1 =
ai,i nxn
Ecuación recurrente desarrollada
x1 b1 / a1,1 0 a1,2 / a1,1 a1,3 / a1,1 ... a1,n / a1,1 x1
b / a a / a 0 a2,3 / a2,2 ... a2,n / a2,2 x 2
x2
= 2 2,2 − 2,1 2,2
: : : : : ... : :
x2 n n,n n,1 an,n
b / a a / an,2 / an,n an,3 / an,n ... 0 xn
X(0) es el vector inicial. A partir de este vector se obtienen sucesivamente los vectores X(1), X(2), ...
97
Etc
98
i −1 n
1
xi(k + 1) =
ai,i
(bi - ∑ ai,jx(kj +1) - ∑ ai,jx(k)
j ); i = 1, 2, ..., n; k = 0, 1, 2, ...
j= 1 j= i + 1
Fórmula iterativa:
x1(k+1) = 1/5 (5 + 3x2(k) – x3(k))
x2(k+1) = 1/4 (6 – 2x1(k+1) + x3(k))
x3(k+1) = 1/8 (4 – 2x1(k+1) + 3x2(k+1))
Comenzando con el vector inicial: x1(0) = x2(0) = x3(0) = 1, realice dos iteraciones:
function x = gaussseidel(a,b,x)
n=length(x);
for i=1:n
s=a(i,1:i-1)*x(1:i-1)+a(i,i+1:n)*x(i+1:n); %Usa el vector x actualizado
x(i) = (b(i) - s)/a(i,i);
end
Ejemplo. Use la función gaussseidelm para encontrar el vector solución del ejemplo anterior con
una precisión de 0.0001 y determine cuántas iteraciones se realizaron si se comienza con el
vector inicial x=[1; 1; 1]
El sistema está en la forma recurrente del punto fijo X = G(X) que sugiere su uso iterativo. En el
método de Gauss-Seidel se utilizan los valores recientemente calculados del vector X.
Fórmula iterativa
X (k + 1) =
D−1B − D−1LX (k + 1) − D−1UX (k) , k =
0,1,2,...
X(0) es el vector inicial. A partir de este vector se obtienen sucesivamente los vectores X(1), X(2), ...