Вы находитесь на странице: 1из 40

SOLUÇÃO DE SISTEMA DE EQUAÇÕES

¼ A solução de um sistema de equações é necessária na grande maioria


dos problemas de engenharia

 Problemas de interpolação e ajuste de curvas

 Solução de equações diferenciais - simulação de problemas de engenharia

¼ Maior parte do tempo de uma simulação por elementos finitos,


diferenças finitas ou outro método numérico é gasto na
resolução do sistema de equações obtido com a discretização

¼ Necessidade de métodos robustos e rápidos


SISTEMA DE n EQUAÇÕES E n INCÓNITAS

 a11 x1 + a12 x2 + K + a1n xn = b1


a21 x1 + a22 x2 + K + a2 n xn = b2
 M
a x + a x + K + a x = b
 n1 1 n2 2 nn n n

¼ Se os coeficientes aij são constantes, o sistema é dito linear

¼ O sistema acima pode ser representado na forma de matriz:

 a11 a12 L a1n −1 a1n   x1   b1 


a21 a22 L a2 n −1 a2 n   x2  b2 
a a32 L a3n −1 a3n   x3  = b3 
 31     Ax = b
 M M M M  M   M 
 an1 an 2 L ann − a ann   xn  bn 
MÉTODOS DE SOLUÇÃO

¼ MÉTODOS DIRETOS

A solução exata (a menos de erros de truncamento do computador)


é determinada após um número finito de operações

Requer mais memória de armazenamento


Mais robusto
Mais rápido

¼ MÉTODOS ITERATIVOS

Fornece uma sequência de soluções aproximadas que convergem


quando o número de passos tende a infinito

Menor necessidade de memória de armazenamento


Problemas de convergência
MÉTODOS DIRETOS
SISTEMAS TRIANGULARES

u11 u12 L u1n −1 u1n   x1   b1 


0 u 22 L u 2 n −1 u 2 n   x2  b2 
0 0 L u3n −1 u3n   x3  = b3 
    
 M M M M  M   M 
 0 0 L 0 u nn   xn  bn 

Se uii ≠ 0, i = 1,2,K, n as incógnitas podem ser facilmente calculadas


bn
linha n : xn = ;
u nn
bn −1 − u n −1,n xn
linha n - 1 : u n −1,n −1 xn −1 + u n −1,n xn = bn −1 → xn −1 = ;
u n −1,n −1
M
n
bi − ∑u
k =i +1
i , k xk RETROSUBSTITUIÇÃO
linha i : xi =
uii
Se a matriz for triangular inferior:

 l11 0 L 0 0   x1   b1 
l21 l22 L 0 0   x2  b2 
l l32 L 0 0   x3  = b3 
 31    
M M M M  M   M 
ln1 ln 2 L lnn − a lnn   xn  bn 

A solução é calculada da seguinte forma:


b1
linha 1 : x1 = ;
l11
b2 − u 2,1 x1
linha 2 : u 2,1 x1 + u 2, 2 x2 = b2 → x2 = ;
u 22
M
i −1
bi − ∑l
k =i
i , k xk
SUBSTITUIÇÃO A FRENTE
linha i : xi =
lii
n
1 1 2
NÚMERO DE OPERAÇÕES: n +
i =1 2

(i − 1) = n + n( n − 1) ≈ n
2
ELIMINAÇÃO GAUSSIANA

¼ Eliminar as variáveis de uma maneira sistemática até obter um


sistema triangular, de fácil solução
 a11 x1 + a12 x2 + K + a1n xn = b1
a21 x1 + a22 x2 + K + a2 n xn = b2
 M
Eliminar x1 das (n-1) úlimas equações
a x + a x + K + a x = b
 n1 1 n2 2 nn n n Se a11 ≠ 0

a11 x1 + a12 x2 + K + a1n xn = b1


 a   a   a   a 
 a21 − 21 a11  x1 +  a22 − 21 a12  x2 + K +  a2 n − 21 a1n  xn =  b2 − 21 b1 
 a11   a   a   a 
144244 3  11   11   11 
 0
M

0 x1 +  an 2 − an1 a12  x2 + K +  ann − an1 a1n  xn =  bn − an1 b1 
  a   a   a 
 11   11   11 
Após o primeiro passo, o sistema fica sendo:

a11 x1 + a12 x2 + K + a1n xn = b1 ai1


Onde mi1 = ; i = 2,3,K, n
 ( 2)
a22 x2 + K + a2( 2n) xn = b2( 2 )
a11
M aij( 2 ) = aij − mi1a1 j ; i = 2,3,K, n
 bi( 2 ) = bi − mi1b1 ; i = 2,3,K, n
 an( 22) x2 + K + ann
( 2)
xn = bn( 2 )

Eliminar x2 das (n-2) últimas equações


( 2)
Se a22 ≠ 0

a11 x1 + a12 x2 + a13 x3 + K + a1n xn = b1 ai(22)


 ( 2)
a22 ( 2)
x2 + a23 x3 + K + a2( 2n) xn = b2( 2) mi 2 = ( 2) ; i = 3,4,K, n
 a22
( 3)
 a33 x3 + K + a3(3n) xn = b3(3) aij(3) = aij( 2) − mi 2 a2( 2j) ; i = 3,4,K, n
M bi(3) = bi( 2) − mi 2b2( 2) ; i = 3,4,K, n
 ( 3) ( 3) ( 3)
 a n3 3 x + K + a nn n x = b n

E assim por diante, até obter um sistema da forma


a11(1) (1)
x1 + a12 (1)
x2 + a13 x3 + K + a1(1n) xn = b1(1)
 ( 2) ( 2) ( 2) ( 2)
 a 22 2 x + a 23 3 x + K + a 2n n x = b 2
( 3) ( 3) ( 3)
 a 33 3 x + K + a 3n n x = b3
M
 (n) (n)
 a nn nx = b n

O SISTEMA TRIANGULAR PODE SER FACILMENTE RESOLVIDO


ATRAVÉS DE UMA RETROSUBSTITUIÇÃO

(1)
¼ Os elementos a11 ( 2)
, a22 ,K, an( n−−1,1n)−1 são denominados de Pivots

¼ O lado direito do sistema de equações é modificado da mesma forma


que os coeficientes das equações

¼ Melhor tratar o sistema na forma matricial, com o lado direito do sistema


sendo a coluna n+1 da matriz, conforme mostrado a seguir
 a11 a12 L a1n −1 a1n b1 
ai(,kn)+1 = bi( k ) , i = 1,2,K, n a21 a22 L a2 n −1 a2 n b2 
a a32 L a3n −1 a3n b3 
 31 
 M M M M M
 an1 an 2 L ann − a ann bn 

ALGORÍTMO

ELIMINAÇÃO RETROSUBSTITUIÇÃO
For k = 1, n − 1 For i = n,1,−1
For i = k + 1, n sum = 0
aik( k ) For k = i + 1, n
mik = ( k )
akk sum = sum + aik(i ) * xk
For j = k + 1, n + 1 end
aij( k +1) = aij( k ) − mik akj( k ) ai(,in)+1 − sum
xi =
end aii(i )
end end
end
NÚMERO DE OPERAÇÕES:

ELIMINAÇÃO RETROSUBSTITUIÇÃO
n −1 n

∑ (n − k )(n − k + 1) ≈
k =1
1
3
n 3
∑ (i − 1) =
i =1
1
2
n( n − 1) ≈ 12 n 2

¼ O maior custo computacional ocorre no processo de eliminação

¼ Supor que o tempo de cada operação seja de 1 microsegundo t = 10 −6 s

O tempo em segundos de cada parte do algoritmo é mostrado abaixo

n Eliminação Retrosubstituição
10 0.0050 s 0.0008 s
100 5s 0.075 s
1000 5000 s 7.5 s
PIVOTAMENTO

RESOLVER O SISTEMA POR ELMINAÇÃO GAUSSIANA

 x1 + x2 + x3 = 1 1 1 1 1 

 x1 + x2 + 2 x3 = 2 ⇒ 1 1 2 2
 x1 + 2 x2 + 2 x3 = 1 1 2 2 1 

Sistema não singular, e a solução é: x1 = − x2 = x3 = 1


Após o primeiro passo na eliminação, a matriz fica sendo:

1 1 1 1  ( 2)
0 0 1 1 → a22 = 0
0 1 1 0

A eliminação não pode continuar pelo procedimento normal.

Uma solução seria trocar a posição das linhas 2 e 3, o que já fornece a matriz triangular
OUTRO EXEMPLO: RESOLVER O SISTEMA POR ELMINAÇÃO GAUSSIANA

 x1 + x2 + x3 = 1 1 1 1 1

 x1 + 1.0001x2 + 2 x3 = 2 ⇒ 1 1.0001 2 2
 x1 + 2 x2 + 2 x3 = 1 1 2 2 1 

Sistema não singular, e a solução é: x1 = 1 e − x2 = x3 = 1.0001


O sistema triangular obtido após a eliminação sem troca de linhas é:

1 1 1 1 
0 0.0001 1 1 
0 0 9999 10000
O processo de retrosubstituição usando uma precisão de 3 casas decimais fornece:

x1 = 0, x2 = 0, x3 = 1.000 Resultado incorreto

Se as linhas 2 e 3 fossem trocadas durante o processo de eliminação, a solução


também usando uma precisão de 3 casas decimais seria
x1 = 1.000, x2 = −1.000, x3 = 1.000 Resultado correto usando uma
precisão de 3 casas decimais
¼ Para evitar falha catastrófica (divisão por zero) ou resultados errados
é necessário fazer uma escolha criteriosa dos PIVOTS usados na eliminação

 PIVOTAMENTO PARCIAL
 PIVOTAMENTO COMPLETO
PIVOTAMENTO PARCIAL k
No passo k do processo de eliminação
• Escolher r como o menor inteiro tal que k
ark( k ) = max aik( k ) , k ≤ i ≤ n r
• Trocar linhas k e r

PIVOTAMENTO COMPLETO k s
No passo k do processo de eliminação

• Escolher r e s como os menores inteiros tal que k


ars( k ) = max aij( k ) , k ≤ i, j ≤ n r
• Trocar linhas k e r , e colunas k e s
¼ A Eliminação Gaussiana deve ser feita sempre com PIVOTAMENTO
para garantir estabilidade do método

¼ Na grande maioria dos casos, PIVOTAMENTO PARCIAL é suficiente


e deve ser usada no lugar de PIVOTAMENTO COMPLETO

¼ PIVOTAMENTO COMPLETO não é muito usado devido ao grande


tempo computacional gasto no processo de busca do pivot.

¼ PIVOTAMENTO não é necessário em dois casos particulares

MATRIZ DIAGONAL DOMINANTE


n
aii ≥ ∑a
j =1
ij , i = 1,2,K, n.
j ≠i

MATRIZ SIMÉTRICA E POSITIVA-DEFINIDA

A T = A ( aij = a ji ) e xT Ax > 0, ∀ x ≠ 0
%===========================================================================
% MEC 1701 - METODOS NUMERICOS PARA ENGENHARIA MECANICA for k=i+1:n
% MEC 2951 - METODOS NUMERICOS E COMPUTACIONAIS
% if (abs(A(k,i))>pivot)
% Departamento de Engenharia Mecânica pivot=abs(A(k,i));
% PUC-Rio irow=k;
% end
% Prof. : Marcio Carvalho
% Monitor: Oscar Coronado end
%===========================================================================
% Checar se a matriz e singular
% PROGRAMA PARA O RESOLUÇÃO DE UM SISTEMA DE EQUAÇÕES POR ELIMINAÇÃO GAUSSIANA
if (pivot < 1e-10)
% SETEMBRO 2001 success=0;
stop;
%=========================================================================== end

% Comandos de inicialização: Limpeza da memoria do ambiente MatLab % Trocar as linhas i e k

clc for j=i:n


clear all aaux=A(irow,j);
A(irow,j)=A(i,j);
% Mostrar na tela titulo do programa A(i,j)=aaux;
disp(' ' ); end
disp(' ' );
disp(' ELIMINAÇÃO GAUSSIANA ' ); baux = b(irow);
disp(' ---------- --------- ' ); b(irow)=b(i);
b(i)=baux;
% Definição do tamanho do sistema
disp(' ' ); % Proceder com a eliminação dos elementos abaixo da linha i
disp(' ' );
n=input('Entre com o numero de equações : '); for k=i+1:n
disp(' ' ); m=A(k,i)/A(i,i);
disp(' ' ); for j=i:n
% Definiçao da Matriz a ser resolvida A(k,j)=A(k,j)-A(i,j)*m;
end
A=input('Entre a matriz dos coeficientes A(n*n): '); b(k)=b(k)-b(i)*m;
disp(' ' ); end
disp(' ' );
end
% Definição do termo independente (lado direito do sistema)
% retrosubstituição
b=input('Entre o vetor dos valores do lado direito do sistema b(n,1) : ');
disp(' ' ); for i=n:-1:1
disp(' ' );
sum=0;
%-------------------------------------------------------------------------- for j=i+1:n
sum=sum+A(i,j)*x(j,1);
% ELIMINAÇÃO GAUSSIANA end

success=1; x(i,1)=(b(i)-sum)/A(i,i);

for i=1:n end

% Procura um Pivot (Pivotamento Parcial) disp(' A solução do sistema é : ' );

pivot=abs(A(i,i)); disp(' ' );


irow = i; disp(' ' );

x
DECOMPOSIÇÃO LU
¼ Muitas vezes o mesmo sistema é resolvido com
diferentes termos independente (lado direito do sistema)
Ax1 = b1 ; Ax 2 = b 2 ; L
¼ Pode-se evitar o processo repetido de eliminação gaussiana através
de uma decomposição da matriz A

¼ Todo matriz não singular pode ser decomposta como o produto de uma matriz
triangular inferior L e uma matriz triangular superior U
1 0 0 L 0  u11 u12 u13 L u1n 
 l21 1 0 L 0  0 u 22 u 23 L u 2 n 
 
A = LU; L =  l31 l32 1 L 0  ; U =  0 0 u33 L u3n 
 M   M 
l 
ln 2 L ln,n −1 1   0 0 L 0 u nn 
 n1 
¼ Uma vez feita a decomposição, a solução do sistema fica reduzida a solução
de dois sistemas triangulares:
Sistema triangular inferior
{ =b ⇒
L Ux Sistema triangular superior
y
Resolver Ly = b e depois Ux = y
EQUIVALÊNCIA ENTRE DECOMPOSIÇÃO LU E ELIMINAÇÃO GAUSSIANA

¼ A eliminação gaussiana pode ser vista como a determinação


de uma sequência de matrizes A = A (1) , A ( 2 ) , A (3) ,K, A ( n )

 a11
(1) (1)
a12 L a1(1k) L a1(1n) 
 ( 2)

 a22 L a2( 2k) ( 2)
L a2 n 
 L 
tal que A ( k ) = (k ) (k ) 
 0 a kk L akn 
 L 
 a (k ) (k ) 
L ann 
 nk

• Se i ≤ j (elemento acima da diagonal principal) : aij( n ) = L = aij(i +1) = aij(i ) , i ≤ j

• Se i > j (elemento abaixo da diagonal principal) : aij( n ) = L = aij( j +1) = 0, i > j

aij( k +1) = aij( k ) − mik akj( k ) ; k = 1,2,3,K, r = min(i − 1, j )


aij( k +1) = aij( k ) − mik akj( k ) ; k = 1,2,3,K, r = min(i − 1, j )

¼ Calculando o somatório para k=1, …, r, obtém-se:


r r r


k =1
aij( k +1) = ∑
k =1
aij( k ) − ∑
k =1
mik akj( k ) ⇒
r r r

∑a
k =1
( k +1)
ij − ∑a
k =1
(k )
ij = aij( r +1) − aij(1) = aij( r +1) − aij = − ∑m
k =1
(k )
ik a kj ⇒
r
aij = aij( r +1) + ∑m k =1
(k )
ik a kj ⇒

 (i ) i −1
a
 ij

+ m a (k )
ik kj ; i ≤ j∑
⇒ aij =  k =1
j
 0 + m a (k ) ; i > j
 k =1
ik kj ∑
¼ Definindo mii = 1 ; i = 1,2,K, n
p
aij = ∑
k =1
mik akj( k ) , p = min(i, j )
¼ Observe que a expressão anterior representa o produto de duas matrizes

A = LU
Lik = mik (mii = 1), i ≥ k e U kj = akj( k ) , k ≤ j.

 u11 u12 u13 L u1n 


 0 u 22 u 23 L u 2 n 

 0 0 u33 L u3n 
 M 
 0 0 L 0 u nn 

 1 0 0 L 0
 m21 1 0 L 0 p = min( i , j ) = 2
m
 31 m32 1 L 0  a32 = m31u12 + m32u 22 = ∑m ik u kj
 M  k =1
m mn 2 L mn ,n −1 1 
 n1

¼ A matriz L corresponde aos coeficientes mik da eliminação gaussiana e a matriz


U corresponde a matriz triangular superior obtida na eliminação gaussiana
ESQUEMA COMPACTO PARA DECOMPOSIÇÃO LU E ELIMINAÇÃO GAUSSIANA

¼ No algorítmo para decomposição LU apresentado anteriormente, diversos


resultados parciais devem ser armazenados temporariamente antes
do cálculo final de cada elemento da matriz L e U.

¼ Para matrizes muito grandes, isto pode acarretar erros de truncamento


que comprometem o resultado final do cálculo.

¼ Método de Doolittle: O cálculo dos termos são reagrupados, de forma


que resultados parciais não precisem ser armazenados temporariamente.

¼ Em cada passo k da eliminação, os elementos são calculados por:


mkk = 1
k −1
u kj = akj − ∑m
p =1
kp u pj , j = k , k + 1,K, n
k −1
aik − ∑m
p =1
ip u pk

mik = , i = k + 1,K, n
u kk
MÉTODO DE CHOLESKI

¼ Matriz simétrica, positiva-definida

¼ Escolher L e U de forma que U = LT

u kk = mkk e u pk = mkp
1/ 2
 k −1 
mkk =  akk −
 ∑ 2
mkp 

 p =1 
k −1
aik − ∑m
p =1
ip mkp

mik = , i = k + 1,K, n
mkk
MATRIZES DE BANDA

¼ Matrizes onde os elementos diferentes de zero estão localizados em


uma banda centrada na diagonal principal da matriz

¼ As matrizes obtidas em resolução de um problema de valor de contorno


são geralmente de banda, daí a importância do estudo deste tipo de matriz
p
q aij = 0 se j > i + p ou i > j + q
0
Banda da Matriz : w = p + q + 1

¼ A estrutura de banda não é perdida, se não forem realizadas nenhuma


troca de linhas ou coluna (pivotamento parcial ou completo)

¼ As matrizes L e U serão matrizes de banda. mij = 0 se j > i ou i > j + q


uij = 0 se j > i + p ou i > j
EXEMPLO
a a  u u 
a aa  m a' a' 
¼ Sem pivotamento    
A estrutura de banda não é perdida a aaa  ⇒ 1 passo ⇒  m a' a' a' 
 aaaa   a a a a 
 a a a a  a a a a
 a a a   a a a 
 

¼ Com pivotamento (troca linha 1 e 3) a aaa  u u u u 


a aa  m a' a' a' 
A estrutura de banda é perdida    
a a  ⇒ 1 passo ⇒  m a' a' a' 
 aaaa   a a a a 
 a a a a  a a a a
 a a a   a a a 
 

¼ Os algoritmos devem ser escritos levando em conta a estrutura da matriz

¼ Grande economia de tempo computacional


MATRIZ TRIDIAGONAL  a1 c1 0 L 0 
b a c L 0 
 2 2 2
¼ Matriz de banda com p = q = 1 M 
0 bn −1 an −1 cn −1 
0 0 L bn an 

¼ Decomposição LU da matriz triagonal:


 a1 c1 0 L 0   1 0 0 L 0 α1 c1 0 L 0 
b a c L 0   β 2 1 0 L 0  0 α 2 c2 L 0 
 2 2 2  M 
M =
   M 
0 bn −1 an −1 cn −1   0 β n −1 1 0  0 0 α n −1 cn −1 
0 0 L bn   
an   0 0 L β n 1  0 0 L 0 α n 
 144 42444 3 144424443
L U
bk
α1 = a1 , β k = , α k = ak − β k ck −1 ; k = 2,3,K, n
α k −1
¼ A solução do sistema é feita através de uma resolução de sistemas triangulares

g1 = f1 , g i = f i − β i g i −1 ; i = 2,3,K, n
g g −c x
xn = n , xi = i i i +1 ; i = n − 1, n − 1,K,2,1
αn αi
ANÁLISE DE ERRO DA DECOMPOSIÇÃO LU

¼ Considere o sistema Ax = b

¼ Asolução do sistema sempre apresenta algum erro devido a


erros de truncamento que ocorrem durante o processo

¼ Denominar solução obtida como x

¼ Definir vetor resíduo como R = b − Ax

R=0 ⇒ x=x Solução calculada é a solução exata

¼ Espera-se que quando o vetor resíduo seja próximo a zero,


a solução calculada seja próxima da solução exata

¼ Isto nem sempre é verdade !


Considere o exemplo A = 10..2969
2161
0.8648  e b =  0.8642 
0 . 1441   0.1440 
   

Solução exata: x =  2.0000 


 − 2.0000 
Solução obtida:

x =  −00.9911  ⇒
 .4870 
 0 . 8642   1 .2969 0 . 8648  0. 9911   − 10 −8 
R = b − Ax =  0.1440  −  0.2161 0.1441 − 0.4870  =  −8 
      10 

Apesar do vetor resíduo ser muito pequeno, a solução obtida


não é muito distante da solução exata

Este problema pode ser explicado analisando-se o processo


de eliminação gaussiana
Processo de eliminação gaussiana

a21 0.2161
( 2)
a22 = a22 − a12 = 0.1441 − × 0.8648 = 0.1441 − 0.1440999923 ≈ 10 −8
a11 1.2969
a 0.2161
b2( 2) = b2 − 21 b1 = 0.1440 − × 0.8642 = 0.1440 − 0.1440000154 ≈ 10 −8
a11 1.2969
b2( 2)
⇒ x2 = ( 2) = −0.4870
a22

¼ Uma pequena variação no elemento 0.1441 causa uma


grande variação no elemento a22( 2)
e consequentemente em x2

¼ Para uma análise da precisão da eliminação gaussianda,


é necessário usar o conceito de norma de vetores e matrizes
NORMA DE VETOR E MATRIZ

¼ Escalar não negativo que em algum sentido mede a


magnitude de um vetor ou matriz
¼ Norma p de um vetor

x p
( p
= x1 + x2
p
+ L + xn )
p 1/ p
,1≤ p < ∞

 Norma Euclideana: p=2 ( 2


x 2 = x1 + x2 + L + xn
2
)
2 1/ 2

 Norma do máximo: p=infinito x ∞


= max xi
1≤i ≤ n

¼ Propriedades de uma Norma

x > 0, se x ≠ 0 e x = 0, se x = 0
αx = α x , α escalar
x+y ≤ x + y
Ax
¼ Norma de uma Matriz A = max
x≠ 0 x
n
 Para Norma do máximo, pode-se mostrar que A ∞
= max
1≤ i ≤ n
∑a
j =1
ij

 Relação entre a norma de um vetor e de uma matriz: Ax ≤ A x

ANÁLISE DE PERTURBAÇÃO

¼ Analisar o efeito de pequenas perturbações


na matriz A e vetor b na solução x

Ax = b ⇒ x = A −1b
A (x + δx) = (b + δb) ⇒ δx = A −1δb ⇒ δx ≤ A −1 δb
(A + δA )(x + δx) = b ⇒ Aδx + δA(x + δx) = 0 ⇒ δx = − A −1δA(x + δx)
−1 δx −1 δA
δ x ≤ A δA x + δ x ⇒ ≤ A A
x + δx 1424 3 A
K (A)
δx δb
Como b = Ax ⇒ b ≤ A x ⇒ ≤ K ( A)
x b

Condicionamento da matriz

Se o condicionamento da matriz for alto, pequenas perturbações


na matriz A e no vetor b provacam grandes perturbações na solução

A Matriz é dita mal-condicionada e a solução do problema torna-se imprecisa

¼ Para determinar o condionamento de uma matriz é necessário calcular


a norma da matriz inversa, que normalmente não é conhecida

¼ No exemplo anterior: A −1 = 108 ×  −00.1441 − 0.8648 



 .2161 1.2969 
⇒ A −1 = (1.2969 + 0.2161) × 108 = 1.513 × 108
A = (1.2969 + 0.8648) = 2.1671
⇒ K ( A) ≈ 3.3 × 108 → Matriz mal - condicionada
MÉTODOS ITERATIVOS

Fornece uma sequência de soluções aproximadas que convergem


quando o número de passos tende a infinito

x ( 0) ⇒ x (1) ⇒ x ( 2) ⇒ L ⇒ x ( k )

Chute inicial
lim x ( k ) = x
k →∞

Usado para matrizes esparsas e grandes


Menor necessidade de memória de armazenamento
Eliminação Gaussiana “enche” a matriz
Problemas de convergência
MÉTODO DE JACOBI

O sistema de equações pode ser escrito como


n

∑a
j =1
ij x j = bi , para i = 1,2,K, n

n
− ∑a x
j =1
ij j + bi
n
aii xi + ∑a x
j =1
ij j = bi ⇒ xi =
j ≠i

aii
, para i = 1,2,K, n
j ≠i

No Método de Jacobi, a sequência de aproximações é obtida por:

n
− ∑a
j =1
(k )
ij x j + bi
j ≠i
xi( k +1) = , para i = 1,2,K, n
aii
MÉTODO DE GAUSS-SEIDEL

No método de Jacobi, os novos valores de x só são usados no próximo passo

No método de Gauss-Seidel, os novos valores de x são usados


a medida que eles são obtidos
n Para j<1, os novos valores de
∑a
j =1
ij x j = bi , para i = 1,2,K, n xj já foram calculados

i −1 n

i −1 n
− ∑a ij x j − ∑a ij x j + bi

j =1
aij x j + aii xi + ∑
j =i +1
aij x j = bi ⇒ xi =
j =1

aii
j =i +1
, para i = 1,2,K, n

No Método de Gauss-Seidel, a sequência de aproximações é obtida por:

i −1 n
− ∑
j =1
aij x (jk +1) − ∑a x
j = i +1
ij
(k )
j + bi
xi( k +1) = , para i = 1,2,K, n
aii
 4 −1 −1 0  1
 − 1 4 0 − 1  2
EXEMPLO: Resolver Ax = b A =  − 1 0 4 − 1 ; b =  0 
 0 −1 −1 4  1
 0    
 
Chute inicial : x ( 0) =  00 
 0
 
MÉTODO DE JACOBI

1 2 0 1
x1(1) = = 0.25 ; x2(1) = = 0.5 ; x3(1) = = 0.0 ; x4(1) = = 0.25
4 4 4 4
− (−1) × 0.5 − (−1) × 0.0 + (0.0) × 0.25 + 1
x1( 2) = = 0.375 ; x2( 2) = L
4

k X1(k) X2(k) X3(k) X4(k)


0 0.0 0.0 0.0 0.0
1 0.25 0.5 0.0 0.25
2 0.375 0.625 0.125 0.375
3 0.4375 0.6875 0.1875 0.4375

8 0.49805 0.74793 0.24793 0.49805


MÉTODO DE GAUSS-SEIDEL

1 − (−1) × 0.25 + 2
x1(1) = = 0.25 ; x2(1) = = 0.5625 ;
4 4
− (−1) × 0.25 + 0 − (−1) × 0.5625 − (−1) × 0.0625 + 1
x3(1) = = 0.0625 ; x4(1) = = 0.40625
4 4

k X1(k) X2(k) X3(k) X4(k)


0 0.0 0.0 0.0 0.0
1 0.25 0.5625 0.0625 0.40625
2 0.40625 0.70312 0.20312 0.47656
3 0.47656 0.73828 0.23828 0.49854

5 0.49854 0.74927 0.24927 0.49963

De um modo geral, os dois métodos podem ser escritos como x ( k +1) = B x ( k ) + c


Os diferentes métodos possuem diferentes formas para matriz B e o vetor c.
Uma matriz A pode ser decomposta na soma de três matrizes:

Diagonal + Triangular Superior + Triangular Inferior

A = D(L + I + U)
¼ O Método de Jacobi pode ser escrito como:
n
− ∑a
j =1
(k )
ij x j + bi

, para i = 1,2,K, n ⇒ x ( k +1) = −(L + U )x ( k ) + D −1b


j ≠i
xi( k +1) =
aii

B J = −(L + U )
¼ O Método de Gauss-Seidel pode ser escrito como:
i −1 n
− ∑
j =1
aij x (jk +1) − ∑a
j =i +1
(k )
ij x j + bi
xi( k +1) = , para i = 1,2,K, n ⇒
aii
x ( k +1) = −Lx ( k +1) − Ux ( k ) + D −1b

B GS = −(I + L ) U
−1
ANÁLISE DE CONVERGÊNCIA

x ( k +1) = B x ( k ) + c
Se x é solução do sistema Ax = b : x = B x + c

O erro de cada aproximação x(k) é obtido pela subtração das equações

x ( k +1) − x = B (x ( k ) − x) = B 2 (x ( k −1) − x) = L = B k +1(x ( 0) − x)

Vamos supor que B tenha n autovetores linearmente independentes. Esses


n vetores formam uma base do espaço vetorial. Qualquer vetor pode
ser escrito como uma combinação linear dos autovetores.

Autovalores : λ1 , λ2 ,L, λn
Autovetores : u1 , u 2 ,L, u n
x ( 0) − x = α 1u1 + α 2u 2 + L + α n u n
x (1) − x = B(x ( 0) − x) = α 1Bu1 + α 2 Bu 2 + L + α n Bu n ⇒
⇒ x (1) − x = α 1λ1u1 + α 2 λ2u 2 + L + α n λn u n
M
x ( k ) − x = α 1λ1k u1 + α 2 λk2u 2 + L + α n λkn u n

¼ Raio Espectral de B: ρ (B) = max λi (B) < 1


1≤i ≤ n

O processo iterativo converge somente se somente se ρ (B) < 1

A taxa de convergência é dada por R = − log10 (ρ (B) )

Os autovalores de B não são conhecidos e esta condição não é facilmente


aplicada. Uma condição suficiente que pode ser aplicada é que
para o processo iterativo convergir: B <1
MÉTODO DE JACOBI
aij n aij
B J = −(L + U ) ⇒ bij =
aii
, i ≠ j bii = 0 B J = max
1≤i ≤ n
∑a
j =1 ii
j ≠i

Se B for diagonal-dominante B J < 1 → Processo Converge

MÉTODO DE GAUSS-SEIDEL
n y
B GS = −(I + L ) U
−1
B GS = max
x =0
∑x
j =1

, y = B GS x

j ≠i

n i −1 n
y ∞
= yk ⇒ yk = ∑b
j =1
kj x j = ∑b
j =1
kj y j + ∑b
j =i +1
kj x j

n aij i −1 aij
y ∞
= yk ≤ sk y ∞
+ rk x ∞ , onde ri = ∑
j = i +1 aii
, si = ∑a
j =1 ii

ri
B GS ∞
≤ max → Processo converge se A for diagonal dominante
1≤i ≤ n 1 − s
i
MÉTODO SOR (SUCCESSIVE OVERRELAXATION)

¼ Modificação do Método de Gauss-Seidel para melhorar a taxa de convergência


i −1 n i −1 n
− ∑
j =1
aij x (jk +1) − ∑
j =i +1
aij x (jk ) + bi − ∑
j =1
aij x (jk +1) − ∑
j = i +1
aij x (jk ) − aii xi( k ) + bi
aii xi( k )
xi( k +1) = = +
aii aii aii
i −1 n
− ∑
j =1
aij x (jk +1) − ∑a x
j =i
ij
(k )
j + bi
xi( k +1) = xi( k ) + ri( k ) , onde ri( k ) =
aii

SOR ⇒ xi( k +1) = xi( k ) + ω ri( k ) ω: Parâmetro de Relaxação

Bω = (I + ωL) −1 [(1 − ω )I − ωU ]
0 <ω < 2

Вам также может понравиться