introdução aos métodos numéricos - núcleo de análise
TRANSCRIPT
![Page 1: Introdução aos Métodos Numéricos - Núcleo de Análise](https://reader030.vdocuments.pub/reader030/viewer/2022012503/617d58e18cb5b66e4c76da30/html5/thumbnails/1.jpg)
Introdução aos Métodos Numéricos
Instituto de Computação UFFDepartamento de Ciência da Computação
Otton Teixeira da Silveira Filho
![Page 2: Introdução aos Métodos Numéricos - Núcleo de Análise](https://reader030.vdocuments.pub/reader030/viewer/2022012503/617d58e18cb5b66e4c76da30/html5/thumbnails/2.jpg)
Conteúdo temático
● Sistemas de Equações Lineares. Métodos diretos
![Page 3: Introdução aos Métodos Numéricos - Núcleo de Análise](https://reader030.vdocuments.pub/reader030/viewer/2022012503/617d58e18cb5b66e4c76da30/html5/thumbnails/3.jpg)
Conteúdo específico
● Pivotamento parcial e total
![Page 4: Introdução aos Métodos Numéricos - Núcleo de Análise](https://reader030.vdocuments.pub/reader030/viewer/2022012503/617d58e18cb5b66e4c76da30/html5/thumbnails/4.jpg)
Pivotamento
Pivotamento parcial e total
São procedimentos que podem diminuir o ruído numérico da eliminação gaussiana e da fatoração LU
![Page 5: Introdução aos Métodos Numéricos - Núcleo de Análise](https://reader030.vdocuments.pub/reader030/viewer/2022012503/617d58e18cb5b66e4c76da30/html5/thumbnails/5.jpg)
Pivotamento
Pivotamento parcial e total
São procedimentos que podem diminuir o ruído numérico da eliminação gaussiana e da fatoração LU
Só será apresentado o caso da eliminação gaussiana
![Page 6: Introdução aos Métodos Numéricos - Núcleo de Análise](https://reader030.vdocuments.pub/reader030/viewer/2022012503/617d58e18cb5b66e4c76da30/html5/thumbnails/6.jpg)
Pivotamento parcial
● Começando pela primeira coluna, ache o maior elemento em módulo desta coluna
● Troque a linha na qual está este valor como a primeira linha
● Faça a eliminação
![Page 7: Introdução aos Métodos Numéricos - Núcleo de Análise](https://reader030.vdocuments.pub/reader030/viewer/2022012503/617d58e18cb5b66e4c76da30/html5/thumbnails/7.jpg)
Pivotamento parcial
● Ache o maior elemento em módulo da segunda coluna abaixo da primeira linha
● Troque a linha na qual está este valor como a segunda linha
● Faça a eliminação
![Page 8: Introdução aos Métodos Numéricos - Núcleo de Análise](https://reader030.vdocuments.pub/reader030/viewer/2022012503/617d58e18cb5b66e4c76da30/html5/thumbnails/8.jpg)
Pivotamento parcial
● Ache o maior elemento em módulo da terceira coluna abaixo da segunda linha
● Troque a linha na qual está este valor como a terceira linha
● Faça a eliminação
![Page 9: Introdução aos Métodos Numéricos - Núcleo de Análise](https://reader030.vdocuments.pub/reader030/viewer/2022012503/617d58e18cb5b66e4c76da30/html5/thumbnails/9.jpg)
Pivotamento parcial
Faça o equivalente para as demais colunas
![Page 10: Introdução aos Métodos Numéricos - Núcleo de Análise](https://reader030.vdocuments.pub/reader030/viewer/2022012503/617d58e18cb5b66e4c76da30/html5/thumbnails/10.jpg)
Pivotamento parcial
Faça o equivalente para as demais colunas
Qual é a ideia por trás disto?
![Page 11: Introdução aos Métodos Numéricos - Núcleo de Análise](https://reader030.vdocuments.pub/reader030/viewer/2022012503/617d58e18cb5b66e4c76da30/html5/thumbnails/11.jpg)
Pivotamento parcial
A maior fonte de ruído numérico é a divisão pelo pivô pois se o pivô for menor que o termo a ser eliminado teremos potencialmente um elevado ruído numérico
![Page 12: Introdução aos Métodos Numéricos - Núcleo de Análise](https://reader030.vdocuments.pub/reader030/viewer/2022012503/617d58e18cb5b66e4c76da30/html5/thumbnails/12.jpg)
Pivotamento parcial
A maior fonte de ruído numérico é a divisão pelo pivô pois se o pivô for menor que o termo a ser eliminado teremos potencialmente um elevado ruído numérico
Ao escolhermos o maior em módulo da coluna a ser eliminada, reduzimos o ruído numérico
![Page 13: Introdução aos Métodos Numéricos - Núcleo de Análise](https://reader030.vdocuments.pub/reader030/viewer/2022012503/617d58e18cb5b66e4c76da30/html5/thumbnails/13.jpg)
Pivotamento parcial
A maior fonte de ruído numérico é a divisão pelo pivô pois se o pivô for menor que o termo a ser eliminado teremos potencialmente um elevado ruído numérico
Ao escolhermos o maior em módulo da coluna a ser eliminada, reduzimos o ruído numérico
Não há garantia mas funciona bem em muitas situações
![Page 14: Introdução aos Métodos Numéricos - Núcleo de Análise](https://reader030.vdocuments.pub/reader030/viewer/2022012503/617d58e18cb5b66e4c76da30/html5/thumbnails/14.jpg)
Pivotamento parcial
O custo computacional é basicamente o custo da busca do maior elemento em módulo.
Um exemplo do algoritmo para um vetor coluna da matriz
![Page 15: Introdução aos Métodos Numéricos - Núcleo de Análise](https://reader030.vdocuments.pub/reader030/viewer/2022012503/617d58e18cb5b66e4c76da30/html5/thumbnails/15.jpg)
Pivotamento parcial
Seja o vetor de n elementos
● Afirmarmos que o primeiro elemento é o maior em módulo e o guardamos numa variável M, valor provisoriamente de máximo e em IM a linha deste máximo provisório.
v⃗
![Page 16: Introdução aos Métodos Numéricos - Núcleo de Análise](https://reader030.vdocuments.pub/reader030/viewer/2022012503/617d58e18cb5b66e4c76da30/html5/thumbnails/16.jpg)
Pivotamento parcial
Seja o vetor de n elementos
● Afirmarmos que o primeiro elemento é o maior em módulo e o guardamos numa variável M, valor provisoriamente de máximo e em IM a linha deste máximo provisório.
● Se M < |v2| , façamos M=|v2| e IM = 2. Caso não, avançamos para o próximo elemento
v⃗
![Page 17: Introdução aos Métodos Numéricos - Núcleo de Análise](https://reader030.vdocuments.pub/reader030/viewer/2022012503/617d58e18cb5b66e4c76da30/html5/thumbnails/17.jpg)
Pivotamento parcial
Seja o vetor de n elementos
● Afirmarmos que o primeiro elemento é o maior em módulo e o guardamos numa variável M, valor provisoriamente de máximo e em IM a linha deste máximo provisório.
● Se M < |v2| , façamos M=|v2| e IM = 2. Caso não, avançamos para o próximo elemento
● Se M < |v3|, faremos M=|v3|e IM = 3. Caso não, avançamos para o próximo elemento.
v⃗
![Page 18: Introdução aos Métodos Numéricos - Núcleo de Análise](https://reader030.vdocuments.pub/reader030/viewer/2022012503/617d58e18cb5b66e4c76da30/html5/thumbnails/18.jpg)
Pivotamento parcial
Seja o vetor de n elementos
● Afirmarmos que o primeiro elemento é o maior em módulo e o guardamos numa variável M, valor provisoriamente de máximo e em IM a linha deste máximo provisório.
● Se M < |v2| , façamos M=|v2| e IM = 2. Caso não, avançamos para o próximo elemento
● Se M < |v3|, faremos M=|v3|e IM = 3. Caso não, avançamos para o próximo elemento.
● Faremos isto até o último elemento
● Custo computacional por coluna: O(n), custo total O(n2)
v⃗
![Page 19: Introdução aos Métodos Numéricos - Núcleo de Análise](https://reader030.vdocuments.pub/reader030/viewer/2022012503/617d58e18cb5b66e4c76da30/html5/thumbnails/19.jpg)
Pivotamento parcial
Façamos um exemplo para esclarecer a questão de acharmos o maior elemento de um vetor.
Dado o vetor
v⃗=(13
−428
)
![Page 20: Introdução aos Métodos Numéricos - Núcleo de Análise](https://reader030.vdocuments.pub/reader030/viewer/2022012503/617d58e18cb5b66e4c76da30/html5/thumbnails/20.jpg)
Pivotamento parcial
● M = 1, IM = 1
● M <|3|, portanto M = 3, IM = 2
● M < |-4|, portanto M = 4, IM = 3
● M > |2|
● M < |8|, portanto M = 8, IM = 5
v⃗=(13
−428
)
![Page 21: Introdução aos Métodos Numéricos - Núcleo de Análise](https://reader030.vdocuments.pub/reader030/viewer/2022012503/617d58e18cb5b66e4c76da30/html5/thumbnails/21.jpg)
Pivotamento parcial
● M = 1, IM = 1
● M <|3|, portanto M = 3, IM = 2
● M < |-4|, portanto M = 4, IM = 3
● M > |2|
● M < |8|, portanto M = 8, IM = 5. Obtivemos a posição do valor maior em módulo do vetor
v⃗=(13
−428
)
![Page 22: Introdução aos Métodos Numéricos - Núcleo de Análise](https://reader030.vdocuments.pub/reader030/viewer/2022012503/617d58e18cb5b66e4c76da30/html5/thumbnails/22.jpg)
Pivotamento parcial
● Vemos que o custo computacional para a primeira coluna será de n – 1 comparações e no máximo n – 1 trocas.
● Para a segunda coluna serão n – 2 comparações e no máximo n – 2 trocas
![Page 23: Introdução aos Métodos Numéricos - Núcleo de Análise](https://reader030.vdocuments.pub/reader030/viewer/2022012503/617d58e18cb5b66e4c76da30/html5/thumbnails/23.jpg)
Pivotamento parcial
Fica claro que ao aplicar o pivotamento parcial teremos que fazer
comparações
e
no máximo trocas de linhas.
(n−1)+(n−2)+⋯+2+1=n(n−1)
2=O (n2
)
O(n2)
![Page 24: Introdução aos Métodos Numéricos - Núcleo de Análise](https://reader030.vdocuments.pub/reader030/viewer/2022012503/617d58e18cb5b66e4c76da30/html5/thumbnails/24.jpg)
Pivotamento parcial
Fica claro que ao aplicar o pivotamento parcial teremos que fazer
comparações
e
no máximo trocas de linhas.
O custo adicional é relativamente pequeno.
(n−1)+(n−2)+⋯+2+1=n(n−1)
2=O (n2
)
O(n2)
![Page 25: Introdução aos Métodos Numéricos - Núcleo de Análise](https://reader030.vdocuments.pub/reader030/viewer/2022012503/617d58e18cb5b66e4c76da30/html5/thumbnails/25.jpg)
Pivotamento parcial – Um exemplo
O exemplo que será apresentado é ilustrativo da técnica mas é, claramente, desnecessário (sob o ponto de vista numérico) fazer pivotamento deste sistema:
O sistema contém números inteiros e será resolvido com números racionais...
![Page 26: Introdução aos Métodos Numéricos - Núcleo de Análise](https://reader030.vdocuments.pub/reader030/viewer/2022012503/617d58e18cb5b66e4c76da30/html5/thumbnails/26.jpg)
Pivotamento parcial
Comecemos com o sistema
Observe que o maior valor em módulo da primeira coluna está na segunda linha. Troquemos
(4 1 −2 16 2 1 23 −1 9 −11 4 2 −3
) x⃗= (49 /1247 /621 /435 /12
)
![Page 27: Introdução aos Métodos Numéricos - Núcleo de Análise](https://reader030.vdocuments.pub/reader030/viewer/2022012503/617d58e18cb5b66e4c76da30/html5/thumbnails/27.jpg)
Pivotamento parcial
Primeiro pivotamento
Façamos a eliminação
(6 2 1 24 1 −2 13 −1 9 −11 4 2 −3
) x⃗= (47 /649 /1221 /435 /12
)
![Page 28: Introdução aos Métodos Numéricos - Núcleo de Análise](https://reader030.vdocuments.pub/reader030/viewer/2022012503/617d58e18cb5b66e4c76da30/html5/thumbnails/28.jpg)
Pivotamento parcial
Primeiro pivotamento
que resulta em
(6 2 1 24 1 −2 13 −1 9 −11 4 2 −3
) x⃗= (47 /649 /1221 /435 /12
)m21=−a21 /a11=−4 /6=−2/3m31=−a31 /a11=−3 /6=−1/2m41=−a41 /a11=−1 /6
![Page 29: Introdução aos Métodos Numéricos - Núcleo de Análise](https://reader030.vdocuments.pub/reader030/viewer/2022012503/617d58e18cb5b66e4c76da30/html5/thumbnails/29.jpg)
Pivotamento parcial
Primeiro pivotamento
O maior valor em módulo da segunda coluna abaixo da primeira linha está na quarta linha
(6 2 1 20 −1 /3 −8 /3 −1/30 −2 17 /2 −20 11/3 11/6 −10 /3
) x⃗=(47 /6
−41 /364 /3
29 /18)
![Page 30: Introdução aos Métodos Numéricos - Núcleo de Análise](https://reader030.vdocuments.pub/reader030/viewer/2022012503/617d58e18cb5b66e4c76da30/html5/thumbnails/30.jpg)
Pivotamento parcial
Segundo pivotamento
Façamos a eliminação
(6 2 1 20 11/3 11/6 −10 /30 −2 17 /2 −20 −1 /3 −8 /3 −1/3
) x⃗=(47 /6
29 /184 /3
−41 /36)
![Page 31: Introdução aos Métodos Numéricos - Núcleo de Análise](https://reader030.vdocuments.pub/reader030/viewer/2022012503/617d58e18cb5b66e4c76da30/html5/thumbnails/31.jpg)
Pivotamento parcial
Segundo pivotamento
que resulta em
(6 2 1 20 11/3 11/6 −10 /30 −2 17 /2 −20 −1 /3 −8 /3 −1/3
) x⃗=(47 /6
29 /184 /3
−41 /36)
m32=−−2
11 /3=6 /11
m42=−−1 /311/3
=1 /11
![Page 32: Introdução aos Métodos Numéricos - Núcleo de Análise](https://reader030.vdocuments.pub/reader030/viewer/2022012503/617d58e18cb5b66e4c76da30/html5/thumbnails/32.jpg)
Pivotamento parcial
Segundo pivotamento
Observe que o maior valor em módulo da terceira coluna abaixo da segunda linha está na posição correta. Façamos a eliminação
(6 2 1 20 11/3 11/6 −10 /30 0 19 /2 −42/110 0 −5 /2 −7 /11
) x⃗=(47 /6
29 /1873 /33
−131/132)
![Page 33: Introdução aos Métodos Numéricos - Núcleo de Análise](https://reader030.vdocuments.pub/reader030/viewer/2022012503/617d58e18cb5b66e4c76da30/html5/thumbnails/33.jpg)
Pivotamento parcial
Eliminação
que resulta em
(6 2 1 20 11/3 11/6 −10 /30 0 19 /2 −42/110 0 −5 /2 −7 /11
) x⃗=(47 /6
29 /1873 /33
−131/132) m43=−
−5 /219 /2
=5
19
![Page 34: Introdução aos Métodos Numéricos - Núcleo de Análise](https://reader030.vdocuments.pub/reader030/viewer/2022012503/617d58e18cb5b66e4c76da30/html5/thumbnails/34.jpg)
Pivotamento parcial
Eliminação
que a resolução deste sistema triangular nos dará
(6 2 1 20 11/3 11/6 −10 /30 0 19/2 −42/110 0 0 −343 /209
) x⃗=(47 /6
29 /1873/33
−343 /836)
![Page 35: Introdução aos Métodos Numéricos - Núcleo de Análise](https://reader030.vdocuments.pub/reader030/viewer/2022012503/617d58e18cb5b66e4c76da30/html5/thumbnails/35.jpg)
Pivotamento parcial
a solução
(6 2 1 20 11/3 11/6 −10 /30 0 19/2 −42/110 0 0 −343 /209
) x⃗=(47 /6
29 /1873/33
−343 /836)
x 4=−343836
×(−209343 )= 1
4x3=
219 ( 73
33+
4211
×14 )= 1
3 x2=311 ( 11
6×
13−
103
×14 )=1
2
x1=16 (47 /6−2×
12+
1×13
+2×14 )=1
![Page 36: Introdução aos Métodos Numéricos - Núcleo de Análise](https://reader030.vdocuments.pub/reader030/viewer/2022012503/617d58e18cb5b66e4c76da30/html5/thumbnails/36.jpg)
Pivotamento parcial
Solução
x⃗=(1
1/21/31/4
)
![Page 37: Introdução aos Métodos Numéricos - Núcleo de Análise](https://reader030.vdocuments.pub/reader030/viewer/2022012503/617d58e18cb5b66e4c76da30/html5/thumbnails/37.jpg)
Pivotamento parcial e algoritmo de eliminação
Repare que:
O uso do pivotamento parcial resolve a possibilidade de aparecer valores nulos para algum pivô na eliminação gaussiana.
![Page 38: Introdução aos Métodos Numéricos - Núcleo de Análise](https://reader030.vdocuments.pub/reader030/viewer/2022012503/617d58e18cb5b66e4c76da30/html5/thumbnails/38.jpg)
Pivotamento parcial e algoritmo de eliminação
Repare que:
O uso do pivotamento parcial resolve a possibilidade de aparecer valores nulos para algum pivô na eliminação gaussiana.
Conjugar o algoritmo ingênuo com o pivotamento parcial soluciona de forma simples a questão e aumenta a estabilidade do algoritmo simultaneamente
![Page 39: Introdução aos Métodos Numéricos - Núcleo de Análise](https://reader030.vdocuments.pub/reader030/viewer/2022012503/617d58e18cb5b66e4c76da30/html5/thumbnails/39.jpg)
Pivotamento total
A busca do maior valor da matriz agora é feita em toda matriz ou submatriz que ainda não passou pelo processo de eliminação
![Page 40: Introdução aos Métodos Numéricos - Núcleo de Análise](https://reader030.vdocuments.pub/reader030/viewer/2022012503/617d58e18cb5b66e4c76da30/html5/thumbnails/40.jpg)
Pivotamento total
A busca do maior valor da matriz agora é feita em toda matriz ou submatriz que ainda não passou pelo processo de eliminação
Isto exigirá:
● troca de linhas e de colunas
● um algoritmo que compute as mudanças de colunas
● Custo computacional por submatriz O(n2), total O(n3)
![Page 41: Introdução aos Métodos Numéricos - Núcleo de Análise](https://reader030.vdocuments.pub/reader030/viewer/2022012503/617d58e18cb5b66e4c76da30/html5/thumbnails/41.jpg)
Pivotamento total
Pivotamento total
Devido à estas características (aumento de complexidade de algoritmo, aumento de custo computacional) este pivotamento é usado em situações especiais.
Não aprofundaremos o estudo sobre este item.
![Page 42: Introdução aos Métodos Numéricos - Núcleo de Análise](https://reader030.vdocuments.pub/reader030/viewer/2022012503/617d58e18cb5b66e4c76da30/html5/thumbnails/42.jpg)
Casos especiais
Vimos algoritmos genéricos para a resolução de sistemas de equações lineares mas é comum termos sistemas com estruturas particulares que podem ser exploradas para conseguirmos maior eficiência
![Page 43: Introdução aos Métodos Numéricos - Núcleo de Análise](https://reader030.vdocuments.pub/reader030/viewer/2022012503/617d58e18cb5b66e4c76da30/html5/thumbnails/43.jpg)
Casos especiais
Ilustraremos o uso inteligente destas estruturas usando um único exemplo com aplicação da eliminação gaussiana
![Page 44: Introdução aos Métodos Numéricos - Núcleo de Análise](https://reader030.vdocuments.pub/reader030/viewer/2022012503/617d58e18cb5b66e4c76da30/html5/thumbnails/44.jpg)
Sistemas tridiagonais
Um sistema tridiagonal tem a estrutura
e há várias situações onde aparecem sistemas com esta simetria.
(a1 b1 0 0 0 ⋯ 0 0 0c2 a2 b2 0 0 ⋯ 0 0 00 c3 a3 b3 0 ⋯ 0 0 00 0 c4 a4 b4 ⋯ 0 0 0⋮ ⋮ ⋮ ⋮ ⋮ ⋯ ⋮ ⋮ ⋮0 0 0 0 0 ⋯ cn−1 an−1 bn−1
0 0 0 0 0 ⋯ 0 cn an
) x⃗=(d1
d2
d3
d4
⋮dn−1
dn
)
![Page 45: Introdução aos Métodos Numéricos - Núcleo de Análise](https://reader030.vdocuments.pub/reader030/viewer/2022012503/617d58e18cb5b66e4c76da30/html5/thumbnails/45.jpg)
Sistemas tridiagonais
Um sistema tridiagonal tem a estrutura
e há várias situações onde aparecem sistemas com esta simetria.
Observe que teremos que fazer uma única eliminação em cada coluna
(a1 b1 0 0 0 ⋯ 0 0 0c2 a2 b2 0 0 ⋯ 0 0 00 c3 a3 b3 0 ⋯ 0 0 00 0 c4 a4 b4 ⋯ 0 0 0⋮ ⋮ ⋮ ⋮ ⋮ ⋯ ⋮ ⋮ ⋮0 0 0 0 0 ⋯ cn−1 an−1 bn−1
0 0 0 0 0 ⋯ 0 cn an
) x⃗=(d1
d2
d3
d4
⋮dn−1
dn
)
![Page 46: Introdução aos Métodos Numéricos - Núcleo de Análise](https://reader030.vdocuments.pub/reader030/viewer/2022012503/617d58e18cb5b66e4c76da30/html5/thumbnails/46.jpg)
Sistemas tridiagonais
O fator de eliminação do elemento é que aplicado a segunda linha só afetará da seguinte forma
(a1 b1 0 0 0 ⋯ 0 0 0c2 a2 b2 0 0 ⋯ 0 0 00 c3 a3 b3 0 ⋯ 0 0 00 0 c4 a4 b4 ⋯ 0 0 0⋮ ⋮ ⋮ ⋮ ⋮ ⋯ ⋮ ⋮ ⋮0 0 0 0 0 ⋯ cn−1 an−1 bn−1
0 0 0 0 0 ⋯ 0 cn an
) x⃗=(d1
d2
d3
d4
⋮dn−1
dn
)−c2/a1c2
a2 e d2
a2←a2−c2
a1
b1 ;d2←d2−c2
a1
d1
![Page 47: Introdução aos Métodos Numéricos - Núcleo de Análise](https://reader030.vdocuments.pub/reader030/viewer/2022012503/617d58e18cb5b66e4c76da30/html5/thumbnails/47.jpg)
Sistemas tridiagonais
Com isto temos o processo de eliminação na primeira coluna concluído com custo de duas divisões (podendo ser uma), uma soma e uma multiplicação.
Façamos o mesmo procedimento para a segunda linha
![Page 48: Introdução aos Métodos Numéricos - Núcleo de Análise](https://reader030.vdocuments.pub/reader030/viewer/2022012503/617d58e18cb5b66e4c76da30/html5/thumbnails/48.jpg)
Sistemas tridiagonais
O fator de eliminação do elemento é que aplicado a segunda linha só afetará da seguinte forma
(a1 b1 0 0 0 ⋯ 0 0 0c2 a2 b2 0 0 ⋯ 0 0 00 c3 a3 b3 0 ⋯ 0 0 00 0 c4 a4 b4 ⋯ 0 0 0⋮ ⋮ ⋮ ⋮ ⋮ ⋯ ⋮ ⋮ ⋮0 0 0 0 0 ⋯ cn−1 an−1 bn−1
0 0 0 0 0 ⋯ 0 cn an
) x⃗=(d1
d2
d3
d4
⋮dn−1
dn
)−c3 /a2c3
a3 e d3
a3←a3−c3
a2
b2 ;d3←d3−c3
a2
d2
![Page 49: Introdução aos Métodos Numéricos - Núcleo de Análise](https://reader030.vdocuments.pub/reader030/viewer/2022012503/617d58e18cb5b66e4c76da30/html5/thumbnails/49.jpg)
Sistemas tridiagonais
Observe que a generalização do procedimento para as demais linhas é bem simples.
Na enésima linha teremos
![Page 50: Introdução aos Métodos Numéricos - Núcleo de Análise](https://reader030.vdocuments.pub/reader030/viewer/2022012503/617d58e18cb5b66e4c76da30/html5/thumbnails/50.jpg)
Sistemas tridiagonais
O fator de eliminação do elemento é que resulta em
(a1 b1 0 0 0 ⋯ 0 0 0c2 a2 b2 0 0 ⋯ 0 0 00 c3 a3 b3 0 ⋯ 0 0 00 0 c4 a4 b4 ⋯ 0 0 0⋮ ⋮ ⋮ ⋮ ⋮ ⋯ ⋮ ⋮ ⋮0 0 0 0 0 ⋯ cn−1 an−1 bn−1
0 0 0 0 0 ⋯ 0 cn an
) x⃗=(d1
d2
d3
d4
⋮dn−1
dn
)−cn /an−1cn
an←an−cn
an−1
bn−1 ;dn←dn−cn
an−1
dn−1
![Page 51: Introdução aos Métodos Numéricos - Núcleo de Análise](https://reader030.vdocuments.pub/reader030/viewer/2022012503/617d58e18cb5b66e4c76da30/html5/thumbnails/51.jpg)
Sistemas tridiagonais
O algoritmo ficará como
ai←ai−ci
ai−1
bi−1 ;d i←di−c i
ai−1
d i−1 ;i=2,3,⋯n
![Page 52: Introdução aos Métodos Numéricos - Núcleo de Análise](https://reader030.vdocuments.pub/reader030/viewer/2022012503/617d58e18cb5b66e4c76da30/html5/thumbnails/52.jpg)
Sistemas tridiagonais
Sendo este o resultado final da eliminação
Partamos agora para a retrosubstituição adaptada a este caso
(a1 b1 0 0 0 ⋯ 0 0 00 a2 b2 0 0 ⋯ 0 0 00 0 a3 b3 0 ⋯ 0 0 00 0 0 a4 b4 ⋯ 0 0 0⋮ ⋮ ⋮ ⋮ ⋮ ⋯ ⋮ ⋮ ⋮0 0 0 0 0 ⋯ 0 an−1 bn−1
0 0 0 0 0 ⋯ 0 0 an
) x⃗=(d1
d2
d3
d 4
⋮dn−1
dn
)
![Page 53: Introdução aos Métodos Numéricos - Núcleo de Análise](https://reader030.vdocuments.pub/reader030/viewer/2022012503/617d58e18cb5b66e4c76da30/html5/thumbnails/53.jpg)
Sistemas tridiagonais
Teremos o que se segue
xn=dn
an
an−1 xn−1+bn−1 xn=dn−1⇒ xn−1=dn−1−bn−1 xn
an−1
an−2 xn−2+bn−2 xn=dn−2⇒ xn−2=dn−2−bn−2 xn−1
an−2
a1 x1+b1 x2=d1⇒ x1=d1−b1 x2
a1
⋮
![Page 54: Introdução aos Métodos Numéricos - Núcleo de Análise](https://reader030.vdocuments.pub/reader030/viewer/2022012503/617d58e18cb5b66e4c76da30/html5/thumbnails/54.jpg)
Sistemas tridiagonais
O algoritmo tomará a forma
com custo computacional O(n)
xn=dn
an
xi=di−bi x i+1
ai
; i=n−1,⋯,1
![Page 55: Introdução aos Métodos Numéricos - Núcleo de Análise](https://reader030.vdocuments.pub/reader030/viewer/2022012503/617d58e18cb5b66e4c76da30/html5/thumbnails/55.jpg)
Sistemas tridiagonais
A própria maneira que o algoritmo é apresentado nos mostra que este tipo de sistema pode ser armazenado em vetores.
![Page 56: Introdução aos Métodos Numéricos - Núcleo de Análise](https://reader030.vdocuments.pub/reader030/viewer/2022012503/617d58e18cb5b66e4c76da30/html5/thumbnails/56.jpg)
Sistemas tridiagonais
Representarmos este sistema na forma matricial é um inconveniente:
Existem apenas 3n -2 elementos potencialmente não nulos e o restante, n(n-3) – 2 elementos, são nulos.
Ao usamos a estrutura de dados vetor, comum nas linguagens de programação, iremos utilizar de 3n espaços de memória.
![Page 57: Introdução aos Métodos Numéricos - Núcleo de Análise](https://reader030.vdocuments.pub/reader030/viewer/2022012503/617d58e18cb5b66e4c76da30/html5/thumbnails/57.jpg)
Sistemas tridiagonais
Por exemplo:
um sistema com 100 variáveis a determinar, se conservársemos a notação matricial, ocuparíamos 9700 posições com zeros, informação irrelevante para a resolução do sistema.
![Page 58: Introdução aos Métodos Numéricos - Núcleo de Análise](https://reader030.vdocuments.pub/reader030/viewer/2022012503/617d58e18cb5b66e4c76da30/html5/thumbnails/58.jpg)
Sistemas tridiagonais – Um exemplo
Seja o sistema abaixo. Resolva-o pelo uso do algoritmo apresentado
(4 1 0 0 0 01 3 2 0 0 00 2 6 3 0 00 0 −1 5 2 00 0 0 2 3 20 0 0 0 1 7
) x⃗=(61334273547
)
![Page 59: Introdução aos Métodos Numéricos - Núcleo de Análise](https://reader030.vdocuments.pub/reader030/viewer/2022012503/617d58e18cb5b66e4c76da30/html5/thumbnails/59.jpg)
Sistemas tridiagonais – Um exemplo
Passemos da representação matricial para a forma de armazenamento vetorial
(4 1 0 0 0 01 3 2 0 0 00 2 6 3 0 00 0 −1 5 2 00 0 0 2 3 20 0 0 0 1 7
) x⃗=(61334273547
) a⃗=(436537
) ; b⃗=(123220
) ; c⃗=(012
−121
) ; d⃗=(61334273547
)
![Page 60: Introdução aos Métodos Numéricos - Núcleo de Análise](https://reader030.vdocuments.pub/reader030/viewer/2022012503/617d58e18cb5b66e4c76da30/html5/thumbnails/60.jpg)
Sistemas tridiagonais
Apliquemos o algoritmo de eliminação dado por
ai←ai−ci
ai−1
bi−1 ;d i←di−c i
ai−1
d i−1 ;i=2, 3,⋯n
![Page 61: Introdução aos Métodos Numéricos - Núcleo de Análise](https://reader030.vdocuments.pub/reader030/viewer/2022012503/617d58e18cb5b66e4c76da30/html5/thumbnails/61.jpg)
Sistemas tridiagonais – Um exemplo
Façamos a eliminação:
c2
a1
=14
; a2←3−14
1⇒ a2=114
; d2←13−14
6⇒d 2=232
ai← ai−ci
ai−1
bi−1; d i←d i−ci
ai−1
d i−1 ;i=2,3,⋯n
a⃗=(436537
) ; b⃗=(123220
) ; c⃗=(012
−121
) ; d⃗=(6
1334273547
)⇒ a⃗=(4.....); d⃗=(
6.....)
![Page 62: Introdução aos Métodos Numéricos - Núcleo de Análise](https://reader030.vdocuments.pub/reader030/viewer/2022012503/617d58e18cb5b66e4c76da30/html5/thumbnails/62.jpg)
Sistemas tridiagonais – Um exemplo
Façamos a eliminação:
c2
a1
=14
; a2←3−14
1⇒ a2=114
; d2←13−14
6⇒d 2=232
c3
a2
=2
11/4=
811
; a3←6−811
2⇒a3=5011
;d3←34−811
232
⇒ d3=28211
ai← ai−ci
ai−1
bi−1; d i←d i−ci
ai−1
d i−1 ;i=2,3,⋯n
a⃗=(436537
) ; b⃗=(123220
) ; c⃗=(012
−121
) ; d⃗=(6
1334273547
)⇒ a⃗=(4
11 /4....
); d⃗=(6
23 /2....
)
![Page 63: Introdução aos Métodos Numéricos - Núcleo de Análise](https://reader030.vdocuments.pub/reader030/viewer/2022012503/617d58e18cb5b66e4c76da30/html5/thumbnails/63.jpg)
Sistemas tridiagonais – Um exemplo
Façamos a eliminação:
c2
a1
=14
; a2←3−14
1⇒ a2=114
; d2←13−14
6⇒d 2=232
c3
a2
=2
11/4=
811
; a3←6−811
2⇒a3=5011
;d3←34−811
232
⇒ d3=28211
ai← ai−ci
ai−1
bi−1; d i←d i−ci
ai−1
d i−1 ;i=2,3,⋯n
c 4
a3
=−1
50/11=−
1150
; a4←5+1150
3⇒a4=28350
;d 4←27+1150
28211
⇒ d4=81625
a⃗=(436537
) ; b⃗=(123220
) ; c⃗=(012
−121
) ; d⃗=(6
1334273547
)⇒ a⃗=(4
11/450 /11
.
.
.) ; d⃗=(
623 /2
282 /11...
)
![Page 64: Introdução aos Métodos Numéricos - Núcleo de Análise](https://reader030.vdocuments.pub/reader030/viewer/2022012503/617d58e18cb5b66e4c76da30/html5/thumbnails/64.jpg)
Sistemas tridiagonais – Um exemplo
Façamos a eliminação:
c2
a1
=14
; a2←3−14
1⇒ a2=114
; d2←13−14
6⇒d 2=232
c3
a2
=2
11/4=
811
; a3←6−811
2⇒a3=5011
;d3←34−811
232
⇒ d3=28211
ai← ai−ci
ai−1
bi−1; d i←d i−ci
ai−1
d i−1 ;i=2,3,⋯n
c 4
a3
=−1
50/11=−
1150
; a4←5+1150
3⇒a4=28350
;d 4←27+1150
28211
⇒ d4=81625
a⃗=(436537
) ; b⃗=(123220
) ; c⃗=(012
−121
) ; d⃗=(6
1334273547
)⇒ a⃗=(4
11/450 /11283 /50
.
.) ; d⃗=(
623 /2
282 /11816 /25
.
.)
c5
a4
=2
283 /50=
100283
; a5←3−100283
2⇒a5=649283
; d5←35+100283
81625
⇒ d 5=6641283
![Page 65: Introdução aos Métodos Numéricos - Núcleo de Análise](https://reader030.vdocuments.pub/reader030/viewer/2022012503/617d58e18cb5b66e4c76da30/html5/thumbnails/65.jpg)
Sistemas tridiagonais – Um exemplo
Façamos a eliminação:
c2
a1
=14
; a2←3−14
1⇒ a2=114
; d2←13−14
6⇒d 2=232
c3
a2
=2
11/4=
811
; a3←6−811
2⇒a3=5011
;d3←34−811
232
⇒ d3=28211
ai← ai−ci
ai−1
bi−1; d i←d i−ci
ai−1
d i−1 ;i=2,3,⋯n
c 4
a3
=−1
50/11=−
1150
; a4←5+1150
3⇒a4=28350
;d 4←27+1150
28211
⇒ d4=81625
a⃗=(436537
) ; b⃗=(123220
) ; c⃗=(012
−121
) ; d⃗=(6
1334273547
)⇒ a⃗=(4
11/450/11
283 /50649 /283
.) ; d⃗=(
623/2
282/11816 /25
6641 /283.
)
c5
a4
=2
283 /50=
100283
; a5←3−100283
2⇒a5=649283
; d5←35+100283
81625
⇒ d 5=6641283
c6
a5
=1
649 /283=
283649
; a6←7−283649
2⇒ a6=3977649
; d6←47−283649
6641283
⇒ d6=23862649
![Page 66: Introdução aos Métodos Numéricos - Núcleo de Análise](https://reader030.vdocuments.pub/reader030/viewer/2022012503/617d58e18cb5b66e4c76da30/html5/thumbnails/66.jpg)
Sistemas tridiagonais – Um exemplo
Eliminação concluida
a⃗=(436537
) ; b⃗=(123220
) ; c⃗=(012
−121
) ; d⃗=(6
1334273547
)⇒ a⃗=(4
11/450 /11
283 /50649 /283
3977 /649) ;d⃗=(
623/2
282 /11816 /25
6641 /28323862 /649
)
![Page 67: Introdução aos Métodos Numéricos - Núcleo de Análise](https://reader030.vdocuments.pub/reader030/viewer/2022012503/617d58e18cb5b66e4c76da30/html5/thumbnails/67.jpg)
Sistemas tridiagonais
Apliquemos o algoritmo correspondente à retrosubstituição dado por
xn=dn
an
; x i=d i−bi xi+1
ai
; i=n−1,⋯,1
![Page 68: Introdução aos Métodos Numéricos - Núcleo de Análise](https://reader030.vdocuments.pub/reader030/viewer/2022012503/617d58e18cb5b66e4c76da30/html5/thumbnails/68.jpg)
Sistemas tridiagonais
Retrosubstituição:
b⃗=(123220
) ; a⃗=(4
11/450 /11283 /50
649 /2833977 /649
) ; d⃗=(6
23/2282 /11816 /25
6641/28323862 /649
)xn=
dn
an
; xi=d i−bi x i+1
ai
; i=n−1,⋯,1
x6=d6
a6
=23862/6493977 /649
=6
x5=6641/283−2×6
649 /283=
3245 /283649 /283
=5
x4=816 /25−2×5
283 /50=
566 /25283 /50
=4
x3=282/11−3×4
50/11=
150 /1150 /11
=3
x2=23 /2−2×3
11 /4=
11/211 /4
=2
x1=6−1×2
4=1
![Page 69: Introdução aos Métodos Numéricos - Núcleo de Análise](https://reader030.vdocuments.pub/reader030/viewer/2022012503/617d58e18cb5b66e4c76da30/html5/thumbnails/69.jpg)
Sistemas tridiagonais
Solução
x⃗=(123456
)
![Page 70: Introdução aos Métodos Numéricos - Núcleo de Análise](https://reader030.vdocuments.pub/reader030/viewer/2022012503/617d58e18cb5b66e4c76da30/html5/thumbnails/70.jpg)
Sistemas de equações lineares
O uso inteligente do algoritmo de eliminação gaussiana fez com que o custo computacional caia consideravelmente
O mesmo pode ser feito em situações onde a estrutura da matriz permite algoritmos mais eficientes
![Page 71: Introdução aos Métodos Numéricos - Núcleo de Análise](https://reader030.vdocuments.pub/reader030/viewer/2022012503/617d58e18cb5b66e4c76da30/html5/thumbnails/71.jpg)
Sistemas de equações lineares
Existem algoritmos especiais para solução de sistemas de equações específicos que podem reduzir em muito o custo computacional
![Page 72: Introdução aos Métodos Numéricos - Núcleo de Análise](https://reader030.vdocuments.pub/reader030/viewer/2022012503/617d58e18cb5b66e4c76da30/html5/thumbnails/72.jpg)
Sistemas de equações lineares
Um destes sistemas tem como matriz um tipo especial chamado de Matrizes de Toeplitz que resulta de problemas mais sofisticados de processamento numérico.
![Page 73: Introdução aos Métodos Numéricos - Núcleo de Análise](https://reader030.vdocuments.pub/reader030/viewer/2022012503/617d58e18cb5b66e4c76da30/html5/thumbnails/73.jpg)
Sistemas de equações lineares
No item deste curso onde trataremos Interpolação veremos um sistema de equações que pode ser resolvido com custo mais baixo que devido justamente à sua especificidade.O(n3
)