ELABORACION DE GOMITAS , dulces, terapeuticas y con alcohol
Metodos_Iterativos_Print_I2020.pdf
1. A. Canhoa Q. 0.1. MÉTODOS ITERATIVOS PARA SISTEMAS LINEALES
0.1. Métodos iterativos para sistemas lineales
0.1.1. Método de Jacobi
Denición Se dice que una matriz A = (aij) ∈ Rn×n
es diagonalmente estrictamente dominante
cuando
|akk|
n
X
j=1
j6=k
|akj| , para k = 1, 2, · · · , n.
A =
12 3 1 1 0
1 −15 −4 3 2
2 3 30 3 5
4 2 1 −36 5
8 −1 1 1 13
|12| |3| + |1| + |1| + |0| = 5
|−15| |1| + |−4| + |3| + |2| = 10
|30| |2| + |3| + |3| + |5| = 13
|−36| |4| + |2| + |1| + |5| = 12
|13| |8| + |−1| + |1| + |1| = 11
La matriz A es una matriz diagonalmente dominante por las.
B =
12 3 1 1 0
1 −15 −4 3 2
2 3 3 3 5
4 2 1 −36 5
8 −1 1 1 13
|12| |3| + |1| + |1| + |0| = 5
|−15| |1| + |−4| + |3| + |2| = 10
|3| ≤ |2| + |3| + |3| + |5| = 13
|−36| |4| + |2| + |1| + |5| = 12
|13| |8| + |−1| + |1| + |1| = 11
La matriz B no es una matriz diagonalmente dominante por las, la tercera la de B no satisface
la denición.
Consideremos el sistema lineal
a11x1 + a12x2 + . . . + a1nxn = b1
a21x1 + a22x2 + . . . + a2nxn = b2
.
.
.
.
.
.
...
.
.
.
an1x1 + an2x2 + . . . + annxn = bn
deniendo
A =
a11 . . . a1n
.
.
.
...
.
.
.
an1 . . . ann
, x =
x1
.
.
.
xn
, b =
b1
.
.
.
bn
donde A ∈ Rn×n
, b ∈ Rn
y la incógita x ∈ Rn
. Se puede escribir de manera compacta
Ax = b
Descomponiendo la matriz A : A = AL + AD + AU
donde
AL =
0 0 0 . . . 0
a21 0 0 . . . 0
a31 a32 0 0
.
.
.
...
...
.
.
.
an1 an2 . . . an,n−1 0
,
1 1
2. A. Canhoa Q.
AU =
0 a12 a13 . . . a1n
0 0 a23 . . . a2n
0 0 0
.
.
.
.
.
.
.
.
.
... an−1,n
0 0 . . . 0 0
AD = diag(A) = diag(a11, a22, · · · , ann)
Reemplazando A = AD + (A − AD) en Ax = b se obtiene
(AD) x + (A − AD) x = b.
Deniendo la sucesión xk
por
ADxk+1
= b − (A − AD) xk
,
se obtienen la iteraciones del método de Jacobi
xk+1
= A−1
D b − A−1
D (A − AD) xk
, k = 0, 1, 2, · · ·
Deniendo d := A−1
D b y J := −A−1
D (A − AD) las iteraciones de Jacobi están dadas por
xk+1
= Jxk
+ d, k = 0, 1, 2, · · ·
Se cumplen
A−1
D = diag(
1
a11
,
1
a22
, · · · ,
1
ann
).
Criterio para parar
Si pk : Axk+1
− b 2
tol ∧
kxk+1
−xk
k2
kxk+1k2
err se acepta a xk+1
como una solución apróximada
de Ax = b con una tolerancia tol y un error relativo apróximado menor que err.
Convergencia del método iterativo de Jacobi
TEOREMA Supongamos que A es una matriz diagonal estrictamente dominante. Entonces el
sistema de ecuaciones lineales Ax = b tiene solución única b
x. Además, el respectivo proceso iterativo
de Jacobi converge a b
x para cualquier punto inicial x(0)
.
Ejemplo Solucionar el siguiente sistema lineal por el método dede Jacobi con una tolencia de
10−12
y un error aproximado menor a 10−10
.
−x1 −2x2 +30x3 +10x4 = 10
20x1 +7x2 −x3 −2x4 = 6
−6x1 +12x2 −2x3 +2x4 = −4
3x1 −2x2 +8x3 −20x4 = −1
Solución Reordenando
−x1 −2x2 +30x3 +10x4 = 10 −→ Ecuación 3
20x1 +7x2 −x3 −2x4 = 6 −→ Ecuación 1
−6x1 +12x2 −2x3 +2x4 = −4 −→ Ecuación 2
3x1 −2x2 +8x3 −20x4 = −1 −→ Ecuación 4
de modo que la matriz de coecientes sea diagonalmente dominante para asegurar la convergencia.
2 2
3. A. Canhoa Q. 0.1. MÉTODOS ITERATIVOS PARA SISTEMAS LINEALES
Se obtiene el sistema lineal
20x1 +7x2 −x3 −2x4 = 6
−6x1 +12x2 −2x3 +2x4 = −4
−x1 −2x2 +30x3 +10x4 = 10
3x1 −2x2 +8x3 −20x4 = −1
Este sistema lineal se puede en forma matricial Ax = b, donde
A =
20 7 −1 −2
−6 12 −2 2
−1 −2 30 10
3 −2 8 −20
, b =
6
−4
10
−1
, x =
x1
x2
x3
x4
La matriz A es diagonalmente dominante y se asegura la convergencia del método de Jacobi.
En este caso para AD = diag (20, 12, 30, −20) se tiene A−1
D = diag 1
20 , 1
12 , 1
30 , − 1
20
.
Luego se obtienen
d = A−1
D b =
1
20 0 0 0
0 1
12 0 0
0 0 1
30 0
0 0 0 − 1
20
6
−4
10
−1
=
3
10
−1
3
1
3
1
20
J = −A−1
D (A − AD)
= −
1
20 0 0 0
0 1
12 0 0
0 0 1
30 0
0 0 0 − 1
20
0 7 −1 −2
−6 0 −2 2
−1 −2 0 10
3 −2 8 0
=
0 − 7
20
1
20
1
10
1
2 0 1
6 −1
6
1
30
1
15 0 −1
3
3
20 − 1
10
2
5 0
.
Las iteraciones de Jacobi están dadas por
xk+1
1
xk+1
2
xk+1
3
xk+1
4
=
0 − 7
20
1
20
1
10
1
2 0 1
6 −1
6
1
30
1
15 0 −1
3
3
20 − 1
10
2
5 0
xk
1
xk
2
xk
3
xk
4
+
3
10
−1
3
1
3
1
20
, k = 0, 1, 2, · · ·
En este caso se tiene tol = 10−12
y err = 10−10
. Eligiendo el punto inicial x0
= x0
1, x0
2, x0
3, x0
4
T
=
(0, 0, 0, 0)
T
.
3 3
6. A. Canhoa Q.
Se tiene que p3 es falso (F) =⇒!Continuar!
k xk
1 xk
2 xk
3 xk
4 pk
0 0,0000000000 0,0000000000 0,0000000000 0,0000000000 −
1 0,3000000000 −0,3333333333 0,3333333333 0,0500000000 F
2 0,4383333333 −0,1361111111 0,3044444444 0,2616666667 F
3 0,3890277778 −0,1070370370 0,2516481481 0,2511388889 F
.
.
.
.
.
.
32 0,3831761485 −0,1357403625 0,2617997305 0,2257703507 F
33 0,3831761485 −0,1357403625 0,2617997305 0,2257703507 V
donde pk : Axk
− b 2
10−12
(tol) ∧
kxk
−xk−1
k2
kxkk2
10−10
(err) .
En la tabla se presentan los resultados con 10 decimales por motivos de espacio. Se obtiene
x =
x1
x2
x3
x4
=
0,38317614846365
−0,13574036246684
0,26179973054022
0,22577035073234
T
,
que es una solución (apróximada) del sistema lineal dado con una tolerancia tol = 10−12
y un error
relativo menor que err = 10−10
.
A continuación se presenta la implementación en Octave/MATLAB del método de Jacobi.
function [xk, k] = jacobi01(A, b, tol, err)
% Funcion en Octave/MATLAB para el método de Jacobi
% Autor : Alessandri Canchoa Q. - Fecha : Agosto - 2020
% Entrada : A : Matriz nxn
% b : Parte derecha (vector nx1)
% tool : Tolerancia (Ejemplo: tool = 1e-14; )
% err : Error (Ejemplo: tool = 1e-14; )
% Salida :
% xk : Solución aproximada de Ax = b
k = 0; xk = zeros(size(b)); PARAR = 0;
Ad_1 = diag(1./diag(A)); J = - Ad_1*(A-diag(diag(A))); d = Ad_1*b;
n = length(b);
while ~PARAR
xk1 = J*xk+d;
PARAR = norm(A*xk1-b) tol norm(xk1-xk)/(eps+norm(xk1)) err;
if PARAR, pk ='V'; else pk = 'F'; end;
k = k+1; xk = xk1;
end
end
end
A continuación se presenta la aplicación de la implementación del método de Jacobi para el
ejemplo precedente.
A = [20, 7, −1, −2; −6, 12, −2, 2; −1, −2, 30, 10; 3, −2, 8, −20]; b = [6; −4; 10; −1]; err = 1e −
12; tol = 1e − 10;
[xk, k] = jacobi01(A, b, tol, err)
xk =
0,3831761484636145
6 6
7. A. Canhoa Q. 0.1. MÉTODOS ITERATIVOS PARA SISTEMAS LINEALES
−0,1357403624670241
0,2617997305402249
0,225770350732207
Se obtiene la aproximación
x =
x1
x2
x3
x4
:=
0,3831761484636145
−0,1357403624670241
0,2617997305402249
0,225770350732207
.
Ejemplo Aplicando el método de Jacobi resuelva el siguiente sistema lineal con una tolerancia
de 10−13
y con error relativo apróximado menor que 10−12
. Convergen estas iteraciones?.
−x1 −2x2 +3x3 +10x4 = 10
2x1 +7x2 −x3 −2x4 = 6
−6x1 +x2 −2x3 +2x4 = −4
3x1 −2x2 +18x3 −10x4 = −1
Solución Reordenando de modo que la matriz de coecientes sea diagonalmente dominante
−x1 −2x2 +3x3 +10x4 = 10 −→ Ecuación 4
2x1 +7x2 −x3 −2x4 = 6 −→ Ecuación 2
−6x1 +x2 −2x3 +2x4 = −4 −→ Ecuación 1
3x1 −2x2 +18x3 −10x4 = −1 −→ Ecuación 3
Se obtiene el sistema lineal
−6x1 +x2 −2x3 +2x4 = −4
2x1 +7x2 −x3 −2x4 = 6
3x1 −2x2 +18x3 −10x4 = −1
−x1 −2x2 +3x3 +10x4 = 10
donde la matriz de coeciente del sistema lineal
A =
−6 1 −2 2
2 7 −1 −2
3 −2 18 −10
−1 −2 3 10
es diagonalmente dominante, lo que asegura la convergencia del método.
El sistema lineal se puede expresar de la siguiente manera.
−6x1 = −4 − x2 −2x3 +2x4
7x2 = 6 − 2x1 −x3 −2x4
18x3 = −1 − 3x1 −2x2 −10x4
10x4 = 10 − −x1 −2x2 +3x3
x1 = 1
6 (x2 − 2x3 + 2x4 + 4)
x2 = 1
7 (6 − 2x1 + x3 + 2x4)
x3 = 1
18 (−1 − 3x1 + 2x2 + 10x4)
x4 = 1
10 (10 + x1 + 2x2 − 3x3)
7 7
11. A. Canhoa Q. 0.1. MÉTODOS ITERATIVOS PARA SISTEMAS LINEALES
Se obtiene la aproximación
x =
x1
x2
x3
x4
:=
1,036450477626934
0,96053293112117
0,5128205128204818
1,141905480140777
.
0.1.2. Método de Gauss- Seidel
Reemplazando A = (AL + AD + AU ) en Ax = b se obtiene
(AL) x + (AD) x + (AU ) x = b.
Deniendo la sucesión xk
por
(AL) x(k+1)
+ (AD) x(k+1)
= b − (AU ) x(k)
,
ó
ADx(k+1)
= b − (AU ) x(k)
− (AL) x(k+1)
,
se obtienen la iteraciones del método de Gauss-Seidel
x(k+1)
= A−1
D
b − (AU ) x(k)
− (AL) x(k+1)
.
Para la i-ésima ecuación
ai1x1 + ai2x2 + · · · + ai,i−1xi−1 + aiixi + ai.i+1xi+1 + · · · + ainxn = bi
i−1
X
j=1
aijxj + aiixi = bi −
n
X
j=i+1
ai.jxj
i−1
X
j=1
aijx
(k+1)
j + aiix
(k+1)
i = bi −
n
X
j=i+1
ai.jx
(k)
j
Iteraciones del método de Gauss-Seidel:
x
(k+1)
i =
1
aii
bi −
n
X
j=i+1
ai.jx
(k)
j −
i−1
X
j=1
aijx
(k+1)
j
,
i = 1, 2, · · · , n, k = 0, 1, 2, 3, · · ·
En Octave o en MATLAB esto se puede implementar como sigue
Para cada k = 0, 1, 2, 3, · · ·
z = xk;
for i=1:n
J = [1:i-1,i+1:n];
z(i) = (b(i)-A(i,J)*z(J))/A(i,i);
end
11 11
12. A. Canhoa Q.
xk1 = z;
Ejemplo Aplicando el método de Gauss- Seidel resuelva el siguiente sistema lineal con una
tolerancia de 10−12
y con error relativo apróximado menor que 10−10
. Convergen estas iteraciones?.
−6x1 +x2 −2x3 +2x4 = −4
2x1 +7x2 −x3 −2x4 = 6
3x1 −2x2 +18x3 −10x4 = −1
−x1 −2x2 +3x3 +10x4 = 10
Solución En este caso la matriz de coecientes es diagonalmente dominante (no es necesario
reordenar), lo que asegura la convergencia del método.
−6x1 = −4 − x2 + 2x3 − 2x4
2x1 +7x2 = 6 + x3 + 2x4
3x1 −2x2 +18x3 = −1 + 10x4
−x1 −2x2 +3x3 +10x4 = 10
Deniendo la sucesión xk
por
−6xk+1
1 = −4 − xk
2 + 2xk
3 − 2xk
4
2xk+1
1 + 7xk+1
2 = 6 + xk
3 + 2xk
4
3xk+1
1 − 2xk+1
2 + 18xk+1
3 = −1 + 10xk
4
−xk+1
1 − 2xk+1
2 + 3xk+1
3 + 10xk+1
4 = 10
Se obtienen las iteraciones de Gauss-Seidel
xk+1
1 = 1
6 4 + xk
2 − 2xk
3 + 2xk
4
xk+1
2 = 1
4 6 − 2xk+1
1 + xk
3 + 2xk
4
xk+1
3 = 1
18 −1 − 3xk+1
1 + 2xk+1
2 + 10xk
4
xk+1
4 = 1
10 10 + xk+1
1 + 2xk+1
2 − 3xk+1
3
, k = 0, 1, 2, · · ·
Las iteraciones de Gauss - Seidel se puede expresar como sigue
xk+1
=
xk+1
1
xk+1
2
xk+1
3
xk+1
4
=
1
6 4 + xk
2 − 2xk
3 + 2xk
4
1
7 6 − 2xk+1
1 + xk
3 + 2xk
4
1
18 −1 − 3xk+1
1 + 2xk+1
2 + 10xk
4
1
10 10 + xk+1
1 + 2xk+1
2 − 3xk+1
3
,
, k = 0, 1, 2, 3, · · ·
En este caso se tiene tol = 10−13
y err = 10−12
. Eligiendo el punto inicial x0
= x0
1, x0
2, x0
3, x0
4
T
=
(0, 0, 0, 0)
T
Para k = 0 :
x1
=
x1
1
x1
2
x1
3
x1
4
=
1
6 4 + x0
2 − 2x0
3 + 2x0
4
1
7 6 − 2x1
1 + x0
3 + 2x0
4
1
18 −1 − 3x1
1 + 2x1
2 + 10x0
4
1
10 10 + x1
1 + 2x1
2 − 3x1
3
,
=
0,6666666666666666
0,6666666666666667
−0,09259259259259259
1,227777777777778
12 12