Métodos Computacionais
5 Sistemas de equações lineares
Prof. Raul Durand
Métodos
Computacionais Sistemas de equações lineares 5 Sistemas de equações lineares
Sistemas de equações lineares
Uma equação é linear se cada termo contém não mais do que uma variável e cada variável se encontra na primeira
potência. Um conjunto de equações lineares cujas variáveis estão relacionadas é denominado de sistema de equações
lineares, por exemplo 




x + 2y + z = 8
x + y − 2z = −3
x + y − z = 0
=⇒


1 2 1
1 1 −2
1 1 −1




x
y
z

 =


8
−3
0


O sistema acima pode ser escrito na forma compacta como Ax = b onde A é a matriz de coeficientes, b é o vetor de
termos independentes e x é o vetor de incognitas ou vetor solução.
Vários problemas de engenharia podem ser interpretados e resolvidos
por meio de sistemas de equações lineares. Dentre deles, podem ser
citados:
1. Cálculo da razão de escoamento de um sistema hidráulico.
2. Determinação das forças das barras de uma treliça.
3. Determinação de potência em redes elétricas.
4. Previsão da concentração de reagentes sujeitos à reações quími-
cas simultâneas, etc.
? Você sabia?
Análises de tensão e deformação em
sólidos precisam da solução de sis-
temas com miles e a até milhões
de equações. Tais sistemas são im-
possíveis de serem resolvidos sem o
auxílio do computador.
Raul
Durand 1
Métodos
Computacionais Sistemas de equações lineares 5 Sistemas de equações lineares
Classificação
A classificação de um sistema é dado em função das suas possíveis
soluções.
Sistema consistente: É um sistema que possui pelo menos uma
solução. Ele ainda pode ser:
Determinado: Possui apenas uma solução.
(
x + y = 3
x − y = 2
Indeterminado: Possui infinitas soluções. O determinante da
matriz de coeficientes é igual a zero.
(
x + y = 2
2x + 2y = 4
Sistema inconsistente: Sistema sem solução.
(
x − y = 1
−2x + 2y = 4
0 1 2 3 4
−2
0
2 x + y = 3
x − y = 2
x
y
Sistema determinado
0 1 2 3 4
−2
0
2
0
x + y = 2
2x + 2y = 4
x
y
Sistema indeterminado
0 1 2 3 4
2
4
6
x − y = 1
−2x + 2y = 4
x
y
Sistema inconsistente
Raul
Durand 2
Métodos
Computacionais Sistemas de equações lineares 5 Sistemas de equações lineares
Métodos de solução
Métodos exatos ou diretos:
São métodos que fornecem a solução exata do sistema utilizando
um número finito de operações. Entre os métodos de solução
diretos estão:
1. Solução por inversão da matriz de coeficientes
2. Método de eliminação de Gauss.
Métodos iterativos:
São aqueles que permitem determinar a solução do sistema
com uma dada precisão através da aplicação de um processo
repetitivo convergente. Entre os métodos iterativos estão os
seguintes:
1. Método Gauss-Jacobi
2. Métod o Gauss-Seidel
3. Gradientes conjugados
4. Outros.
? Você sabia?
2000 A.C. os babilônios conheciam um
método para resolver sistemas lineares 2×2.
Posteriormente, o Livro Os nove capítu-
los da arte matemática, escrito na China
arredor de 200 A.C., apresenta um método
para resolver sistemas lineares 3 × 3.
Raul
Durand 3
Métodos
Computacionais Sistemas de equações lineares 5 Sistemas de equações lineares
Sistemas triangulares
Um sistema no qual a matriz de coeficientes corresponde a uma matriz triangular superior ou inferior é chamado de
sistema triangular.







a11 a12 a13 · · · a1n
0 a22 a23 · · · a2n
0 0 a33 · · · a3n
.
.
.
.
.
.
.
.
.
...
.
.
.
0 0 0 · · · ann














x1
x2
x3
.
.
.
xn







=







b1
b2
b3
.
.
.
bn







com aii ̸= 0.
A solução de um sistema triangular superior pode ser obtida pelo processo chamado de retro-substituição. Este processo
pode ser expresso matematicamente como:



xn = bn
ann
xi =
bi−
Pn
j=i+1
aij xj
aii
para i = n−1 . . . 1
Sistemas não triangulares podem ser reduzidos a sistemas triangulares equivalentes. Sistemas equivalentes são aqueles
sistemas de equações que embora apresentem coeficientes diferentes possuem o mesmo vetor solução.
Raul
Durand 4
Métodos
Computacionais Sistemas de equações lineares 5 Sistemas de equações lineares
Eliminação de Gauss
O método de Gauss é um método direto que consiste em transformar o sis-
tema de equações em um sistema triangular superior equivalente através de
operações elementares sobre as linhas do sistema original. Estas operações
são:
1. Multiplicação de uma linha por um escalar diferente de zero.
2. Adição a uma linha o múltiplo de outra.
3. Troca de duas linhas
O número de operações para resolver um sistema de equações usando a elim-
inação de Gauss é proporcional a n3
onde n é o número de equações. Assim
é dito que a complexidade aritmética deste método é O(n3
).
Exemplo
Determine a solução do sistema de equações utilizando o método de eliminação
de Gauss e retro-substituição.


3 2 4
1 1 2
4 3 2




x1
x2
x3

 =


1
2
3


Matriz aumentada:
[A|b] =
"
3 2 4 1
1 1 2 2
4 3 2 3
#
Eliminação:
m21 = 1/3, m31 = 4/3
L2 ← L2 − m21L1
L3 ← L3 − m31L1
"
3 2 4 1
0 1/3 2/3 5/3
0 1/3 − 10/3 5/3
#
m32 = 1
L3 ← L3 − m32L2
"
3 2 4 1
0 1/3 2/3 5/3
0 0 −4 0
#
Retro-substituição:
x =
−3
5
0
!
Raul
Durand 5
Métodos
Computacionais Sistemas de equações lineares 5 Sistemas de equações lineares
Função que realiza a eliminação de Gauss
function eliminar!(A, B)
# A: matriz de coeficientes
# B: vetor de termos independentes
# Esta função modifica os argumentos A e B
n = size(A,1) # número de linhas
# eliminação simples (sem pivoteamento)
for k in 1:n-1 # iteração nos pivôs
pivo = A[k,k]
for i in k+1:n # iteração nas linhas por baixo do pivô
m = A[i,k]/pivo
# eliminação na matriz de coeficientes
for j=1:n
A[i,j] = A[i,j] - m*A[k,j] # subtração de linhas
end
# eliminação no vetor de termos independentes
B[i] = B[i] - m*B[k]
end
end
end
Raul
Durand 6
Métodos
Computacionais Sistemas de equações lineares 5 Sistemas de equações lineares
Função que realiza a retro-substituição
function retrosubstituir(A, B)
# A: matriz de coeficientes (triangular superior)
# B: vetor de termos independentes
# A e B já devem ter passado pela eliminação
# Esta função retorna a solução do sistema
n = size(A,1) # número de linhas
# Inicialização do vetor solução
X = zeros(n)
# retro-substituição
X[n] = B[n]/A[n,n]
for i in n-1:-1:1
soma = 0.0
for j=i+1:n
soma = soma + A[i,j]*X[j]
end
X[i] = (B[i] - soma)/ A[i,i]
end
return X
end
Raul
Durand 7
Métodos
Computacionais Sistemas de equações lineares 5 Sistemas de equações lineares
Pivoteamento
Se durante o processo de eliminação se apresenta um pivô igual a zero, então é necessário utilizar a estratégia do
pivoteamento de forma a evitar a divisão por zero.
Se o pivô tem valor pequeno em relação aos outros elementos da matriz é também conveniente utilizar o pivoteamento
de forma a minimizar a propagação de erros de truncamento e/ou arredondamento na solução.
Existem dois tipos de pivoteamento:
Pivoteamento parcial: Na eliminação de uma coluna, procura-se o termo com maior valor absoluto debaixo do pivô.
Quando achado troca-se a linha correspondente com a linha do pivô. Desta forma o pivô é substituído.





3x1 + 2x2 + 1x3 − 1x4 = 5
0x1 + 1x2 + 0x3 + 3x4 = 6
0x1 − 3x2 − 5x3 + 7x4 = 7
0x1 + 2x2 + 4x3 + 0x4 = 8
parcial
−
−
−
−
−
→





3x1 + 2x2 + 1x3 − 1x4 = 5
0x1 − 3x2 − 5x3 + 7x4 = 7
0x1 + 1x2 + 0x3 + 3x4 = 6
0x1 + 2x2 + 4x3 + 0x4 = 8
Pivoteamento total: Neste caso procura-se o termo com maior valor absoluto não somente abaixo do pivô senão
também nas colunas restantes.





3x1 + 2x2 + 1x3 − 1x4 = 5
0x1 + 1x2 + 0x3 + 3x4 = 6
0x1 − 3x2 − 5x3 + 7x4 = 7
0x1 + 2x2 + 4x3 + 0x4 = 8
total
−
−
−
→





3x1 − 1x4 + 1x3 + 2x2 = 5
0x1 + 7x4 − 5x3 − 3x2 = 7
0x1 + 3x4 + 0x3 + 1x2 = 6
0x1 + 0x4 + 4x3 + 2x2 = 8
Raul
Durand 8
Métodos
Computacionais Sistemas de equações lineares 5 Sistemas de equações lineares
Exemplo
Resolver o sistema de equações utilizando pivoteamento
parcial. 

2 2 −1
3 3 1
1 −1 5




x1
x2
x3

 =


3
7
5


Solução:
Matriz aumentada:
[A|b] =
"
2 2 −1 3
3 3 1 7
1 −1 5 5
#
Troca de linhas:
L1 ↔ L2
"
3 3 1 7
2 2 −1 3
1 −1 5 5
#
Eliminação:
m21 = 2/3, m31 = 1/3
L2 ← L2 − m21L1
L3 ← L3 − m31L1
"
3 3 1 7
0 0 −5/3 −5/3
0 −2 14/3 8/3
#
Troca de linhas:
L2 ↔ L3
"
3 3 1 7
0 −2 14/3 8/3
0 0 −5/3 −5/3
#
Eliminação: m32 = 0/(−2)
Retro-substituição:
x =
1
1
1
!
Raul
Durand 9
Métodos
Computacionais Sistemas de equações lineares 5 Sistemas de equações lineares
Exercícios 5.1
1. Quais são os tipos de sistemas de equações lineares?
Descreva cada um deles.
2. Qual é a diferença entre sistemas determinados e
não determinados?
3. Como se classificam os métodos de solução de sis-
temas lineares?
4. O que é um sistema triangular?
5. Para que serve o processo de retro-substituição?
6. Quais são as operações elementares que podem ser
realizadas na solução de um sistema de equações
pelo método de Gauss?
7. Qual é a diferença entre pivoteamento parcial e piv-
oteamento total?
8. Em que casos se deve usar pivoteamento?
9. Qual é a vantagem dos métodos iterativos sobre os
métodos de solução diretos?
10. Utilizando o método de Gauss (sem pivoteamento)
determine o vetor solução dos sistemas abaixo.





x1 − x2 + x3 = 1
x1 + x2 + 4x3 = 8
3x1 + 2x2 − x3 = 9





5x1 − 3x2 − 7x3 = 4
10x1 + 6x2 − 12x3 = 0
5x1 − 5x2 − 4x3 = 12
11. Utilizando o método de Gauss com pivoteamento
parcial determine o vetor solução dos sistema
abaixo.





2x1 + 2x2 − x3 = 3
3x1 + 3x2 + x3 = 7
x1 − x2 − 5x3 = −5









x1 + 3x2 + x3 =
x1 + 2x2 + x3 − 4x4 =
− x2 + 3x4 =
4x2 − x3 + 8x4 =
Raul
Durand 10
Métodos
Computacionais Sistemas de equações lineares 5 Sistemas de equações lineares
Decomposição LU
O método de decomposição ou fatoração LU é um método
direto para a solução de sistemas lineares.
Uma matriz quadrada pode ser decomposta no produto de
outras duas matrizes, a primeira triangular inferior L e a
segunda triangular superior U tal que:
A = LU
Se o determinante de uma matriz quadrada é diferente de
zero, então existem várias possíveis combinações de fatores
LU. Contudo , existe apenas uma única decomposição A =
LU onde L possui a diagonal principal unitária.
Uma das formas de determinar os fatores L e U é por meio do
processo de eliminação de Gauss. A complexidade aritmética
da decomposição LU é O(n3
).
Solução de um sistema usando decomposição
LU
Considerando que A = LU, um sistema Ax = b é
reescrito como
LUx = b
Seja y = Ux, a solução deste sistema acima pode ser
obtido pela solução dos sistemas abaixo:
Ly = b com subst. para frente (O(n2
))
Ux = y com retro-substituição (O(n2
))
A determinação dos fatores L e U é especialmente
útil no caso em que se queira resolver vários sistemas
de equações com a mesma matriz de coeficientes A.
Raul
Durand 11
Métodos
Computacionais Sistemas de equações lineares 5 Sistemas de equações lineares
Exemplo
Determine a decomposição LU da matriz de coeficientes do sistema abaixo. Posteriormente determine a solução do
sistema utilizando os fatores L e U. 




3x1 + 2x2 + 4x3 = 1
x1 + x2 + 2x3 = 2
4x1 + 3x2 + 2x3 = 3
Solução:
Matriz de coeficientes:


3 2 4
1 1 2
4 3 2


Matriz de coeficientes após eliminação:


3 2 4
0 1/3 2/3
0 0 −4


Armazenamento dos coeficientes utilizados na eliminação
nos locais previamente zerados:


3 2 4
1/3 1/3 2/3
4/3 1 −4


Os fatores L e U são dados por:
L =


1 0 0
1/3 1 0
4/3 1 1

 U =


3 2 4
0 1/3 2/3
0 0 −4


Raul
Durand 12
Métodos
Computacionais Sistemas de equações lineares 5 Sistemas de equações lineares
Solução do sistema Ly = b: 

1 0 0
1/3 1 0
4/3 1 1




y1
y2
y3

 =


1
2
3


utilizando substituição para frente obtem-se:
y =


1
5/3
0


Solução do sistema Ux = y: 

3 2 4
0 1/3 2/3
0 0 −4




x1
x2
x3

 =


1
5/3
0


utilizando retro-substituição obtem-se:
x =


−3
5
0


Raul
Durand 13
Métodos
Computacionais Sistemas de equações lineares 5 Sistemas de equações lineares
Decomposição LU com pivoteamento parcial
Dado que a solução de alguns sistemas precisa de pivoteamento, a fatoração LU com pivoteamento parcial leva em conta
a troca de linhas da matriz de coeficientes por meio da matriz de permutação P . Assim um um sistema Ax = b pode
ser reescrito como
LUx = P b
Uma matriz de permutação quando multiplicada a outra matriz permite trocar a ordem das linhas desta última. Por
exemplo:
P =


0 1 0
0 0 1
1 0 0

 A =


1 10 100
2 20 200
3 30 300

 P A =


2 20 200
3 30 300
1 10 100


Solução de um sistema
Uma vez obtidos os fatores L, U e P da matriz de coeficientes de um sistema, o vetor solução x pode ser obtido pela
solução dos seguintes sistemas triangulares
Ly = P b utilizando substituição para frente (O(n2
))
Ux = y utilizando retro-substituição (O(n2
))
Raul
Durand 14
Métodos
Computacionais Sistemas de equações lineares 5 Sistemas de equações lineares
Exemplo
Determine a decomposição LU da matriz de coeficientes do sistema abaixo. Posteriormente determine a solução do
sistema utilizando os fatores P , L e U. 




3x1 − 4x2 + x3 = 9
x1 + 2x2 + 2x3 = 3
4x1 − 3x3 + = −2
Solução:
Matriz de coeficientes:


3 −1 1
1 2 2
4 0 −2


Matriz aumentada:


3 −1 1 1 0 0
1 2 2 0 1 0
4 0 −2 0 0 1


Matriz aumentada após decomposição e permutação:


4 0 −3 0 0 1
3/4 −4 13/4 1 0 0
1/4 −1/2 35/8 0 1 0


onde os valores em vermelho representam os coeficientes utilizados durante a
eliminação.
Os fatores L, U e P são dados por:
L =


1 0 0
3/4 1 0
1/4 −1/2 1

 U =


4 0 −3
0 −4 13/4
0 0 35/8

 P =


0 0 1
1 0 0
0 1 0


Raul
Durand 15
Métodos
Computacionais Sistemas de equações lineares 5 Sistemas de equações lineares
Solução do sistema Ly = P b: 

1 0 0
3/4 1 0
1/4 −1/2 1




y1
y2
y3

 =


0 0 1
1 0 0
0 1 0




9
3
−2


utilizando substituição para frente obtem-se:
y =


−2
21/2
35/4


Solução do sistema Ux = y: 

4 0 −3
0 −4 13/4
0 0 35/8




x1
x2
x3

 =


−2
21/2
35/4


utilizando retro-substituição obtem-se:
x =


1
−1
2


Raul
Durand 16
Métodos
Computacionais Sistemas de equações lineares 5 Sistemas de equações lineares
Exercícios 5.2
1. Em que casos é conveniente o uso da decomposição
LU na solução de sistemas lineares?
2. Em que caso os fatores da decomposição LU é única?
3. O que é uma matriz de permutação?
4. Os sistemas abaixo apresentam a mesma matriz de
coeficientes. Determina a solução desses sistemas
utilizando a decomposição LU (sem pivoteamento).





2x1 − x2 − 2x3 = −11
2x1 + x2 + 3x3 = 5
3x1 + x2 − x3 = −5





2x1 − x2 − 2x3 = 5
2x1 + x2 + 3x3 = 12
3x1 + x2 − x3 = 12
5. Os sistemas abaixo apresentam a mesma matriz de
coeficientes. Se resolvidos pelo método da elimi-
nação de Gauss haverá a necessidade de utilizar piv-
oteamento. Determina a solução desses sistemas uti-
lizando a decomposição LU com pivoteamento par-
cial.





2x2 + x3 = 7
3x1 − 4x2 + 3x3 = 4
−2x1 + 2x2 = 2





2x2 + x3 = 5
3x1 − 4x2 + 3x3 = 4
−2x1 + 2x2 = −
Raul
Durand 17
Métodos
Computacionais Sistemas de equações lineares 5 Sistemas de equações lineares
Métodos iterativos
Métodos iterativos permitem calcular aproximações sucessivas da solução de um sistema a partir de um vetor com valores
iniciais.
Seja o sistema Ax = b, este pode ser rescrito na forma x = Cx + G, onde C é uma matriz n × n e G é um vetor. Esta
equação pode ser colocada como uma equação de recorrência
xi = Cxi−1 + G
O processo é repetido até que a diferença entre duas aproximações sucessivas para cada incognita seja menor a uma dada
tolerância. Assim o erro na iteração i pode ser calculado por
E = max(|xi − xi−1|) < tol
Entre os métodos iterativos utilizados para resolver sistemas lineares têm-se: Gauss- Jacobi, Gauss-Seidel, Gradientes
conjugados, etc.
Métodos iterativos são particularmente úteis na solução de sistema esparsos. Nestes sistemas, a maioria dos valores na
matriz de coeficientes são iguais a zero.
Raul
Durand 18
Métodos
Computacionais Sistemas de equações lineares 5 Sistemas de equações lineares
Método Gauss-Jacobi
Este método será apresentado para sistemas de 3 equações; contudo pode ser extendido para sistemas de qualquer número
de equações.
Seja o sistema Ax = b onde x = [x y z]T
, ele pode ser escrito como:





a11x + a12y + a13z = b1
a21x + a22y + a23z = b2
a31x + a32y + a33z = b3
da onde as incognitas podem ser isoladas como
x = 1
a11
(b1 − a12y − a13z) y = 1
a22
(b2 − a21x − a23z) z = 1
a33
(b3 − a31x − a32y)
Colocando as equações de forma recorrente obtem-se
xk = 1
a11
(b1 − a12yk−1 − a13zk−1)
yk = 1
a22
(b2 − a21xk−1 − a13zk−1)
zk = 1
a33
(b3 − a31xk−1 − a32yk−1)
Aproximações sucessivas a partir de valores iniciais para as incognitas (x0, y0 e z0).
Raul
Durand 19
Métodos
Computacionais Sistemas de equações lineares 5 Sistemas de equações lineares
Matriz diagonal dominante
Uma condição suficiente mas não necessária para a convergência é que a matriz de coeficientes dos sistema seja diagonal
dominante. Uma matriz é diagonal dominante se para cada equação i, o escalar αi atenda a condição
αi =
Pn
j=1,j̸=i |aij|
|aii|
≤ 1
Esta condição é também conhecida como critério das linhas. Caso uma matriz atenda o critério das linhas, o método
Gauss-Jacobi será convergente. Já no caso em que uma matriz não atenda este critério, é possivel que o método ainda
seja convergente.
Em algúns casos, um sistema de equações cuja matriz de coeficientes não é diagonal dominante, pode ser convertido
em um a partir da conveniente troca de linhas. Ao mesmo tempo, a conveniente troca de linhas pode fazer com que o
método Gauss-Jacobi seja convergente em sistemas que não antendem o critério das linhas.
Toda matriz diagonal dominante é não singular. Desta forma, um sistema cuja matriz de coeficientes é uma matriz
diagonal dominante é, portanto, um sistema determinado.
Raul
Durand 20
Métodos
Computacionais Sistemas de equações lineares 5 Sistemas de equações lineares
Exemplo
Resolva o sistema de equações abaixo pelo método Gauss-Jacobi utilizando os valores iniciais x0 = 0, y0 = 0 e z0 = 0,
com tolerância de 0.01. 




4x − 2y + z = 21
x + 8y − 2z = −23
x − y + 5z = 30
Solução:
Pode facilmente ser verificado que o sistema é diagonal
dominante. Assim,tem-se a certeza de que o método
Gauss-Jacobi é convergente para este sistema. A seguir
realiza-se o cálculo de aproximações do vetor solução uti-
lizando as equações de recorrência. O processo é repetido
até que o erro para todas incognitas seja menor ou igual
que a tolerância.
Resultados:
Método Gauss-Jacobi
1: X = [5.25, -2.875, 6.0] Erro máx = 6.0
2: X = [2.312, -2.031, 4.375] Erro máx = 2.9375
3: X = [3.141, -2.07, 5.131] Erro máx = 0.8281
4: X = [2.932, -1.985, 4.958] Erro máx = 0.2086
5: X = [3.018, -2.002, 5.017] Erro máx = 0.0861
6: X = [2.995, -1.998, 4.996] Erro máx = 0.0233
7: X = [3.002, -2.0, 5.001] Erro máx = 0.0071
O vetor solução do sistema é: [3.002, -2.0004, 5.0014]
Raul
Durand 21
Métodos
Computacionais Sistemas de equações lineares 5 Sistemas de equações lineares
Método Gauss-Seidel
Este método é semelhante ao método Gauss-Jacobi, porem as equações de recorrência são um pouco diferentes. Em lugar
de considerar somente valores aproximados na iteração anterior, este método considera valores que já foram obtidos na
iteração atual. Desta forma o método Gauss-Seidel tende a ser mais rápido que o método Gauss-Jacobi.
Seja, por exemplo, o sistema Ax = b onde x = [x y z]T
:





a11x + a12y + a13z = b1
a21x + a22y + a23z = b2
a31x + a32y + a33z = b3
As equações de recorrência são dadas por:
xk = 1
a11
(b1 − a12yk−1 − a13zk−1)
yk = 1
a22
(b2 − a21xk − a23zk−1)
zk = 1
a33
(b3 − a31xk − a32yk)
Se a matriz de coeficientes é diagonal dominante o método Gauss-Seidel é sempre convergente, caso contrário, há ainda
a possibilidade de que o método possa ser convergente.
Raul
Durand 22
Métodos
Computacionais Sistemas de equações lineares 5 Sistemas de equações lineares
Exemplo
Resolva o sistema de equações abaixo pelo método Gauss-Seidel utilizando os valores iniciais x0 = 0, y0 = 0 e z0 = 0
com tolerância de 0.01. 




4x − 2y + z = 21
x + 8y − 2z = −23
x − y + 5z = 30
Solução:
O método Gauss-Seidel é convergente pois a matriz de
coeficientes do sistema é diagonal dominante. As incong-
nitas são aproximadas sucessivamente através do uso das
equações de recorrência utilizando sempre os valores cal-
culados mais recentes. O processo é repetido até que o
erro para todas incognitas seja menor ou igual que a tol-
erância.
Resultados:
1: X = [5.25, -3.531, 4.244] Erro máx = 5.25
2: X = [2.423, -2.117, 5.092] Erro máx = 2.8266
3: X = [2.919, -1.967, 5.023] Erro máx = 0.4951
4: X = [3.011, -1.996, 4.999] Erro máx = 0.0923
5: X = [3.003, -2.001, 4.999] Erro máx = 0.0083
O vetor solução do sistema é: [3.0025, -2.0006, 4.9994]
Raul
Durand 23
Métodos
Computacionais Sistemas de equações lineares 5 Sistemas de equações lineares
Sistemas mal condicionados
Existem sistemas de equações cujas soluções são muito sensíveis às variações dos coeficientes. Este fenômeno é chamado
de mal condicionamento e está relacionado a que a matriz de coeficientes é muito próxima de uma matriz singular
(determinante nulo). De esta forma o determinante da matriz de coeficientes é próximo de zero ou seu valor é muito
pequeno comparado aos coeficientes.
Considere os dois sistemas abaixo cujos determinantes são respectivamente -0.03 e 0.05:

5.0 3.0
5.01 3.0
 
x1
x2

=

15
15

e

5.0 3.0
5.0 3.01
 
x1
x2

=

15
15

A solução do primeiro sistema é x1 = 0 e x2 = 5 Já a solução do segundo sistema é x1 = 3 e x2 = 0 Sendo os
sistemas acima muito semelhantes, na prática, pode-se dizer que as eventuais diferenças podem ter sua origem em erros
de aproximação. Entretanto, pequenas variações nos coeficientes podem causar grandes variações nos resultados.
Sistemas mal condicionados podem ser originados por erros de aproximações ou truncamentos dos números no computa-
dor. Também podem ser originados por uma interpretação ou implementação errônea do problema a ser resolvido
Sistemas mal condicionados requerem tratamento cuidadoso como uso de pivoteamento, maior precisão nas operações
aritméticas e reorganização do sistema.
Raul
Durand 24
Métodos
Computacionais Sistemas de equações lineares 5 Sistemas de equações lineares
Número de condicionamento
O número de condicionamento é uma propriedade da matriz de coeficientes de um sistema de equações e é definido como
κ = ||A||∞ · ||A−1
||∞
onde || · ||∞ representa a norma infinita. Esta norma é definida como:
Vetores : ||V ||∞ = max({|Vi| para i = 1 . . . n})
Matrizes : ||M||∞ = max({
n
X
j=1
|Mij| para i = 1 . . . n})
O número de condicionamento não depende do algoritmo numérico ou da precisão do ponto flutuante usado na hora de
resolver o sistema correspondente. Ele é utilizado para identificar matrizes mal condicionadas.
Em geral, um valor baixo para o número de condicionamento indica que o sistema é bem condicionado, contudo isto
depende do grau de precisão que se espera na solução do sistema.
Se o número de condicionamento é colocado como κ(A) ≈ 10m
, então m representa aproximadamente o número de
digitos de precisão perdidos ao resolver um sistema Ax = b. Por exemplo se m = 3 e a precisão dos componentes de b é
10−5
, a precisão dos componentes de x será de 10−5+3
= 10−2
.
Raul
Durand 25
Métodos
Computacionais Sistemas de equações lineares 5 Sistemas de equações lineares
Análise de perturbação
A análise de perturbação é uma forma simples de avaliar se um sistema é mal condicionado. Dado um sistema Ax = b, o
nível de mal condicionamento de A pode ser avaliado através da solução do sistema com o vetor de termos independentes
alterado, e.g. b + δb
Ax̄ = b + δb
onde x̄ = x + δx. Após a solução deste sistema, um coeficiente de perturbação pode ser obtido como
p =
∥δx∥∞/∥x∥∞
∥δb∥∞/∥b∥∞
p representa a razão de variação do vetor x em função da variação do vetor b.
O número n = log10
∥δx∥∞
∥δb∥∞
representa aproximadamente o número de digitos de precisão pedidos em x devido à pertur-
bação em b. Por exemplo, se n = 2 e a perturbação nos componentes de b for da ordem de 10−3
, então a precisão dos
componentes de x após resolver o sistema Ax = b será de aproximadamente 10−3+2
= 10−1
.
Raul
Durand 26
Métodos
Computacionais Sistemas de equações lineares 5 Sistemas de equações lineares
Exemplo
O vetor de termos independentes do sistema abaixo possui precisão de 10−4
. Através de uma análise de perturbação,
determine se o sistema é mal condicionado considerando que os componentes da solução requerem precisão de pelo menos
10−2
. Repita a análise através do cálculo do número de condicionamento.

1.320 2.250
1.980 3.373
 
x1
x2

=

4.48211
6.72315

Solução:
A solução do sistema Ax = b fornece x = [3.38275 0.0075]T
. Por outro lado, considerando δb = [10−4
10−4
]T
, a solução
do sistema perturbado Ax = b + δb fornece x̄ = [3.34022 0.03245]T
. Portanto, δx = [−0.042538 0.025]T
.
Na sequência, o coeficiente de perturbação é dado por p = ∥δx∥∞/∥x∥∞
∥δb∥∞/∥b∥∞
= 845.431 e n = log10
∥δx∥∞
∥δb∥∞
= 2.629 da onde
n ≈ 3. Desta forma, a precisão dos componentes de x é aproximadamente de 10−4+3
= 10−1
que é menor à precisão
desejada. Assim, o sistema é considerado mal condicionado.
Por outro lado, utilizando a abordagem do número de condicionamento tem-se κ = 11401.48 ≈ 1.1×104
. Logo, a precisão
dos componentes de x seria de aproximadamente 10−4+4
= 100
, o que também leva à conclusão de que o sistema é mal
condicionado para a precisão desejada.
Raul
Durand 27
Métodos
Computacionais Sistemas de equações lineares 5 Sistemas de equações lineares
Exercícios 5.3
1. Qual é a diferença entre os métodos Gauss-Jacobi e
Gauss-Seidel?
2. Programe uma função que determine se uma matriz
é diagonal dominante. Teste a função.
3. Modifique o programa Gauss-Seidel para o método
possa ser utilizado como uma função, por exemplo
gauss_seidel(A, B, X0) onde X0 contém os valores ini-
ciais. Teste a função com um exemplo.
4. O que é um sistema mal condicionado e o que é
número de condicionamento?
5. Qual é a utilidade de uma análise de perturbação?
6. Determine a solução do sistema utilizando o método
Gauss-Jacobi com precisão de 10−1
. Posteriormente
utilize o método Gauss-Seidel e compare o número
de iterações.









4x + 2y = 2
5y + z = −5
4w + y − 15z = 3
2w + 3z = 2
7. O vetor de termos independentes do sistema abaixo
foi determinado com precisão de 10−3
. Através de
uma análise de perturbação, determine se o sistema
é mal condicionado considerando que os compo-
nentes da solução requerem precisão de pelo menos
10−1
. Repita a análise utilizando o número de condi-
cionamento.





x1 − 3.000x2 + 2.001x3 = 1.299
3.999x1 + 2.000x2 + x3 = 2.788
2.500x1 − 0.499x2 + 1.500x3 = 0.111
8. Programe uma função que determine a norma in-
Raul
Durand 28
Métodos
Computacionais Sistemas de equações lineares 5 Sistemas de equações lineares
finita de uma matriz. Teste a função com um exem-
plo.
9. Programe uma função que determine o coeficiente
de perturbação de um sistema de equações. Teste a
função.
Raul
Durand 29
Métodos
Computacionais Sistemas de equações lineares 5 Sistemas de equações lineares
Logic will get you from A to B.
Imagination will take you everywhere.
Albert Einstein
Raul
Durand 30

Mais conteúdo relacionado

PDF
Métodos Para Resolver Sistemas de Equações Lineares
PPTX
Cálculo numérico aula 04 - resolução de sistemas de equações lineares - mét...
PDF
Slide c03b cn 2020.1
PPT
PDF
Sistemas de Equações Lineares (método de Gauss-Jordan)
PPTX
Sistemas Lineares.Cálculo IV. Engenharia Civil
PDF
Sistemas equacoes lineares
PDF
Algebra linear operações com matrizes
Métodos Para Resolver Sistemas de Equações Lineares
Cálculo numérico aula 04 - resolução de sistemas de equações lineares - mét...
Slide c03b cn 2020.1
Sistemas de Equações Lineares (método de Gauss-Jordan)
Sistemas Lineares.Cálculo IV. Engenharia Civil
Sistemas equacoes lineares
Algebra linear operações com matrizes

Semelhante a 5-Sistemas lineares sobre programação em julia (20)

PPTX
Sistemas Lineares.pptx....................
PDF
Apostila sistemas lineares
PDF
Cálculo Numérico - Aula10_sistemas triangulares.pdf
PDF
Sistema de Equação Linear - O que prescisa saber?
PPTX
Sistema lineal
PDF
Métodos Quantitativos I - Parte III _ Sistema de Equações Lineares
PDF
Pratica 4 -_sistemas_de_equacoes_lineares
PDF
Aula 1 - Sistema de Equações
PDF
Unid 2- sistemas lineares
PDF
58ad47702e6f04f314a21718ac26d233.pdf
PDF
Exercícios sistemas de equações
PDF
Sistemas lineares
PDF
Sistemas lineares
PDF
Sistemas lineares
PDF
Sistemas lineares
PDF
Sistemas Lineares para ensino médio e enem
PPT
Aula3 sistemas lineares - parte1
PDF
Aula5_Sistemas Lineares.pdf
PPT
Matemática III Aula 20 2012
PPTX
Projeto sistemas lineares execução
Sistemas Lineares.pptx....................
Apostila sistemas lineares
Cálculo Numérico - Aula10_sistemas triangulares.pdf
Sistema de Equação Linear - O que prescisa saber?
Sistema lineal
Métodos Quantitativos I - Parte III _ Sistema de Equações Lineares
Pratica 4 -_sistemas_de_equacoes_lineares
Aula 1 - Sistema de Equações
Unid 2- sistemas lineares
58ad47702e6f04f314a21718ac26d233.pdf
Exercícios sistemas de equações
Sistemas lineares
Sistemas lineares
Sistemas lineares
Sistemas lineares
Sistemas Lineares para ensino médio e enem
Aula3 sistemas lineares - parte1
Aula5_Sistemas Lineares.pdf
Matemática III Aula 20 2012
Projeto sistemas lineares execução
Anúncio

Último (20)

PPTX
PILOTAGEM-SISTEMAS DE GESTÃO DA CADEIA DE SUPLIMENTOS
PDF
Impactos ambientais gerados pela construção civil
PPTX
Treinamento em powerpoint para integração de colaboradores em fábrica de pequ...
PDF
Apresentação Empregado por Posto Adicional
PDF
Reacoes_expansivas_no_concreto_DEF_ABCP_dez2020.pdf
PDF
Aspectos Gerais da area de Instrumentacao.pdf
PPTX
Portuguese_Portfolio_May_2024.pptx_redes
PDF
2 - Equação de Condução de Calor - (Coordenadas Retangulares, Cilíndricas e E...
PDF
INS_ELE - Aula - 03 - Instalações Elétricas
PDF
LIMPEZA E SANITIZAÇÃO NA INDUSTRIA ALIMENTICIA
PPTX
Slide_Atualizações dos Protocolos de BLS e ACLS.pptx
PPT
Curso de NR 10 para segurança do trabalho
PDF
Pesquisa Operacional - Programação Linear
PPTX
Cultivo de Cebola e tratos culturais.pptx
PDF
MATERIAIS DE CONSTRUÇÃO Solo cimento - 07.pdf
PPT
1 - Serviços em Eletricidade - 1° SOS RCP DEA - Rev a.ppt
PPT
Aula Ciência e Tecnologia dos Materiais - Metais e ligas não ferrosas
PPTX
NR35 - Treinamento Aurea Medic - altura.pptx
PDF
3 - Condução de Calor Permanante (Coordendas Retangulares, Cilíndricas e Esfé...
PPTX
cultivo de folhosas alface rúcula almeirão.pptx
PILOTAGEM-SISTEMAS DE GESTÃO DA CADEIA DE SUPLIMENTOS
Impactos ambientais gerados pela construção civil
Treinamento em powerpoint para integração de colaboradores em fábrica de pequ...
Apresentação Empregado por Posto Adicional
Reacoes_expansivas_no_concreto_DEF_ABCP_dez2020.pdf
Aspectos Gerais da area de Instrumentacao.pdf
Portuguese_Portfolio_May_2024.pptx_redes
2 - Equação de Condução de Calor - (Coordenadas Retangulares, Cilíndricas e E...
INS_ELE - Aula - 03 - Instalações Elétricas
LIMPEZA E SANITIZAÇÃO NA INDUSTRIA ALIMENTICIA
Slide_Atualizações dos Protocolos de BLS e ACLS.pptx
Curso de NR 10 para segurança do trabalho
Pesquisa Operacional - Programação Linear
Cultivo de Cebola e tratos culturais.pptx
MATERIAIS DE CONSTRUÇÃO Solo cimento - 07.pdf
1 - Serviços em Eletricidade - 1° SOS RCP DEA - Rev a.ppt
Aula Ciência e Tecnologia dos Materiais - Metais e ligas não ferrosas
NR35 - Treinamento Aurea Medic - altura.pptx
3 - Condução de Calor Permanante (Coordendas Retangulares, Cilíndricas e Esfé...
cultivo de folhosas alface rúcula almeirão.pptx
Anúncio

5-Sistemas lineares sobre programação em julia

  • 1. Métodos Computacionais 5 Sistemas de equações lineares Prof. Raul Durand
  • 2. Métodos Computacionais Sistemas de equações lineares 5 Sistemas de equações lineares Sistemas de equações lineares Uma equação é linear se cada termo contém não mais do que uma variável e cada variável se encontra na primeira potência. Um conjunto de equações lineares cujas variáveis estão relacionadas é denominado de sistema de equações lineares, por exemplo      x + 2y + z = 8 x + y − 2z = −3 x + y − z = 0 =⇒   1 2 1 1 1 −2 1 1 −1     x y z   =   8 −3 0   O sistema acima pode ser escrito na forma compacta como Ax = b onde A é a matriz de coeficientes, b é o vetor de termos independentes e x é o vetor de incognitas ou vetor solução. Vários problemas de engenharia podem ser interpretados e resolvidos por meio de sistemas de equações lineares. Dentre deles, podem ser citados: 1. Cálculo da razão de escoamento de um sistema hidráulico. 2. Determinação das forças das barras de uma treliça. 3. Determinação de potência em redes elétricas. 4. Previsão da concentração de reagentes sujeitos à reações quími- cas simultâneas, etc. ? Você sabia? Análises de tensão e deformação em sólidos precisam da solução de sis- temas com miles e a até milhões de equações. Tais sistemas são im- possíveis de serem resolvidos sem o auxílio do computador. Raul Durand 1
  • 3. Métodos Computacionais Sistemas de equações lineares 5 Sistemas de equações lineares Classificação A classificação de um sistema é dado em função das suas possíveis soluções. Sistema consistente: É um sistema que possui pelo menos uma solução. Ele ainda pode ser: Determinado: Possui apenas uma solução. ( x + y = 3 x − y = 2 Indeterminado: Possui infinitas soluções. O determinante da matriz de coeficientes é igual a zero. ( x + y = 2 2x + 2y = 4 Sistema inconsistente: Sistema sem solução. ( x − y = 1 −2x + 2y = 4 0 1 2 3 4 −2 0 2 x + y = 3 x − y = 2 x y Sistema determinado 0 1 2 3 4 −2 0 2 0 x + y = 2 2x + 2y = 4 x y Sistema indeterminado 0 1 2 3 4 2 4 6 x − y = 1 −2x + 2y = 4 x y Sistema inconsistente Raul Durand 2
  • 4. Métodos Computacionais Sistemas de equações lineares 5 Sistemas de equações lineares Métodos de solução Métodos exatos ou diretos: São métodos que fornecem a solução exata do sistema utilizando um número finito de operações. Entre os métodos de solução diretos estão: 1. Solução por inversão da matriz de coeficientes 2. Método de eliminação de Gauss. Métodos iterativos: São aqueles que permitem determinar a solução do sistema com uma dada precisão através da aplicação de um processo repetitivo convergente. Entre os métodos iterativos estão os seguintes: 1. Método Gauss-Jacobi 2. Métod o Gauss-Seidel 3. Gradientes conjugados 4. Outros. ? Você sabia? 2000 A.C. os babilônios conheciam um método para resolver sistemas lineares 2×2. Posteriormente, o Livro Os nove capítu- los da arte matemática, escrito na China arredor de 200 A.C., apresenta um método para resolver sistemas lineares 3 × 3. Raul Durand 3
  • 5. Métodos Computacionais Sistemas de equações lineares 5 Sistemas de equações lineares Sistemas triangulares Um sistema no qual a matriz de coeficientes corresponde a uma matriz triangular superior ou inferior é chamado de sistema triangular.        a11 a12 a13 · · · a1n 0 a22 a23 · · · a2n 0 0 a33 · · · a3n . . . . . . . . . ... . . . 0 0 0 · · · ann               x1 x2 x3 . . . xn        =        b1 b2 b3 . . . bn        com aii ̸= 0. A solução de um sistema triangular superior pode ser obtida pelo processo chamado de retro-substituição. Este processo pode ser expresso matematicamente como:    xn = bn ann xi = bi− Pn j=i+1 aij xj aii para i = n−1 . . . 1 Sistemas não triangulares podem ser reduzidos a sistemas triangulares equivalentes. Sistemas equivalentes são aqueles sistemas de equações que embora apresentem coeficientes diferentes possuem o mesmo vetor solução. Raul Durand 4
  • 6. Métodos Computacionais Sistemas de equações lineares 5 Sistemas de equações lineares Eliminação de Gauss O método de Gauss é um método direto que consiste em transformar o sis- tema de equações em um sistema triangular superior equivalente através de operações elementares sobre as linhas do sistema original. Estas operações são: 1. Multiplicação de uma linha por um escalar diferente de zero. 2. Adição a uma linha o múltiplo de outra. 3. Troca de duas linhas O número de operações para resolver um sistema de equações usando a elim- inação de Gauss é proporcional a n3 onde n é o número de equações. Assim é dito que a complexidade aritmética deste método é O(n3 ). Exemplo Determine a solução do sistema de equações utilizando o método de eliminação de Gauss e retro-substituição.   3 2 4 1 1 2 4 3 2     x1 x2 x3   =   1 2 3   Matriz aumentada: [A|b] = " 3 2 4 1 1 1 2 2 4 3 2 3 # Eliminação: m21 = 1/3, m31 = 4/3 L2 ← L2 − m21L1 L3 ← L3 − m31L1 " 3 2 4 1 0 1/3 2/3 5/3 0 1/3 − 10/3 5/3 # m32 = 1 L3 ← L3 − m32L2 " 3 2 4 1 0 1/3 2/3 5/3 0 0 −4 0 # Retro-substituição: x = −3 5 0 ! Raul Durand 5
  • 7. Métodos Computacionais Sistemas de equações lineares 5 Sistemas de equações lineares Função que realiza a eliminação de Gauss function eliminar!(A, B) # A: matriz de coeficientes # B: vetor de termos independentes # Esta função modifica os argumentos A e B n = size(A,1) # número de linhas # eliminação simples (sem pivoteamento) for k in 1:n-1 # iteração nos pivôs pivo = A[k,k] for i in k+1:n # iteração nas linhas por baixo do pivô m = A[i,k]/pivo # eliminação na matriz de coeficientes for j=1:n A[i,j] = A[i,j] - m*A[k,j] # subtração de linhas end # eliminação no vetor de termos independentes B[i] = B[i] - m*B[k] end end end Raul Durand 6
  • 8. Métodos Computacionais Sistemas de equações lineares 5 Sistemas de equações lineares Função que realiza a retro-substituição function retrosubstituir(A, B) # A: matriz de coeficientes (triangular superior) # B: vetor de termos independentes # A e B já devem ter passado pela eliminação # Esta função retorna a solução do sistema n = size(A,1) # número de linhas # Inicialização do vetor solução X = zeros(n) # retro-substituição X[n] = B[n]/A[n,n] for i in n-1:-1:1 soma = 0.0 for j=i+1:n soma = soma + A[i,j]*X[j] end X[i] = (B[i] - soma)/ A[i,i] end return X end Raul Durand 7
  • 9. Métodos Computacionais Sistemas de equações lineares 5 Sistemas de equações lineares Pivoteamento Se durante o processo de eliminação se apresenta um pivô igual a zero, então é necessário utilizar a estratégia do pivoteamento de forma a evitar a divisão por zero. Se o pivô tem valor pequeno em relação aos outros elementos da matriz é também conveniente utilizar o pivoteamento de forma a minimizar a propagação de erros de truncamento e/ou arredondamento na solução. Existem dois tipos de pivoteamento: Pivoteamento parcial: Na eliminação de uma coluna, procura-se o termo com maior valor absoluto debaixo do pivô. Quando achado troca-se a linha correspondente com a linha do pivô. Desta forma o pivô é substituído.      3x1 + 2x2 + 1x3 − 1x4 = 5 0x1 + 1x2 + 0x3 + 3x4 = 6 0x1 − 3x2 − 5x3 + 7x4 = 7 0x1 + 2x2 + 4x3 + 0x4 = 8 parcial − − − − − →      3x1 + 2x2 + 1x3 − 1x4 = 5 0x1 − 3x2 − 5x3 + 7x4 = 7 0x1 + 1x2 + 0x3 + 3x4 = 6 0x1 + 2x2 + 4x3 + 0x4 = 8 Pivoteamento total: Neste caso procura-se o termo com maior valor absoluto não somente abaixo do pivô senão também nas colunas restantes.      3x1 + 2x2 + 1x3 − 1x4 = 5 0x1 + 1x2 + 0x3 + 3x4 = 6 0x1 − 3x2 − 5x3 + 7x4 = 7 0x1 + 2x2 + 4x3 + 0x4 = 8 total − − − →      3x1 − 1x4 + 1x3 + 2x2 = 5 0x1 + 7x4 − 5x3 − 3x2 = 7 0x1 + 3x4 + 0x3 + 1x2 = 6 0x1 + 0x4 + 4x3 + 2x2 = 8 Raul Durand 8
  • 10. Métodos Computacionais Sistemas de equações lineares 5 Sistemas de equações lineares Exemplo Resolver o sistema de equações utilizando pivoteamento parcial.   2 2 −1 3 3 1 1 −1 5     x1 x2 x3   =   3 7 5   Solução: Matriz aumentada: [A|b] = " 2 2 −1 3 3 3 1 7 1 −1 5 5 # Troca de linhas: L1 ↔ L2 " 3 3 1 7 2 2 −1 3 1 −1 5 5 # Eliminação: m21 = 2/3, m31 = 1/3 L2 ← L2 − m21L1 L3 ← L3 − m31L1 " 3 3 1 7 0 0 −5/3 −5/3 0 −2 14/3 8/3 # Troca de linhas: L2 ↔ L3 " 3 3 1 7 0 −2 14/3 8/3 0 0 −5/3 −5/3 # Eliminação: m32 = 0/(−2) Retro-substituição: x = 1 1 1 ! Raul Durand 9
  • 11. Métodos Computacionais Sistemas de equações lineares 5 Sistemas de equações lineares Exercícios 5.1 1. Quais são os tipos de sistemas de equações lineares? Descreva cada um deles. 2. Qual é a diferença entre sistemas determinados e não determinados? 3. Como se classificam os métodos de solução de sis- temas lineares? 4. O que é um sistema triangular? 5. Para que serve o processo de retro-substituição? 6. Quais são as operações elementares que podem ser realizadas na solução de um sistema de equações pelo método de Gauss? 7. Qual é a diferença entre pivoteamento parcial e piv- oteamento total? 8. Em que casos se deve usar pivoteamento? 9. Qual é a vantagem dos métodos iterativos sobre os métodos de solução diretos? 10. Utilizando o método de Gauss (sem pivoteamento) determine o vetor solução dos sistemas abaixo.      x1 − x2 + x3 = 1 x1 + x2 + 4x3 = 8 3x1 + 2x2 − x3 = 9      5x1 − 3x2 − 7x3 = 4 10x1 + 6x2 − 12x3 = 0 5x1 − 5x2 − 4x3 = 12 11. Utilizando o método de Gauss com pivoteamento parcial determine o vetor solução dos sistema abaixo.      2x1 + 2x2 − x3 = 3 3x1 + 3x2 + x3 = 7 x1 − x2 − 5x3 = −5          x1 + 3x2 + x3 = x1 + 2x2 + x3 − 4x4 = − x2 + 3x4 = 4x2 − x3 + 8x4 = Raul Durand 10
  • 12. Métodos Computacionais Sistemas de equações lineares 5 Sistemas de equações lineares Decomposição LU O método de decomposição ou fatoração LU é um método direto para a solução de sistemas lineares. Uma matriz quadrada pode ser decomposta no produto de outras duas matrizes, a primeira triangular inferior L e a segunda triangular superior U tal que: A = LU Se o determinante de uma matriz quadrada é diferente de zero, então existem várias possíveis combinações de fatores LU. Contudo , existe apenas uma única decomposição A = LU onde L possui a diagonal principal unitária. Uma das formas de determinar os fatores L e U é por meio do processo de eliminação de Gauss. A complexidade aritmética da decomposição LU é O(n3 ). Solução de um sistema usando decomposição LU Considerando que A = LU, um sistema Ax = b é reescrito como LUx = b Seja y = Ux, a solução deste sistema acima pode ser obtido pela solução dos sistemas abaixo: Ly = b com subst. para frente (O(n2 )) Ux = y com retro-substituição (O(n2 )) A determinação dos fatores L e U é especialmente útil no caso em que se queira resolver vários sistemas de equações com a mesma matriz de coeficientes A. Raul Durand 11
  • 13. Métodos Computacionais Sistemas de equações lineares 5 Sistemas de equações lineares Exemplo Determine a decomposição LU da matriz de coeficientes do sistema abaixo. Posteriormente determine a solução do sistema utilizando os fatores L e U.      3x1 + 2x2 + 4x3 = 1 x1 + x2 + 2x3 = 2 4x1 + 3x2 + 2x3 = 3 Solução: Matriz de coeficientes:   3 2 4 1 1 2 4 3 2   Matriz de coeficientes após eliminação:   3 2 4 0 1/3 2/3 0 0 −4   Armazenamento dos coeficientes utilizados na eliminação nos locais previamente zerados:   3 2 4 1/3 1/3 2/3 4/3 1 −4   Os fatores L e U são dados por: L =   1 0 0 1/3 1 0 4/3 1 1   U =   3 2 4 0 1/3 2/3 0 0 −4   Raul Durand 12
  • 14. Métodos Computacionais Sistemas de equações lineares 5 Sistemas de equações lineares Solução do sistema Ly = b:   1 0 0 1/3 1 0 4/3 1 1     y1 y2 y3   =   1 2 3   utilizando substituição para frente obtem-se: y =   1 5/3 0   Solução do sistema Ux = y:   3 2 4 0 1/3 2/3 0 0 −4     x1 x2 x3   =   1 5/3 0   utilizando retro-substituição obtem-se: x =   −3 5 0   Raul Durand 13
  • 15. Métodos Computacionais Sistemas de equações lineares 5 Sistemas de equações lineares Decomposição LU com pivoteamento parcial Dado que a solução de alguns sistemas precisa de pivoteamento, a fatoração LU com pivoteamento parcial leva em conta a troca de linhas da matriz de coeficientes por meio da matriz de permutação P . Assim um um sistema Ax = b pode ser reescrito como LUx = P b Uma matriz de permutação quando multiplicada a outra matriz permite trocar a ordem das linhas desta última. Por exemplo: P =   0 1 0 0 0 1 1 0 0   A =   1 10 100 2 20 200 3 30 300   P A =   2 20 200 3 30 300 1 10 100   Solução de um sistema Uma vez obtidos os fatores L, U e P da matriz de coeficientes de um sistema, o vetor solução x pode ser obtido pela solução dos seguintes sistemas triangulares Ly = P b utilizando substituição para frente (O(n2 )) Ux = y utilizando retro-substituição (O(n2 )) Raul Durand 14
  • 16. Métodos Computacionais Sistemas de equações lineares 5 Sistemas de equações lineares Exemplo Determine a decomposição LU da matriz de coeficientes do sistema abaixo. Posteriormente determine a solução do sistema utilizando os fatores P , L e U.      3x1 − 4x2 + x3 = 9 x1 + 2x2 + 2x3 = 3 4x1 − 3x3 + = −2 Solução: Matriz de coeficientes:   3 −1 1 1 2 2 4 0 −2   Matriz aumentada:   3 −1 1 1 0 0 1 2 2 0 1 0 4 0 −2 0 0 1   Matriz aumentada após decomposição e permutação:   4 0 −3 0 0 1 3/4 −4 13/4 1 0 0 1/4 −1/2 35/8 0 1 0   onde os valores em vermelho representam os coeficientes utilizados durante a eliminação. Os fatores L, U e P são dados por: L =   1 0 0 3/4 1 0 1/4 −1/2 1   U =   4 0 −3 0 −4 13/4 0 0 35/8   P =   0 0 1 1 0 0 0 1 0   Raul Durand 15
  • 17. Métodos Computacionais Sistemas de equações lineares 5 Sistemas de equações lineares Solução do sistema Ly = P b:   1 0 0 3/4 1 0 1/4 −1/2 1     y1 y2 y3   =   0 0 1 1 0 0 0 1 0     9 3 −2   utilizando substituição para frente obtem-se: y =   −2 21/2 35/4   Solução do sistema Ux = y:   4 0 −3 0 −4 13/4 0 0 35/8     x1 x2 x3   =   −2 21/2 35/4   utilizando retro-substituição obtem-se: x =   1 −1 2   Raul Durand 16
  • 18. Métodos Computacionais Sistemas de equações lineares 5 Sistemas de equações lineares Exercícios 5.2 1. Em que casos é conveniente o uso da decomposição LU na solução de sistemas lineares? 2. Em que caso os fatores da decomposição LU é única? 3. O que é uma matriz de permutação? 4. Os sistemas abaixo apresentam a mesma matriz de coeficientes. Determina a solução desses sistemas utilizando a decomposição LU (sem pivoteamento).      2x1 − x2 − 2x3 = −11 2x1 + x2 + 3x3 = 5 3x1 + x2 − x3 = −5      2x1 − x2 − 2x3 = 5 2x1 + x2 + 3x3 = 12 3x1 + x2 − x3 = 12 5. Os sistemas abaixo apresentam a mesma matriz de coeficientes. Se resolvidos pelo método da elimi- nação de Gauss haverá a necessidade de utilizar piv- oteamento. Determina a solução desses sistemas uti- lizando a decomposição LU com pivoteamento par- cial.      2x2 + x3 = 7 3x1 − 4x2 + 3x3 = 4 −2x1 + 2x2 = 2      2x2 + x3 = 5 3x1 − 4x2 + 3x3 = 4 −2x1 + 2x2 = − Raul Durand 17
  • 19. Métodos Computacionais Sistemas de equações lineares 5 Sistemas de equações lineares Métodos iterativos Métodos iterativos permitem calcular aproximações sucessivas da solução de um sistema a partir de um vetor com valores iniciais. Seja o sistema Ax = b, este pode ser rescrito na forma x = Cx + G, onde C é uma matriz n × n e G é um vetor. Esta equação pode ser colocada como uma equação de recorrência xi = Cxi−1 + G O processo é repetido até que a diferença entre duas aproximações sucessivas para cada incognita seja menor a uma dada tolerância. Assim o erro na iteração i pode ser calculado por E = max(|xi − xi−1|) < tol Entre os métodos iterativos utilizados para resolver sistemas lineares têm-se: Gauss- Jacobi, Gauss-Seidel, Gradientes conjugados, etc. Métodos iterativos são particularmente úteis na solução de sistema esparsos. Nestes sistemas, a maioria dos valores na matriz de coeficientes são iguais a zero. Raul Durand 18
  • 20. Métodos Computacionais Sistemas de equações lineares 5 Sistemas de equações lineares Método Gauss-Jacobi Este método será apresentado para sistemas de 3 equações; contudo pode ser extendido para sistemas de qualquer número de equações. Seja o sistema Ax = b onde x = [x y z]T , ele pode ser escrito como:      a11x + a12y + a13z = b1 a21x + a22y + a23z = b2 a31x + a32y + a33z = b3 da onde as incognitas podem ser isoladas como x = 1 a11 (b1 − a12y − a13z) y = 1 a22 (b2 − a21x − a23z) z = 1 a33 (b3 − a31x − a32y) Colocando as equações de forma recorrente obtem-se xk = 1 a11 (b1 − a12yk−1 − a13zk−1) yk = 1 a22 (b2 − a21xk−1 − a13zk−1) zk = 1 a33 (b3 − a31xk−1 − a32yk−1) Aproximações sucessivas a partir de valores iniciais para as incognitas (x0, y0 e z0). Raul Durand 19
  • 21. Métodos Computacionais Sistemas de equações lineares 5 Sistemas de equações lineares Matriz diagonal dominante Uma condição suficiente mas não necessária para a convergência é que a matriz de coeficientes dos sistema seja diagonal dominante. Uma matriz é diagonal dominante se para cada equação i, o escalar αi atenda a condição αi = Pn j=1,j̸=i |aij| |aii| ≤ 1 Esta condição é também conhecida como critério das linhas. Caso uma matriz atenda o critério das linhas, o método Gauss-Jacobi será convergente. Já no caso em que uma matriz não atenda este critério, é possivel que o método ainda seja convergente. Em algúns casos, um sistema de equações cuja matriz de coeficientes não é diagonal dominante, pode ser convertido em um a partir da conveniente troca de linhas. Ao mesmo tempo, a conveniente troca de linhas pode fazer com que o método Gauss-Jacobi seja convergente em sistemas que não antendem o critério das linhas. Toda matriz diagonal dominante é não singular. Desta forma, um sistema cuja matriz de coeficientes é uma matriz diagonal dominante é, portanto, um sistema determinado. Raul Durand 20
  • 22. Métodos Computacionais Sistemas de equações lineares 5 Sistemas de equações lineares Exemplo Resolva o sistema de equações abaixo pelo método Gauss-Jacobi utilizando os valores iniciais x0 = 0, y0 = 0 e z0 = 0, com tolerância de 0.01.      4x − 2y + z = 21 x + 8y − 2z = −23 x − y + 5z = 30 Solução: Pode facilmente ser verificado que o sistema é diagonal dominante. Assim,tem-se a certeza de que o método Gauss-Jacobi é convergente para este sistema. A seguir realiza-se o cálculo de aproximações do vetor solução uti- lizando as equações de recorrência. O processo é repetido até que o erro para todas incognitas seja menor ou igual que a tolerância. Resultados: Método Gauss-Jacobi 1: X = [5.25, -2.875, 6.0] Erro máx = 6.0 2: X = [2.312, -2.031, 4.375] Erro máx = 2.9375 3: X = [3.141, -2.07, 5.131] Erro máx = 0.8281 4: X = [2.932, -1.985, 4.958] Erro máx = 0.2086 5: X = [3.018, -2.002, 5.017] Erro máx = 0.0861 6: X = [2.995, -1.998, 4.996] Erro máx = 0.0233 7: X = [3.002, -2.0, 5.001] Erro máx = 0.0071 O vetor solução do sistema é: [3.002, -2.0004, 5.0014] Raul Durand 21
  • 23. Métodos Computacionais Sistemas de equações lineares 5 Sistemas de equações lineares Método Gauss-Seidel Este método é semelhante ao método Gauss-Jacobi, porem as equações de recorrência são um pouco diferentes. Em lugar de considerar somente valores aproximados na iteração anterior, este método considera valores que já foram obtidos na iteração atual. Desta forma o método Gauss-Seidel tende a ser mais rápido que o método Gauss-Jacobi. Seja, por exemplo, o sistema Ax = b onde x = [x y z]T :      a11x + a12y + a13z = b1 a21x + a22y + a23z = b2 a31x + a32y + a33z = b3 As equações de recorrência são dadas por: xk = 1 a11 (b1 − a12yk−1 − a13zk−1) yk = 1 a22 (b2 − a21xk − a23zk−1) zk = 1 a33 (b3 − a31xk − a32yk) Se a matriz de coeficientes é diagonal dominante o método Gauss-Seidel é sempre convergente, caso contrário, há ainda a possibilidade de que o método possa ser convergente. Raul Durand 22
  • 24. Métodos Computacionais Sistemas de equações lineares 5 Sistemas de equações lineares Exemplo Resolva o sistema de equações abaixo pelo método Gauss-Seidel utilizando os valores iniciais x0 = 0, y0 = 0 e z0 = 0 com tolerância de 0.01.      4x − 2y + z = 21 x + 8y − 2z = −23 x − y + 5z = 30 Solução: O método Gauss-Seidel é convergente pois a matriz de coeficientes do sistema é diagonal dominante. As incong- nitas são aproximadas sucessivamente através do uso das equações de recorrência utilizando sempre os valores cal- culados mais recentes. O processo é repetido até que o erro para todas incognitas seja menor ou igual que a tol- erância. Resultados: 1: X = [5.25, -3.531, 4.244] Erro máx = 5.25 2: X = [2.423, -2.117, 5.092] Erro máx = 2.8266 3: X = [2.919, -1.967, 5.023] Erro máx = 0.4951 4: X = [3.011, -1.996, 4.999] Erro máx = 0.0923 5: X = [3.003, -2.001, 4.999] Erro máx = 0.0083 O vetor solução do sistema é: [3.0025, -2.0006, 4.9994] Raul Durand 23
  • 25. Métodos Computacionais Sistemas de equações lineares 5 Sistemas de equações lineares Sistemas mal condicionados Existem sistemas de equações cujas soluções são muito sensíveis às variações dos coeficientes. Este fenômeno é chamado de mal condicionamento e está relacionado a que a matriz de coeficientes é muito próxima de uma matriz singular (determinante nulo). De esta forma o determinante da matriz de coeficientes é próximo de zero ou seu valor é muito pequeno comparado aos coeficientes. Considere os dois sistemas abaixo cujos determinantes são respectivamente -0.03 e 0.05: 5.0 3.0 5.01 3.0 x1 x2 = 15 15 e 5.0 3.0 5.0 3.01 x1 x2 = 15 15 A solução do primeiro sistema é x1 = 0 e x2 = 5 Já a solução do segundo sistema é x1 = 3 e x2 = 0 Sendo os sistemas acima muito semelhantes, na prática, pode-se dizer que as eventuais diferenças podem ter sua origem em erros de aproximação. Entretanto, pequenas variações nos coeficientes podem causar grandes variações nos resultados. Sistemas mal condicionados podem ser originados por erros de aproximações ou truncamentos dos números no computa- dor. Também podem ser originados por uma interpretação ou implementação errônea do problema a ser resolvido Sistemas mal condicionados requerem tratamento cuidadoso como uso de pivoteamento, maior precisão nas operações aritméticas e reorganização do sistema. Raul Durand 24
  • 26. Métodos Computacionais Sistemas de equações lineares 5 Sistemas de equações lineares Número de condicionamento O número de condicionamento é uma propriedade da matriz de coeficientes de um sistema de equações e é definido como κ = ||A||∞ · ||A−1 ||∞ onde || · ||∞ representa a norma infinita. Esta norma é definida como: Vetores : ||V ||∞ = max({|Vi| para i = 1 . . . n}) Matrizes : ||M||∞ = max({ n X j=1 |Mij| para i = 1 . . . n}) O número de condicionamento não depende do algoritmo numérico ou da precisão do ponto flutuante usado na hora de resolver o sistema correspondente. Ele é utilizado para identificar matrizes mal condicionadas. Em geral, um valor baixo para o número de condicionamento indica que o sistema é bem condicionado, contudo isto depende do grau de precisão que se espera na solução do sistema. Se o número de condicionamento é colocado como κ(A) ≈ 10m , então m representa aproximadamente o número de digitos de precisão perdidos ao resolver um sistema Ax = b. Por exemplo se m = 3 e a precisão dos componentes de b é 10−5 , a precisão dos componentes de x será de 10−5+3 = 10−2 . Raul Durand 25
  • 27. Métodos Computacionais Sistemas de equações lineares 5 Sistemas de equações lineares Análise de perturbação A análise de perturbação é uma forma simples de avaliar se um sistema é mal condicionado. Dado um sistema Ax = b, o nível de mal condicionamento de A pode ser avaliado através da solução do sistema com o vetor de termos independentes alterado, e.g. b + δb Ax̄ = b + δb onde x̄ = x + δx. Após a solução deste sistema, um coeficiente de perturbação pode ser obtido como p = ∥δx∥∞/∥x∥∞ ∥δb∥∞/∥b∥∞ p representa a razão de variação do vetor x em função da variação do vetor b. O número n = log10 ∥δx∥∞ ∥δb∥∞ representa aproximadamente o número de digitos de precisão pedidos em x devido à pertur- bação em b. Por exemplo, se n = 2 e a perturbação nos componentes de b for da ordem de 10−3 , então a precisão dos componentes de x após resolver o sistema Ax = b será de aproximadamente 10−3+2 = 10−1 . Raul Durand 26
  • 28. Métodos Computacionais Sistemas de equações lineares 5 Sistemas de equações lineares Exemplo O vetor de termos independentes do sistema abaixo possui precisão de 10−4 . Através de uma análise de perturbação, determine se o sistema é mal condicionado considerando que os componentes da solução requerem precisão de pelo menos 10−2 . Repita a análise através do cálculo do número de condicionamento. 1.320 2.250 1.980 3.373 x1 x2 = 4.48211 6.72315 Solução: A solução do sistema Ax = b fornece x = [3.38275 0.0075]T . Por outro lado, considerando δb = [10−4 10−4 ]T , a solução do sistema perturbado Ax = b + δb fornece x̄ = [3.34022 0.03245]T . Portanto, δx = [−0.042538 0.025]T . Na sequência, o coeficiente de perturbação é dado por p = ∥δx∥∞/∥x∥∞ ∥δb∥∞/∥b∥∞ = 845.431 e n = log10 ∥δx∥∞ ∥δb∥∞ = 2.629 da onde n ≈ 3. Desta forma, a precisão dos componentes de x é aproximadamente de 10−4+3 = 10−1 que é menor à precisão desejada. Assim, o sistema é considerado mal condicionado. Por outro lado, utilizando a abordagem do número de condicionamento tem-se κ = 11401.48 ≈ 1.1×104 . Logo, a precisão dos componentes de x seria de aproximadamente 10−4+4 = 100 , o que também leva à conclusão de que o sistema é mal condicionado para a precisão desejada. Raul Durand 27
  • 29. Métodos Computacionais Sistemas de equações lineares 5 Sistemas de equações lineares Exercícios 5.3 1. Qual é a diferença entre os métodos Gauss-Jacobi e Gauss-Seidel? 2. Programe uma função que determine se uma matriz é diagonal dominante. Teste a função. 3. Modifique o programa Gauss-Seidel para o método possa ser utilizado como uma função, por exemplo gauss_seidel(A, B, X0) onde X0 contém os valores ini- ciais. Teste a função com um exemplo. 4. O que é um sistema mal condicionado e o que é número de condicionamento? 5. Qual é a utilidade de uma análise de perturbação? 6. Determine a solução do sistema utilizando o método Gauss-Jacobi com precisão de 10−1 . Posteriormente utilize o método Gauss-Seidel e compare o número de iterações.          4x + 2y = 2 5y + z = −5 4w + y − 15z = 3 2w + 3z = 2 7. O vetor de termos independentes do sistema abaixo foi determinado com precisão de 10−3 . Através de uma análise de perturbação, determine se o sistema é mal condicionado considerando que os compo- nentes da solução requerem precisão de pelo menos 10−1 . Repita a análise utilizando o número de condi- cionamento.      x1 − 3.000x2 + 2.001x3 = 1.299 3.999x1 + 2.000x2 + x3 = 2.788 2.500x1 − 0.499x2 + 1.500x3 = 0.111 8. Programe uma função que determine a norma in- Raul Durand 28
  • 30. Métodos Computacionais Sistemas de equações lineares 5 Sistemas de equações lineares finita de uma matriz. Teste a função com um exem- plo. 9. Programe uma função que determine o coeficiente de perturbação de um sistema de equações. Teste a função. Raul Durand 29
  • 31. Métodos Computacionais Sistemas de equações lineares 5 Sistemas de equações lineares Logic will get you from A to B. Imagination will take you everywhere. Albert Einstein Raul Durand 30