Talk-001-Grupo - Gauss Siedel, Jacobi y Gradientes C.
1. RESOLUCIÓN DE SISTEMAS DE ECUACIONES
SIMULTANEAS A~
x =~
B
MEDIANTE MÉTODOS ITERATIVOS
Alan Ignacio Dı́az
César Agustı́n Ballast
Maiko Lorenzo Mateo
Alice Segura Souffront
Luis Cuello Medina
Métodos Numéricos - Uso de MATLAB y GNU Octave
Mat-8301
December 16, 2023
AD, CB, ML, AS, LC Métodos Iterativos: Solución de Sistemas A
~
x =~
B UASD 1 / 27
2. Contenido
1 Introdución
Generalidades
¿Por qué iterar?
Teorı́a del punto fijo
2 Método de Gauss - Seidel
Generalidades del método
Gauss - Seidel: Convergencia
Algoritmo MATLAB O OCTAVE GNU
3 Método de Jacobi
Generalidades del método
Jacobi: Convergencia
Algoritmo MATLAB O GNU
4 Métodos de Gradientes
Función Cuadrática
El Método del Gradiente
El Método del Gradiente Conjugado
AD, CB, ML, AS, LC Métodos Iterativos: Solución de Sistemas A
~
x =~
B UASD 2 / 27
3. Introducción
Generalidades
En lo adelante, se detallarán algunos métodos iterativos para aproximar soluciones de sistemas lineales
cuadrados, es decir, sistemas A
~
x =~
B cuya matriz de coeficientes A es una matriz cuadrada. Los métodos a
tratar son: Método de Gradiente Conjugado, Gauss - Seidel, y Jacobi. Para tales fines, es importante
recordar conceptos de sus cursos de Álgebra Lineal. Recuerde que, un sistema de m ecuaciones con n
incognitas que tiene la forma:
a11x1 + a12x2 + ··· + a1nxn = b1
a21x1 + a22x2 + ··· + a2nxn = b2
.
.
.
.
.
.
...
.
.
.
.
.
.
am1x1 + am2x2 + ··· + amnxn = bm
donde aij,bi ∈ R para i = 1,2,...,m y j = 1,2,...,n, una solución de este sistema de ecuaciones es una
n-ada ordenada (α1,α2,...,αn) de números reales, tales que al hacer las sustituciones
x1 = α1
x2 = α2
.
.
.
xn = αn
en cada una de las m ecuaciones, las convierte en identidades.
AD, CB, ML, AS, LC Métodos Iterativos: Solución de Sistemas A
~
x =~
B UASD 3 / 27
4. Introducción
¿Por qué iterar?
Las técnicas iterativas rara vez se aplican a sistemas lineales de orden bajo, pues el tiempo de ejecución
para alcanzar un grado de exactitud satisfactoria suele ser mucho mayor que el tiempo que se requiere
cuando se aplica alguno de los métodos directos que usualmente desarrollamos en nuestros cursos de
Álgebra Lineal. Sin embargo, si un sistema de tamaño relativamente grande, A
~
x =~
B , tiene un alto
porcentaje de entradas aij = 0 en la matriz de coeficientes, entonces los métodos iterativos suelen ser muy
eficientes, tanto en tiempo de ejecución como en espacio de memoria en la computadora.
a11 a12 a13 a14 a15 a16 a17 ··· a1,10
a21 a22 a23 a24 a25 a26 a27 ··· a2,10
a31 a32 a33 a34 a35 a36 a37 ··· a3,10
a41 a42 a43 a44 a45 a46 a47 ··· a4,10
a51 a52 a53 a54 a55 a56 a57 ··· a5,10
a61 a62 a63 a64 a65 a66 a67 ··· a6,10
a71 a72 a73 a74 a75 a76 a77 ··· a7,10
a81 a82 a83 a84 a85 a86 a87 ··· a8,10
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
...
.
.
.
a1000,1 a1000,2 a1000,3 a1000,4 a1000,6 a1000,7 a1000,8 ··· a1000,1000
x1
x2
x3
x4
x5
x6
x7
x8
.
.
.
x1000
=
b1
b2
b3
b4
b5
b6
b7
b8
.
.
.
b1000
AD, CB, ML, AS, LC Métodos Iterativos: Solución de Sistemas A
~
x =~
B UASD 4 / 27
5. Introducción
Teorı́a del punto fijo
xk =
(
x0, si k = 0
g(xk−1), si k = 1,2,...
que converge a la solución exacta p; es decir,
lim
k→∞
xk = p.
AD, CB, ML, AS, LC Métodos Iterativos: Solución de Sistemas A
~
x =~
B UASD 5 / 27
6. Gauss - Seidel: Generalidades del método
Para el sistema A
~
x =~
B, nxn, donde los coeficientes de la diagonal son todos distintos
de cero (aii 6= 0):
a11 a12 a11 ··· a1n
a21 a22 a23 ··· a2n
.
.
.
.
.
.
.
.
.
...
.
.
.
an1 an2 an3 ··· ann
x1
x2
x3
.
.
.
xn
=
b1
b2
b3
.
.
.
bn
Iterar con Gauss - Seidel requiere:
Sabemos que podemos escribir:
x1 = b1−a12x2−···−a1nxn
a11
x2 = b2−a21x1−···−a2nxn
a22
x3 = b3−a31x1−···−a3nxn
a33
.
.
.
xn =
bn−an1x1−···−an,n−1xn−1
ann
AD, CB, ML, AS, LC Métodos Iterativos: Solución de Sistemas A
~
x =~
B UASD 6 / 27
7. Gauss - Seidel: La convergencia
La condicion suficiente para la convergencia de dos ecuaciones no lineales, u(x, y) y v(x, y), son:
∂u
∂x
+
∂u
∂y
< 1
∂v
∂x
+
∂v
∂y
< 1
u(x1,x2) =
b1
a11
−
a12
a11
x2
v(x1,x2) =
b2
a22
−
a21
a22
x1
∂u
∂x1
= 0;
∂v
∂x2
= −
a12
a11
∂v
∂x1
= −
a21
a22
;
∂v
∂x2
= 0
a12
a11
< 1
a21
a22
< 1
AD, CB, ML, AS, LC Métodos Iterativos: Solución de Sistemas A
~
x =~
B UASD 7 / 27
8. Gauss - Seidel: Convergencia
De manera general, para un sistema nxn, tomando xi:
v =
bi −ai1x1 −···−ai,nxn
aii
,
∂v
∂x1
= −
ai1
aii
,
∂v
∂x2
= −
ai2
aii
,
.
.
.
∂v
∂xi
= 0,
ai1
aii
+
ai2
aii
+
ai3
aii
+...+
ai,nxn
aii
< 1,
⇒ |aii| >
n
∑
j=1
j6=i
ai,j
Criterio suficiente pero no
necesario:
Es decir, el coeficiente diagonal en cada
una de las ecuaciones debe ser mayor que
la suma del valor absoluto de los otros
coeficientes de la ecuación (matriz
diagonalmente dominante). Este criterio es
suficiente pero no necesario para la
convergencia. Ası́, si la matriz A es
diagonalmente dominante, entonces el
método iterativo de Gauss-Seidel converge
a la única solución del sistema lineal
A
~
x =~
b para cualquier vector inicial
~
x0 ∈ Rn.
AD, CB, ML, AS, LC Métodos Iterativos: Solución de Sistemas A
~
x =~
B UASD 8 / 27
9. Gauss - Seidel: Primer Algoritmo MATLAB O GNU
AD, CB, ML, AS, LC Métodos Iterativos: Solución de Sistemas A
~
x =~
B UASD 9 / 27
10. Gauss - Seidel: Segundo Algoritmo MATLAB O GNU
AD, CB, ML, AS, LC Métodos Iterativos: Solución de Sistemas A
~
x =~
B UASD 10 / 27
11. Método de Jacobi: Generalidades
Para el sistema anteriormente presentado A
~
x =~
B, nxn, donde, nuevamente, los
coeficientes de la diagonal son todos distintos de cero (aii 6= 0), la matriz coeficientes
A puede ser escrita como:
A = D+R
Donde D es una matriz diagonal, y R = L+U; L y U son una matriz triangular
inferior y superior, respectivamente. La base del método consiste en escribir:
D
~
x+R
~
x =~
B
~
x = D−1(~
B−R
~
x)
⇒~
xk+1 = D−1(~
B−R
~
xk)
D =
d11 0 0 ··· 0
0 d22 0 ··· 0
0 0 d33 ··· 0
.
.
.
.
.
.
.
.
.
...
.
.
.
0 0 0 ··· dnn
⇒ D−1
=
1
d11
0 0 ··· 0
0 1
d22
0 ··· 0
0 0 1
d33
··· 0
.
.
.
.
.
.
.
.
.
...
.
.
.
0 0 0 ··· 1
dnn
AD, CB, ML, AS, LC Métodos Iterativos: Solución de Sistemas A
~
x =~
B UASD 11 / 27
12. Método de Jacobi: Convergencia
Criterio suficiente pero no necesario para la convergencia:
Al igual que en el método anterior, el sistema converge, independientemente del valor
inicial de ~
x0, si la matriz A es diagonalmente dominante. Es decir:
|aii| >
n
∑
j=1
j6=i
ai,j
AD, CB, ML, AS, LC Métodos Iterativos: Solución de Sistemas A
~
x =~
B UASD 12 / 27
13. Método de Jacobi: Algoritmo MATLAB O GNU
AD, CB, ML, AS, LC Métodos Iterativos: Solución de Sistemas A
~
x =~
B UASD 13 / 27
14. Métodos de Gradientes
Definición: Función cuadrática
Se denomina función cuadrática a toda función escalar definida sobre un espacio
vectorial de dimensión n de la forma: f(
~
x) = 1
2~
xtA
~
x−~
Bt~
x+c, donde A es una matriz
cuadrada,~
x y~
B son vectores y c es una constante escalar.
f(
~
x) =
1
2
x1 x2 ... xn
a11 a12 ... a1n
a21 a22 ... a2n
.
.
.
.
.
.
...
.
.
.
an1 an2 ... ann
x1
x2
.
.
.
xn
−
B1 B2 ... Bn
x1
x2
.
.
.
xn
+c
Si A es una matriz simétrica definida positiva~
xtA
~
x 0 ∀
~
x ∈ Rn {0} la función
escalar f(
~
x) alcanza un mı́nimo en la solución del sistema A
~
x =~
B.
AD, CB, ML, AS, LC Métodos Iterativos: Solución de Sistemas A
~
x =~
B UASD 14 / 27
15. Métodos de Gradientes
Para ver esto, un ejemplo para un sistema A
~
x =~
B con n = 2 es ideal:
5 2
2 8
x1
x2
=
4
8
⇒
x1
x2
=
4
9
8
9
AD, CB, ML, AS, LC Métodos Iterativos: Solución de Sistemas A
~
x =~
B UASD 15 / 27
16. Métodos de Gradientes
La función cuadrática para el caso n = 2:
f(
~
x) =
1
2
h
a11x2
1 +a22x2
2 +(a21 +a12)x1x2
i
−B1x1 −B2x2 +c
Para el caso particular:
⇒ f(
~
x) =
1
2
h
5x2
1 +8x2
2 +4x1x2
i
−4x1 −8x2 +c
El campo vectorial gradiente definido como:
~
f0
(
~
x) = ∇f(
~
x) =
∂
∂x1
f(x̄)
∂
∂x2
f(x̄)
.
.
.
∂
∂xn
f(x̄)
Nuevamente, para el caso particular:
~
f0
(
~
x) = ∇f(
~
x) =
5x1 +2x2 −4
2x1 +8x2 −8
AD, CB, ML, AS, LC Métodos Iterativos: Solución de Sistemas A
~
x =~
B UASD 16 / 27
17. Métodos de Gradientes
AD, CB, ML, AS, LC Métodos Iterativos: Solución de Sistemas A
~
x =~
B UASD 17 / 27
18. Métodos de Gradientes
AD, CB, ML, AS, LC Métodos Iterativos: Solución de Sistemas A
~
x =~
B UASD 18 / 27
19. Métodos de Gradientes
AD, CB, ML, AS, LC Métodos Iterativos: Solución de Sistemas A
~
x =~
B UASD 19 / 27
20. Métodos de Gradientes
El gradiente es un campo vectorial que tiene la importante propiedad de que en un
punto dado,~
x, el vector de campo correspondiente apunta en la dirección del máximo
crecimiento de f.
Se puede demostrar que:
∇f(
~
x) =
1
2
At
~
x+
1
2
A
~
x−~
B
Y si A es simétrica:
∇f(
~
x) = A
~
x−~
B ⇒ si∇f(
~
x) =~
0
⇒ A
~
x−~
B =~
0
Igualando el gradiente a cero se recupera el sistema A
~
x−~
B =~
0. De este modo la
solución del sistema A
~
x =~
b, que en lo sucesivo se denominará~
x∗, es un punto crı́tico
de f(
~
x). Si la matriz A, además de ser simétrica, es definida positiva, entonces la
solución del sistema A
~
x =~
b es un mı́nimo global de f.
AD, CB, ML, AS, LC Métodos Iterativos: Solución de Sistemas A
~
x =~
B UASD 20 / 27
21. El Método del Gradiente
Definiciones:
El error~
ei =~
xi −~
x∗ es un vector que indica lo alejado que se está de la solución.
El residuo~
ri =~
b−A
~
xi es otro vector que indica cuan lejos está el vector A
~
x del
vector~
b.
Se puede comprobar que r̄i = −Aēi, por lo que se debe pensar en el residuo como el
error transformado por −A. Más importante,~
ri = −∇f ~
xi
, y por lo tanto también se
debe pensar en el residuo como la dirección de máximo descenso.
Un algoritmo general para entender el problema:
AD, CB, ML, AS, LC Métodos Iterativos: Solución de Sistemas A
~
x =~
B UASD 21 / 27
22. El Método del Gradiente
La pregunta que hay que hacer es: ¿por qué ρi =
(~
ri
)
t
~
ri
(~
ri)
t
A
~
ri
? Para contestar a esta
pregunta, supondremos que en cada iteración se realizará una búsqueda lineal a lo
largo de la dirección de descenso correspondiente (en el caso del método del
gradiente en la dirección contraria al gradiente):
f
~
x0
+ρ0
~
r0
= min
ρ∈R
f
~
x0
+ρ~
r0
.
⇒
d
dρ
f
~
x0
+ρ~
r0
= 0
ρ0 =
~
b−A
~
x0
t
~
r0
(
~
r0)
t
A
~
r0
=
~
r0
t
~
r0
(
~
r0)
t
A
~
r0
⇒~
xi+1
=~
xi
+ρi
~
ri
AD, CB, ML, AS, LC Métodos Iterativos: Solución de Sistemas A
~
x =~
B UASD 22 / 27
23. El Método del Gradiente Conjugado
El Método del Gradiente Conjugado:
Nos podrı́amos plantear modificar el método del gradiente eligiendo una dirección de
descenso distinta al gradiente en la segunda iteración: la dirección que une~
x1 con la
solución exacta~
x∗. En este caso tendrı́amos un método que obtiene (si se trabaja con
aritmética exacta) la solución exacta en dos/iteraciones. El problema es cómo
determinar esta nueva dirección sin conocer la solución exacta del sistema. Para
resolver el problema llamaremos~
d1
∗ al vector que une~
x1 con~
x∗ :
~
d1
∗ =~
x∗
−~
x1
=~
x∗
−~
x0
−ρ0
~
d0
.
En donde se ha denominado~
d0 a la primera dirección de descenso,~
d0 =~
r0.
AD, CB, ML, AS, LC Métodos Iterativos: Solución de Sistemas A
~
x =~
B UASD 23 / 27
24. El Método del Gradiente Conjugado
Se siguen las siguientes secuencias:
d̄0 = r̄0 = b̄−Ax̄0
ρ0 = r̄0·d̄0
(d̄0)
t
Ad̄0
x̄1 = x̄0 +ρ0d̄0
r̄1 = b̄−Ax̄1
α0 = −
(d̄0
)
t
Ar̄1
(d̄0)
t
Ad̄0
d̄1 = r̄1 +α0r̄0
.
.
.
ρi = r̄i·d̄i
(d̄i)
t
Ad̄i
x̄i+1 = x̄i +ρid̄i
r̄i+1 = b̄−Ax̄i+1
αi = −
(d̄i
)
t
Ar̄i+1
(d̄i)
t
Ad̄i
d̄i+1 = r̄i+1 +αid̄i
.
.
.
AD, CB, ML, AS, LC Métodos Iterativos: Solución de Sistemas A
~
x =~
B UASD 24 / 27
25. El Método del Gradiente - Algoritmo MATLAB O GNU
AD, CB, ML, AS, LC Métodos Iterativos: Solución de Sistemas A
~
x =~
B UASD 25 / 27
26. El Método del Gradiente Conjugado - Algoritmo MATLAB
O GNU
AD, CB, ML, AS, LC Métodos Iterativos: Solución de Sistemas A
~
x =~
B UASD 26 / 27
27. AD, CB, ML, AS, LC Métodos Iterativos: Solución de Sistemas A
~
x =~
B UASD 27 / 27