0% acharam este documento útil (0 voto)
14 visualizações75 páginas

Linsis Iterativo

Enviado por

watashi.yo.eu
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
14 visualizações75 páginas

Linsis Iterativo

Enviado por

watashi.yo.eu
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
Você está na página 1/ 75

Sistemas Lineares:

Métodos Iterativos
Prof. Afonso Paiva

Departamento de Matemática Aplicada e Estatı́stica


Instituto de Ciências Matemáticas e de Computação
USP – São Carlos

Métodos Numéricos e Computacionais I – SME0305


Métodos Iterativos Introdução

! WARNING
usar somente quando os
métodos diretos possuírem
limitações computacionais

Prof. Afonso Paiva (ICMC-USP) Sistemas Lineares SME0305 2 / 33


Métodos Iterativos Introdução

Introdução

Seja Ax = b um sistema linear de ordem n, com det(A) 6= 0.

Objetivo: queremos definir um processo iterativo, de modo que a


sequência de vetores {x(0) , x(1) , x(2) , . . .} produzida por esse processo
convirja para a solução x, independentemente da escolha do chute
inicial x(0) ∈ Rn .

Prof. Afonso Paiva (ICMC-USP) Sistemas Lineares SME0305 3 / 33


Métodos Iterativos Introdução

Introdução

Seja Ax = b um sistema linear de ordem n, com det(A) 6= 0.

Objetivo: queremos definir um processo iterativo, de modo que a


sequência de vetores {x(0) , x(1) , x(2) , . . .} produzida por esse processo
convirja para a solução x, independentemente da escolha do chute
inicial x(0) ∈ Rn .

Definição
Uma sequência de vetores {x(0) , x(1) , x(2) , . . .} converge para um vetor x, se

lim kx(k) − xk = 0 .
k→ ∞

Notação: x(k) → x.

Prof. Afonso Paiva (ICMC-USP) Sistemas Lineares SME0305 3 / 33


Métodos Iterativos Introdução

Introdução

Ideia principal: vamos criar um processo recursivo através de um


sistema equivalente a Ax = b.

Prof. Afonso Paiva (ICMC-USP) Sistemas Lineares SME0305 4 / 33


Métodos Iterativos Introdução

Introdução

Ideia principal: vamos criar um processo recursivo através de um


sistema equivalente a Ax = b.

1 Transformar Ax = b em um sistema equivalente da forma:

x = Cx + g ,

em que C ∈ M(n, n) e g ∈ Rn são conhecidos.

Prof. Afonso Paiva (ICMC-USP) Sistemas Lineares SME0305 4 / 33


Métodos Iterativos Introdução

Introdução

Ideia principal: vamos criar um processo recursivo através de um


sistema equivalente a Ax = b.

1 Transformar Ax = b em um sistema equivalente da forma:

x = Cx + g ,

em que C ∈ M(n, n) e g ∈ Rn são conhecidos.


2 Dado um chute inicial x(0) , obtemos uma sequência {x(0) , x(1) , . . .}
através do processo iterativo:

x(k+1) = Cx(k) + g , k = 0, 1, 2, . . . . (?)

Prof. Afonso Paiva (ICMC-USP) Sistemas Lineares SME0305 4 / 33


Métodos Iterativos Introdução

Introdução

Perguntas:

Dado Ax = b é possı́vel obter um sistema equivalente


x = Cx + g?

Prof. Afonso Paiva (ICMC-USP) Sistemas Lineares SME0305 5 / 33


Métodos Iterativos Introdução

Introdução

Perguntas:

Dado Ax = b é possı́vel obter um sistema equivalente


x = Cx + g?
Sim. Por exemplo, basta tomar C = I − A e g = b.

Prof. Afonso Paiva (ICMC-USP) Sistemas Lineares SME0305 5 / 33


Métodos Iterativos Introdução

Introdução

Perguntas:

Dado Ax = b é possı́vel obter um sistema equivalente


x = Cx + g?
Sim. Por exemplo, basta tomar C = I − A e g = b.

Se x(k) → x então x é solução de Ax = b?

Prof. Afonso Paiva (ICMC-USP) Sistemas Lineares SME0305 5 / 33


Métodos Iterativos Introdução

Introdução

Perguntas:

Dado Ax = b é possı́vel obter um sistema equivalente


x = Cx + g?
Sim. Por exemplo, basta tomar C = I − A e g = b.

Se x(k) → x então x é solução de Ax = b?


Sim. Passando o limite em ambos lados da Equação (?), temos que
x = Cx + g. Pela hipótese de equivalência, segue que x = x.

Prof. Afonso Paiva (ICMC-USP) Sistemas Lineares SME0305 5 / 33


Métodos Iterativos Introdução

Introdução

Perguntas:

Dado Ax = b é possı́vel obter um sistema equivalente


x = Cx + g?
Sim. Por exemplo, basta tomar C = I − A e g = b.

Se x(k) → x então x é solução de Ax = b?


Sim. Passando o limite em ambos lados da Equação (?), temos que
x = Cx + g. Pela hipótese de equivalência, segue que x = x.

Quando x(k) → x?

Prof. Afonso Paiva (ICMC-USP) Sistemas Lineares SME0305 5 / 33


Métodos Iterativos Introdução

Introdução

Perguntas:

Dado Ax = b é possı́vel obter um sistema equivalente


x = Cx + g?
Sim. Por exemplo, basta tomar C = I − A e g = b.

Se x(k) → x então x é solução de Ax = b?


Sim. Passando o limite em ambos lados da Equação (?), temos que
x = Cx + g. Pela hipótese de equivalência, segue que x = x.

Quando x(k) → x?

Quando terminar o processo iterativo {x(0) , x(1) , . . .}?

Prof. Afonso Paiva (ICMC-USP) Sistemas Lineares SME0305 5 / 33


Métodos Iterativos Convergência

Convergência

Definição (raio espectral)


O raio espectral de uma matriz A ∈ M(n, n) é definido como

ρ(A) = max {|λi |} ,


i∈{1,...,n}

onde λi são os autovalores de A.

Prof. Afonso Paiva (ICMC-USP) Sistemas Lineares SME0305 6 / 33


Métodos Iterativos Convergência

Convergência

Definição (raio espectral)


O raio espectral de uma matriz A ∈ M(n, n) é definido como

ρ(A) = max {|λi |} ,


i∈{1,...,n}

onde λi são os autovalores de A.

Teorema (critério geral de convergência)


Seja {x(0) , x(1) , x(2) , . . .} sequência gerada pelo processo iterativo (?).
1 Se kCkM < 1, onde k · kM é uma norma consistente, então a sequência
converge.
2 x(k) → x se somente se ρ(C) < 1.

Prof. Afonso Paiva (ICMC-USP) Sistemas Lineares SME0305 6 / 33


Métodos Iterativos Critérios de Parada

Critérios de Parada
Voltando a pergunta de quando devemos parar a sequência {x(k) }k∞=0 ?

Prof. Afonso Paiva (ICMC-USP) Sistemas Lineares SME0305 7 / 33


Métodos Iterativos Critérios de Parada

Critérios de Parada
Voltando a pergunta de quando devemos parar a sequência {x(k) }k∞=0 ?

Dados ε > 0 e kmax ∈ N, temos:


1 Erro absoluto:
k x(k +1) − x(k ) k < ε ;

Prof. Afonso Paiva (ICMC-USP) Sistemas Lineares SME0305 7 / 33


Métodos Iterativos Critérios de Parada

Critérios de Parada
Voltando a pergunta de quando devemos parar a sequência {x(k) }k∞=0 ?

Dados ε > 0 e kmax ∈ N, temos:


1 Erro absoluto:
k x(k +1) − x(k ) k < ε ;
2 Erro relativo:
k x(k +1) − x(k ) k
< ε;
k x(k +1) k

Prof. Afonso Paiva (ICMC-USP) Sistemas Lineares SME0305 7 / 33


Métodos Iterativos Critérios de Parada

Critérios de Parada
Voltando a pergunta de quando devemos parar a sequência {x(k) }k∞=0 ?

Dados ε > 0 e kmax ∈ N, temos:


1 Erro absoluto:
k x(k +1) − x(k ) k < ε ;
2 Erro relativo:
k x(k +1) − x(k ) k
< ε;
k x(k +1) k
3 Teste de resı́duo:
kb − Ax(k) k < ε ;

Prof. Afonso Paiva (ICMC-USP) Sistemas Lineares SME0305 7 / 33


Métodos Iterativos Critérios de Parada

Critérios de Parada
Voltando a pergunta de quando devemos parar a sequência {x(k) }k∞=0 ?

Dados ε > 0 e kmax ∈ N, temos:


1 Erro absoluto:
k x(k +1) − x(k ) k < ε ;
2 Erro relativo:
k x(k +1) − x(k ) k
< ε;
k x(k +1) k
3 Teste de resı́duo:
kb − Ax(k) k < ε ;
4 Número máximo de iterações:

k = kmax .

Prof. Afonso Paiva (ICMC-USP) Sistemas Lineares SME0305 7 / 33


Métodos Iterativos Método de Gauss-Jacobi

Método de Gauss-Jacobi

Dado Ax = b e supondo sem perda de generalidade que


aii 6= 0, i = 1, . . . , n, temos:


 a11 x1 + a12 x2 + a13 x3 + · · · + a1n xn = b1
 a21 x1 + a22 x2 + a23 x3 + · · · + a2n xn = b2



a31 x1 + a32 x2 + a33 x3 + · · · + a3n xn = b3
 .. .. ..
. . .




an1 x1 + an2 x2 + an3 x3 + · · · + ann xn = bn

Prof. Afonso Paiva (ICMC-USP) Sistemas Lineares SME0305 8 / 33


Métodos Iterativos Método de Gauss-Jacobi

Método de Gauss-Jacobi

Dado Ax = b e supondo sem perda de generalidade que


aii 6= 0, i = 1, . . . , n, temos:


 a11 x1 + a12 x2 + a13 x3 + · · · + a1n xn = b1
 a21 x1 + a22 x2 + a23 x3 + · · · + a2n xn = b2



a31 x1 + a32 x2 + a33 x3 + · · · + a3n xn = b3
 .. .. ..
. . .




an1 x1 + an2 x2 + an3 x3 + · · · + ann xn = bn

A forma como o Método de Gauss-Jacobi transforma Ax = b em


x = Cx + g é feita isolando cada coordenada xi do vetor x na i-ésima
equação do sistema.

Prof. Afonso Paiva (ICMC-USP) Sistemas Lineares SME0305 8 / 33


Métodos Iterativos Método de Gauss-Jacobi

Método de Gauss-Jacobi
Logo,


 x1 = (b1 − a12 x2 − a13 x3 − · · · − a1n xn )/a11
 x2 = (b2 − a21 x1 − a23 x3 − · · · − a2n xn )/a22



x3 = (b3 − a31 x1 − a32 x2 − · · · − a3n xn )/a33
 ..
 .. ..


 . . .
xn = (bn − an1 x1 − an2 x2 − · · · − an,n−1 xn−1 )/ann

Prof. Afonso Paiva (ICMC-USP) Sistemas Lineares SME0305 9 / 33


Métodos Iterativos Método de Gauss-Jacobi

Método de Gauss-Jacobi
Logo,


 x1 = (b1 − a12 x2 − a13 x3 − · · · − a1n xn )/a11
 x2 = (b2 − a21 x1 − a23 x3 − · · · − a2n xn )/a22



x3 = (b3 − a31 x1 − a32 x2 − · · · − a3n xn )/a33
 ..
 .. ..


 . . .
xn = (bn − an1 x1 − an2 x2 − · · · − an,n−1 xn−1 )/ann

Desta forma temos o sistema equivalente x = Cx + g, em que:


   
0 −a12/a11 −a13/a11 ··· −a1n/a11 b1/a11

 −a21/a22 0 − 23/a22
a ··· −a2n/a22 



b2/a22 

C=
 −a31/a33 − 32/a33
a 0 ··· −a3n/a33 
 e g=
 b3/a33 

 .. .. .. .. ..   .. 
 . . . . .   . 
−an1/ann −an2/ann ··· −an,n−1/ann 0 bn/ann

Prof. Afonso Paiva (ICMC-USP) Sistemas Lineares SME0305 9 / 33


Métodos Iterativos Método de Gauss-Jacobi

Método de Gauss-Jacobi
Portanto, dado o chute inicial x(0) , o processo iterativo é dado por:

(k +1) (k ) (k ) (k )


 x1 = (b1 − a12 x2 − a13 x3 − · · · − a1n xn )/a11
 (k +1) (k ) (k ) (k )
 x2 = (b2 − a21 x1 − a23 x3 − · · · − a2n xn )/a22



(k +1) (k ) (k ) (k )
x3 = (b3 − a31 x1 − a32 x2 − · · · − a3n xn )/a33

 .. .. ..



 . . .
 x(k +1)
 (k ) (k )
= (bn − an1 x1 − an2 x2 − · · · − an,n−1 xn−1 )/ann
(k )
n

Desta forma temos o sistema equivalente x(k+1) = Cx(k) + g, em que:


   
0 −a12/a11 −a13/a11 ··· −a1n/a11 b1/a11

 −a21/a22 0 −a23/a22 ··· −a2n/a22 



b2/a22 

C=
 −a31/a33 −a32/a33 0 ··· −a3n/a33 
 e g=
 b3/a33 

 .. .. .. .. ..   .. 
 . . . . .   . 
−an1/ann −an2/ann ··· −an,n−1/ann 0 bn/ann

Prof. Afonso Paiva (ICMC-USP) Sistemas Lineares SME0305 10 / 33


Métodos Iterativos Método de Gauss-Jacobi

Método de Gauss-Jacobi
Forma Matricial

Vamos mostrar como obter x(k+1) = Cx(k) + g a partir de Ax = b. Seja


D uma matriz diagonal formada pela diagonal de A. Assim,

Ax = b ⇔ (A − D + D)x = b ⇔ (A − D)x + Dx = b

Prof. Afonso Paiva (ICMC-USP) Sistemas Lineares SME0305 11 / 33


Métodos Iterativos Método de Gauss-Jacobi

Método de Gauss-Jacobi
Forma Matricial

Vamos mostrar como obter x(k+1) = Cx(k) + g a partir de Ax = b. Seja


D uma matriz diagonal formada pela diagonal de A. Assim,

Ax = b ⇔ (A − D + D)x = b ⇔ (A − D)x + Dx = b
Dessa forma,

(A − D)x(k) + Dx(k+1) = b ⇔ Dx(k+1) = (D − A)x(k) + b

Prof. Afonso Paiva (ICMC-USP) Sistemas Lineares SME0305 11 / 33


Métodos Iterativos Método de Gauss-Jacobi

Método de Gauss-Jacobi
Forma Matricial

Vamos mostrar como obter x(k+1) = Cx(k) + g a partir de Ax = b. Seja


D uma matriz diagonal formada pela diagonal de A. Assim,

Ax = b ⇔ (A − D + D)x = b ⇔ (A − D)x + Dx = b
Dessa forma,

(A − D)x(k) + Dx(k+1) = b ⇔ Dx(k+1) = (D − A)x(k) + b


Portanto,

x(k +1) = ( I − D−1 A ) x(k ) + D −1


| {z b} .
| {z }
C g

Prof. Afonso Paiva (ICMC-USP) Sistemas Lineares SME0305 11 / 33


Métodos Iterativos Método de Gauss-Jacobi

MATLAB – Método de Gauss-Jacobi

function [x,k]=gauss jacobi(A,b,x0,tol)


n = size(A,1);
D = diag(diag(A));
C = eye(n)-D\A;
g = D\b;
kmax = 10000; k = 0;

while (norm(b-A*x0)>tol && k<kmax)


k = k+1;
x0 = C*x0+g;
end
if (k == kmax)
disp('Erro: o metodo nao converge.');
return;
end
x = x0;

Prof. Afonso Paiva (ICMC-USP) Sistemas Lineares SME0305 12 / 33


Métodos Iterativos Método de Gauss-Jacobi

Método de Gauss-Jacobi
Critérios de Convergência

O Método de Gauss-Jacobi converge para a solução de Ax = b,


independentemente da escolha de x(0) , se satisfazer um dos critérios:

Prof. Afonso Paiva (ICMC-USP) Sistemas Lineares SME0305 13 / 33


Métodos Iterativos Método de Gauss-Jacobi

Método de Gauss-Jacobi
Critérios de Convergência

O Método de Gauss-Jacobi converge para a solução de Ax = b,


independentemente da escolha de x(0) , se satisfazer um dos critérios:
1 Critério das linhas:

∑nj=1 |akj |
j6 =k
α = max {αk } < 1 , com αk =
1≤k ≤n |akk |

Prof. Afonso Paiva (ICMC-USP) Sistemas Lineares SME0305 13 / 33


Métodos Iterativos Método de Gauss-Jacobi

Método de Gauss-Jacobi
Critérios de Convergência

O Método de Gauss-Jacobi converge para a solução de Ax = b,


independentemente da escolha de x(0) , se satisfazer um dos critérios:
1 Critério das linhas:

∑nj=1 |akj |
j6 =k
α = max {αk } < 1 , com αk =
1≤k ≤n |akk |

2 Critério das colunas:

∑ni=1 |aik |
i6 =k
α = max {αk } < 1 , com αk =
1≤k ≤n |akk |

Prof. Afonso Paiva (ICMC-USP) Sistemas Lineares SME0305 13 / 33


Métodos Iterativos Método de Gauss-Jacobi

Método de Gauss-Jacobi
Critérios de Convergência

Observações:

Uma matriz que satisfaz o critério das linhas é dita estritamente


diagonal dominante;

Prof. Afonso Paiva (ICMC-USP) Sistemas Lineares SME0305 14 / 33


Métodos Iterativos Método de Gauss-Jacobi

Método de Gauss-Jacobi
Critérios de Convergência

Observações:

Uma matriz que satisfaz o critério das linhas é dita estritamente


diagonal dominante;

Quanto menor o valor de α, mais rápida será a convergência.

Prof. Afonso Paiva (ICMC-USP) Sistemas Lineares SME0305 14 / 33


Métodos Iterativos Método de Gauss-Jacobi

Método de Gauss-Jacobi

Exercı́cio 1
Considere o sistema linear:

 8x1 + x2 − x3 = 8
x1 − 7x2 + 2x3 = −4 .
2x1 + x2 + 9x3 = 12

1 Determine o Método de Gauss-Jacobi para resolver o sistema


acima;
2 O Método de Gauss-Jacobi converge?
3 Dado o chute inicial x(0) = (0, 0, 0)> , calcule x(1) .

Prof. Afonso Paiva (ICMC-USP) Sistemas Lineares SME0305 15 / 33


Métodos Iterativos Método de Gauss-Jacobi

Método de Gauss-Jacobi

Exercı́cio 2
Considere o sistema linear:

 x1 + 3x2 + x3 = −2
5x + 2x2 + 2x3 = 3 .
 1
6x2 + 8x3 = −6

Teria como usar o Método de Gauss-Jacobi para resolver o sistema


acima analisando a convergência do método?

Prof. Afonso Paiva (ICMC-USP) Sistemas Lineares SME0305 16 / 33


Métodos Iterativos Método de Gauss-Seidel

Método de Gauss-Seidel

Como acelerar a convergência do Método de Gauss-Jacobi?


(k +1) (k +1) (k +1)
No cálculo de xi usar os valores atualizados x1 , . . . , xi−1 e
(k ) (k )
os valores restantes xi+1 , . . . , xn .

Prof. Afonso Paiva (ICMC-USP) Sistemas Lineares SME0305 17 / 33


Métodos Iterativos Método de Gauss-Seidel

Método de Gauss-Seidel

Como acelerar a convergência do Método de Gauss-Jacobi?


(k +1) (k +1) (k +1)
No cálculo de xi usar os valores atualizados x1 , . . . , xi−1 e
(k ) (k )
os valores restantes xi+1 , . . . , xn .


(k +1) (k ) (k ) (k ) (k )


 x1 = (b1 − a12 x2 − a13 x3 − a14 x4 − · · · − a1n xn )/a11
 (k +1) (k +1) (k ) (k ) (k )
 x2 = (b2 − a21 x1 − a23 x3 − a24 x4 − · · · − a2n xn )/a22



(k +1) (k +1) (k +1) (k ) (k )
x3 = (b3 − a31 x1 − a32 x2 − a34 x4 − · · · − a3n xn )/a33

 .. .. ..



 . . .
 x(k +1)

= (bn − an1 x1
(k +1)
− an2 x2
(k +1) (k +1)
− · · · − an,n−1 xn−1 )/ann
n

Prof. Afonso Paiva (ICMC-USP) Sistemas Lineares SME0305 17 / 33


Métodos Iterativos Método de Gauss-Seidel

Método de Gauss-Seidel
Forma Matricial

Vamos mostrar como obter x(k+1) = Cx(k) + g a partir de Ax = b.


Considere A = L + R, em que L é a matriz triangular inferior de A e R
é a matriz triangular superior de A sem a diagonal. Assim,

Ax = b ⇔ (L + R)x = b ⇔ Lx + Rx = b

Prof. Afonso Paiva (ICMC-USP) Sistemas Lineares SME0305 18 / 33


Métodos Iterativos Método de Gauss-Seidel

Método de Gauss-Seidel
Forma Matricial

Vamos mostrar como obter x(k+1) = Cx(k) + g a partir de Ax = b.


Considere A = L + R, em que L é a matriz triangular inferior de A e R
é a matriz triangular superior de A sem a diagonal. Assim,

Ax = b ⇔ (L + R)x = b ⇔ Lx + Rx = b
Dessa forma,

Lx(k+1) + Rx(k) = b ⇔ Lx(k+1) = −Rx(k) + b

Prof. Afonso Paiva (ICMC-USP) Sistemas Lineares SME0305 18 / 33


Métodos Iterativos Método de Gauss-Seidel

Método de Gauss-Seidel
Forma Matricial

Vamos mostrar como obter x(k+1) = Cx(k) + g a partir de Ax = b.


Considere A = L + R, em que L é a matriz triangular inferior de A e R
é a matriz triangular superior de A sem a diagonal. Assim,

Ax = b ⇔ (L + R)x = b ⇔ Lx + Rx = b
Dessa forma,

Lx(k+1) + Rx(k) = b ⇔ Lx(k+1) = −Rx(k) + b


Portanto,

x(k+1) = (−L−1 R) x(k) + L −1


| {z b} .
| {z }
C g

Prof. Afonso Paiva (ICMC-USP) Sistemas Lineares SME0305 18 / 33


Métodos Iterativos Método de Gauss-Seidel

MATLAB – Método de Gauss-Seidel

function [x,k]=gauss seidel(A,b,x0,tol)


L = tril(A); R = triu(A,1);
C = -L\R;
g = L\b;
kmax = 10000; k = 0;

while (norm(b-A*x0)>tol && k<kmax)


k = k+1;
x0 = C*x0+g;
end
if (k == kmax)
disp('Erro: o metodo nao converge.');
return;
end
x = x0;

Prof. Afonso Paiva (ICMC-USP) Sistemas Lineares SME0305 19 / 33


Métodos Iterativos Método de Gauss-Seidel

Método de Gauss-Seidel
Critério de Sassenfeld

O Método de Gauss-Seidel converge para a solução de Ax = b,


independentemente da escolha de x(0) , se satisfazer:

β = max { β i } < 1 , com


1≤i≤n

∑nj=2 |a1j | ∑ij− 1 n


=1 |aij | β j + ∑j=i+1 |aij |
β1 = e βi =
|a11 | |aii |

Obs.: quanto menor o valor de β, mais rápida será a convergência.

Prof. Afonso Paiva (ICMC-USP) Sistemas Lineares SME0305 20 / 33


Métodos Iterativos Método de Gauss-Seidel

Método de Gauss-Seidel

Exercı́cio 3
Considere o sistema linear:

 x1 + 0.5x2 + 0.1x3 = 0.2
0.3x1 + 2x2 + 0.2x3 = 0.7 .
−0.5x1 + x2 + 7x3 = 1

1 O Método de Gauss-Seidel converge?


2 Dado o chute inicial x(0) = (0, 0, 0)> , calcule x(1) .

Prof. Afonso Paiva (ICMC-USP) Sistemas Lineares SME0305 21 / 33


Métodos Iterativos Comparação

Gauss-Jacobi × Gauss-Seidel
8000

7000
Jacobi

iterações 6000
Seidel
5000

4000

3000

2000

1000

0
0 0.001 0.002 0.003 0.004 0.005 0.006 0.007 0.008 0.009 0.01

erro

Prof. Afonso Paiva (ICMC-USP) Sistemas Lineares SME0305 22 / 33


Métodos Iterativos Comparação

Gauss-Jacobi × Gauss-Seidel
8000

7000
Jacobi

iterações 6000
Seidel
5000

4000

3000

2000

1000

0
0 0.001 0.002 0.003 0.004 0.005 0.006 0.007 0.008 0.009 0.01

erro

Método de Gauss-Seidel converge mais rápido;


Método de Gauss-Jacobi é paralelizável.
Prof. Afonso Paiva (ICMC-USP) Sistemas Lineares SME0305 22 / 33
Métodos Iterativos Aplicação

Aplicação
Distribuição de Temperatura

Problema: dada uma placa R sujeita a 3 temperaturas (em Celsius)


distintas na fronteira ∂R, como calcular a temperatura de equilı́brio no
interior da placa?

20

25 20

30

Prof. Afonso Paiva (ICMC-USP) Sistemas Lineares SME0305 23 / 33


Métodos Iterativos Aplicação

Aplicação
Distribuição de Temperatura

Problema: dada uma placa R sujeita a 3 temperaturas (em Celsius)


distintas na fronteira ∂R, como calcular a temperatura de equilı́brio no
interior da placa?

20

25 20

30

Propriedade do Valor Médio: a temperatura de equilı́brio em um


ponto P é o valor médio da temperatura de sua vizinhança.

Prof. Afonso Paiva (ICMC-USP) Sistemas Lineares SME0305 23 / 33


Métodos Iterativos Aplicação

Aplicação
Distribuição de Temperatura

Suponha que R já alcançou a temperatura de equilı́brio. Vamos


discretizar R por uma grade (grid):

20
x1 x3
25 20
x2 x4
30

Prof. Afonso Paiva (ICMC-USP) Sistemas Lineares SME0305 24 / 33


Métodos Iterativos Aplicação

Aplicação
Distribuição de Temperatura

Suponha que R já alcançou a temperatura de equilı́brio. Vamos


discretizar R por uma grade (grid):

20
x1 x3
25 20
x2 x4
30

Propriedade do Valor Médio: a temperatura em um ponto P ∈ / ∂R é o


valor médio da temperatura dos seus 4 pontos mais próximos.
Prof. Afonso Paiva (ICMC-USP) Sistemas Lineares SME0305 24 / 33
Métodos Iterativos Aplicação

Aplicação
Distribuição de Temperatura

Qual o valor da temperatura em x1 , x2 , x3 e x4 ?

20
x1 x3
25 20
x2 x4
30

Prof. Afonso Paiva (ICMC-USP) Sistemas Lineares SME0305 25 / 33


Métodos Iterativos Aplicação

Aplicação
Distribuição de Temperatura

Qual o valor da temperatura em x1 , x2 , x3 e x4 ?

20
20 + 25 + x2 + x3
x1 =
4

x1 x3 x2 =
x1 + 25 + 30 + x4
4
25 20 20 + x1 + x4 + 20
x2 x4 x3 =
4
x3 + x2 + 30 + 20
x4 =
30 4

Prof. Afonso Paiva (ICMC-USP) Sistemas Lineares SME0305 25 / 33


Métodos Iterativos Aplicação

Aplicação
Distribuição de Temperatura

Qual o valor da temperatura em x1 , x2 , x3 e x4 ?

20
20 + 25 + x2 + x3
x1 =
4

x1 x3 x2 =
x1 + 25 + 30 + x4
4
25 20 20 + x1 + x4 + 20
x2 x4 x3 =
4
x3 + x2 + 30 + 20
x4 =
30 4
    
4 −1 −1 0 x1 45
 −1 4 0 −1   x2   55 
  = 
 −1 0 4 −1   x3   40 
0 −1 −1 4 x4 50

Prof. Afonso Paiva (ICMC-USP) Sistemas Lineares SME0305 25 / 33


Métodos Iterativos Aplicação

Aplicação
Distribuição de Temperatura

Exercı́cio 4
Dada uma placa quadrada de lado [0, 1] × [0, 1] metros, já com os
valores de temperatura prescritos na fronteira. Faça uma função em
MATLAB que calcule e visualize a distribuição de temperaturas nesta
placa usando o Método de Gauss-Seidel e um grid de resolução n × n.

Prof. Afonso Paiva (ICMC-USP) Sistemas Lineares SME0305 26 / 33


Métodos Iterativos Método dos Gradientes

Formas Quadráticas
Sejam A ∈ M(n, n), b ∈ Rn e c ∈ R. Uma forma quadrática é uma
função F : Rn → R escrita da seguinte maneira:

1 >
F(x) = x Ax − x> b + c ,
2

Prof. Afonso Paiva (ICMC-USP) Sistemas Lineares SME0305 27 / 33


Métodos Iterativos Método dos Gradientes

Formas Quadráticas
Sejam A ∈ M(n, n), b ∈ Rn e c ∈ R. Uma forma quadrática é uma
função F : Rn → R escrita da seguinte maneira:

1 >
F(x) = x Ax − x> b + c ,
2

Prof. Afonso Paiva (ICMC-USP) Sistemas Lineares SME0305 27 / 33


Métodos Iterativos Método dos Gradientes

Formas Quadráticas

Proposição
Se A é SPD então F(x) é minimizada pela solução de Ax = b.

Prof. Afonso Paiva (ICMC-USP) Sistemas Lineares SME0305 28 / 33


Métodos Iterativos Método dos Gradientes

Formas Quadráticas

Proposição
Se A é SPD então F(x) é minimizada pela solução de Ax = b.

Esboço da prova:
1 Mostrar que x é ponto de crı́tico, isto é,

∇F(x) = Ax − b = 0 ⇒ Ax = b .

2 Mostrar que x é ponto de crı́tico. A matriz Hessiana

∂2 F(x)
 
H= = A,
∂xi xj

como A é SPD ⇒ x é ponto de mı́nimo.

Prof. Afonso Paiva (ICMC-USP) Sistemas Lineares SME0305 28 / 33


Métodos Iterativos Método dos Gradientes

Método dos Gradientes

Entrada: Ax = b, com A SPD.

Prof. Afonso Paiva (ICMC-USP) Sistemas Lineares SME0305 29 / 33


Métodos Iterativos Método dos Gradientes

Método dos Gradientes

Entrada: Ax = b, com A SPD.


Objetivo: construir um processo iterativo (sequência) x(k) que
aproxime x.

Prof. Afonso Paiva (ICMC-USP) Sistemas Lineares SME0305 29 / 33


Métodos Iterativos Método dos Gradientes

Método dos Gradientes

Entrada: Ax = b, com A SPD.


Objetivo: construir um processo iterativo (sequência) x(k) que
aproxime x.
Ideia: vamos “descer” o parabolóide no sentido contrário de ∇F(x),
isto é,
−∇F(x(k) ) = b − Ax(k) = |{z}
r(k )
resı́duo

Prof. Afonso Paiva (ICMC-USP) Sistemas Lineares SME0305 29 / 33


Métodos Iterativos Método dos Gradientes

Método dos Gradientes

Entrada: Ax = b, com A SPD.


Objetivo: construir um processo iterativo (sequência) x(k) que
aproxime x.
Ideia: vamos “descer” o parabolóide no sentido contrário de ∇F(x),
isto é,
−∇F(x(k) ) = b − Ax(k) = |{z}
r(k )
resı́duo

Dado um chute inicial x(0) , obtemos x(1) da seguinte forma

x(1) = x(0) − α∇F(x(0) ) = x(0) + αr(0)


| {z }
reta

Prof. Afonso Paiva (ICMC-USP) Sistemas Lineares SME0305 29 / 33


Métodos Iterativos Método dos Gradientes

Método dos Gradientes

Entrada: Ax = b, com A SPD.


Objetivo: construir um processo iterativo (sequência) x(k) que
aproxime x.
Ideia: vamos “descer” o parabolóide no sentido contrário de ∇F(x),
isto é,
−∇F(x(k) ) = b − Ax(k) = |{z}
r(k )
resı́duo

Dado um chute inicial x(0) , obtemos x(1) da seguinte forma

x(1) = x(0) − α∇F(x(0) ) = x(0) + αr(0)


| {z }
reta

Vamos “caminhar” nessa reta, mas qual o tamanho do passo α???

Prof. Afonso Paiva (ICMC-USP) Sistemas Lineares SME0305 29 / 33


Métodos Iterativos Método dos Gradientes

Método dos Gradientes


Resposta: o valor de α tem que minimizar F(x) ao longo da reta
x(1) = x(0) + αr(0) , ou seja, minimizar F(x(1) ). Logo,

Prof. Afonso Paiva (ICMC-USP) Sistemas Lineares SME0305 30 / 33


Métodos Iterativos Método dos Gradientes

Método dos Gradientes


Resposta: o valor de α tem que minimizar F(x) ao longo da reta
x(1) = x(0) + αr(0) , ou seja, minimizar F(x(1) ). Logo,

F(α)
-0.05

-0.1

-0.15

-0.2

-0.25

-0.3

-0.35

-0.4

-0.45

-0.5
-0.4 -0.2 0 0.2 0.4 0.6 0.8 1

∂F (1) ∂x(1)
= ∇ F ( x(1) ) ·
(x ) |{z} = ∇ F ( x(1) ) · r(0) = 0
∂α ∂α | {z }
r. cadeia
− r(1)

Prof. Afonso Paiva (ICMC-USP) Sistemas Lineares SME0305 30 / 33


Métodos Iterativos Método dos Gradientes

Método dos Gradientes


Portanto, r(1) · r(0) = 0 (ortogonais). Segue que,

Prof. Afonso Paiva (ICMC-USP) Sistemas Lineares SME0305 31 / 33


Métodos Iterativos Método dos Gradientes

Método dos Gradientes


Portanto, r(1) · r(0) = 0 (ortogonais). Segue que,
h i
0 = r(1) · r(0) = b − Ax(1) · r(0)

Prof. Afonso Paiva (ICMC-USP) Sistemas Lineares SME0305 31 / 33


Métodos Iterativos Método dos Gradientes

Método dos Gradientes


Portanto, r(1) · r(0) = 0 (ortogonais). Segue que,
h i
0 = r(1) · r(0) = b − Ax(1) · r(0)
h i
= b − A(x(0) + αr(0) ) · r(0)

Prof. Afonso Paiva (ICMC-USP) Sistemas Lineares SME0305 31 / 33


Métodos Iterativos Método dos Gradientes

Método dos Gradientes


Portanto, r(1) · r(0) = 0 (ortogonais). Segue que,
h i
0 = r(1) · r(0) = b − Ax(1) · r(0)
h i
= b − A(x(0) + αr(0) ) · r(0)
h i
= (b − Ax(0) ) − αAr(0) · r(0)

Prof. Afonso Paiva (ICMC-USP) Sistemas Lineares SME0305 31 / 33


Métodos Iterativos Método dos Gradientes

Método dos Gradientes


Portanto, r(1) · r(0) = 0 (ortogonais). Segue que,
h i
0 = r(1) · r(0) = b − Ax(1) · r(0)
h i
= b − A(x(0) + αr(0) ) · r(0)
h i
= (b − Ax(0) ) − αAr(0) · r(0)
h i
(0) (0)
= r − αAr · r(0)

Prof. Afonso Paiva (ICMC-USP) Sistemas Lineares SME0305 31 / 33


Métodos Iterativos Método dos Gradientes

Método dos Gradientes


Portanto, r(1) · r(0) = 0 (ortogonais). Segue que,
h i
0 = r(1) · r(0) = b − Ax(1) · r(0)
h i
= b − A(x(0) + αr(0) ) · r(0)
h i
= (b − Ax(0) ) − αAr(0) · r(0)
h i
(0) (0)
= r − αAr · r(0)
= r(0) · r(0) − α(r(0) · Ar(0) )

Prof. Afonso Paiva (ICMC-USP) Sistemas Lineares SME0305 31 / 33


Métodos Iterativos Método dos Gradientes

Método dos Gradientes


Portanto, r(1) · r(0) = 0 (ortogonais). Segue que,
h i
0 = r(1) · r(0) = b − Ax(1) · r(0)
h i
= b − A(x(0) + αr(0) ) · r(0)
h i
= (b − Ax(0) ) − αAr(0) · r(0)
h i
(0) (0)
= r − αAr · r(0)
= r(0) · r(0) − α(r(0) · Ar(0) )

r(0) · r(0)
α=
r(0) · Ar(0)

Prof. Afonso Paiva (ICMC-USP) Sistemas Lineares SME0305 31 / 33


Métodos Iterativos Método dos Gradientes

Método dos Gradientes


O processo iterativo é definido como:
1 r(k) = b − Ax(k) ;
r(k ) · r(k )
2 α (k ) = (k ) ;
r · Ar(k)
3 x(k +1) = x(k ) + α (k ) r(k ) .

Prof. Afonso Paiva (ICMC-USP) Sistemas Lineares SME0305 32 / 33


Métodos Iterativos Método dos Gradientes

Método dos Gradientes


O processo iterativo é definido como:
1 r(k) = b − Ax(k) ;
r(k ) · r(k )
2 α (k ) = (k ) ;
r · Ar(k)
3 x(k +1) = x(k ) + α (k ) r(k ) .

Exercı́cio 5
Utilize o Método dos Gradiente com x(0) = (−2, 2)> para calcular uma
aproximação da solução do sistema abaixo:
    
3 2 x 2
= .
2 6 y −8

Note que a solução exata é x = (2, −2)> .


Prof. Afonso Paiva (ICMC-USP) Sistemas Lineares SME0305 32 / 33
Métodos Iterativos Método dos Gradientes

MATLAB – Método dos Gradientes

function [x,k] = gradientes(A,b,x0,tol)


% A: matriz SPD

kmax = 1000;
for k=1:kmax
r = b - A*x0;
if norm(r)<tol
x = x0;
k = k-1;
return;
end
alpha = (r'*r)/(r'*A*r);
x0 = x0 + alpha*r;
end

disp('Erro: o metodo nao converge.');

Prof. Afonso Paiva (ICMC-USP) Sistemas Lineares SME0305 33 / 33

Você também pode gostar