Introdução aos Métodos Numéricos
Instituto de Computação UFFDepartamento de Ciência da Computação
Otton Teixeira da Silveira Filho
Conteúdo temático
● Interpolação
Conteúdo específico
● Instabilidade Numérica
● Polinômios malcondicionados
● Fenômeno de Runge
● Algumas observações úteis
● Exercícios
Interpolação
Mas a interpolação, não importando a técnica, pode apresentar problemas...
Interpolação
Mas a interpolação, não importando a técnica, pode apresentar problemas...
Como qualquer criação humana...
Interpolação
Para este estudo usaremos o Maxima mais uma vez
● Mal_poli
onde veremos uma questão numérica que os polinômios carregam
Interpolação
Polinômios podem ser mal-condicionados e o condicionamento tende a piorar com o aumento do grau
Fenômeno de Runge
Interpolemos a função
no intervalo [-1,1] com pontos igualmente espaçados usando 3, 5, 7 e 9 pontos.
f (x)=1
1+25 x2
Fenômeno de Runge
O efeito da interpolação com mais e mais pontos igualmente espaçados está representado na figura
Fenômeno de Runge
● Observe que a interpolação piora como um todo quando aumentamos o grau do polinômio interpolante
● A interpolação melhora na parte próxima ao centro da figura
● A interpolação piora nos extremos do intervalo de interpolação
Fenômeno de Runge
Para este estudo usaremos o Maxima mais uma vez
● Exemplo_de_Runge4
● Runge_derivadas
● O_porque
Leve em conta a fórmula de erro para a interpolação que apresentamos anteriormente
Fenômeno de Runge
Deste estudo chegamos a três questões:
● Não controlamos as derivadas da função original
● Usar pontos igualmente espaçados pode gerar problemas
● Os pontos calculados nos extremos do intervalo de interpolação são mais sensíveis a apresentarem problemas
Interpolação
Num resumo:
● compreendamos o problema no qual estamos trabalhando
● devemos encarar cada problema como único
● todas as técnicas, numéricas ou não, tem suas limitações
● Use pontos extras nos extremos
Interpolação
Interpolação: como usar
● Estude a natureza do seu problema
● Evite usar polinômios de ordem “alta“ (n>10)
● Verifique qual a técnica mais adequada em termos computacionais
Interpolação
Interpolação: como usar as técnicas aqui apresentadas
● Se o polinômio é necessário na forma canônica, vá pela solução do sistema
● Se o número de valores a serem interpolados é menor que o número de pontos interpolantes, use Lagrange
● Se os pontos são igualmente espaçados, use Newton-Gregory
Interpolação
Interpolação: como usar as técnicas aqui apresentadas
● Se o número de valores a serem interpolados é maior que o número de pontos interpolantes, resolva o sistema e use o algoritmo de Horner
● Se você necessitar adicionar pontos, use Newton-Gregory
Interpolação
Interpolação: como usar as técnicas aqui apresentadas
● Se o número de valores a serem interpolados é maior que o número de pontos interpolantes, resolva o sistema e use o algoritmo de Horner
● Se você necessitar adicionar pontos, use Newton-Gregory
● Estas regras são gerais e podem não valer para um caso específico
Interpolação
Vamos a um exercício...
Interpolação – Mais um Exemplo
Dada a função tabelada abaixo, dê a melhor estimativa possível para o ponto de máximo. Justifique seus procedimentos.
x 0,6 1,1 1,6 2,1
y 2,341 2,491 2,451 2,24
Interpolação – Mais um Exemplo
Dada a função tabelada abaixo, dê a melhor estimativa possível para o ponto de máximo. Justifique seus procedimentos.
O que se quer?
x 0,6 1,1 1,6 2,1
y 2,341 2,491 2,451 2,24
Interpolação – Mais um Exemplo
Dada a função tabelada abaixo, dê a melhor estimativa possível para o ponto de máximo. Justifique seus procedimentos.
O que se quer?
Para o que se quer?
x 0,6 1,1 1,6 2,1
y 2,341 2,491 2,451 2,24
Interpolação – Mais um Exemplo
Dada a função tabelada abaixo, dê a melhor estimativa possível para o ponto de máximo. Justifique seus procedimentos.
O que se quer?
Para o que se quer?
O que temos?
x 0,6 1,1 1,6 2,1
y 2,341 2,491 2,451 2,24
Interpolação – Mais um Exemplo
Dada a função tabelada abaixo, dê a melhor estimativa possível para o ponto de máximo. Justifique seus procedimentos.
O que se quer?
Para o que se quer?
O que temos?
Qual a técnica mais conveniente ao problema?
x 0,6 1,1 1,6 2,1
y 2,341 2,491 2,451 2,24
Interpolação – Mais um Exemplo
Observe que necessitamos do ponto de máximo de uma função que não temos.
x 0,6 1,1 1,6 2,1
y 2,341 2,491 2,451 2,24
Interpolação – Mais um Exemplo
Observe que necessitamos do ponto de máximo de uma função da qual não temos a expressão.
Para obter uma aproximação da função usaremos interpolação.
Os pontos igualmente espaçados nos sugere Newton-Gregory?
x 0,6 1,1 1,6 2,1
y 2,341 2,491 2,451 2,24
Interpolação – Mais um Exemplo
Observe que necessitamos do ponto de máximo de uma função da qual não temos a expressão.
Para obter uma aproximação da função usaremos interpolação.
Os pontos igualmente espaçados nos sugere Newton-Gregory? Claro que não!
x 0,6 1,1 1,6 2,1
y 2,341 2,491 2,451 2,24
Interpolação – Mais um Exemplo
Observe que necessitamos do ponto de máximo de uma função da qual não temos a expressão.
Para obter uma aproximação da função usaremos interpolação.
Os pontos igualmente espaçados nos sugere Newton-Gregory? Claro que não!
Nosso objetivo só é possível se derivarmos o polinômio
● Derivar o polinômio dado por Newton-Gregory é mais trabalhoso que na forma canônica
x 0,6 1,1 1,6 2,1
y 2,341 2,491 2,451 2,24
Interpolação – Mais um Exemplo
Nosso objetivo só é possível se derivarmos o polinômio
Derivar o polinômio dado por Newton-Gregory é (assim como achar as raizes deste polinômio) mais trabalhoso que na forma canônica
Interpolação – Mais um Exemplo
Como desejamos a melhor estimativa possível, usaremos todos os pontos
x 0,6 1,1 1,6 2,1
y 2,341 2,491 2,451 2,24
Interpolação – Mais um Exemplo
Resolvamos o sistema para determinar os coeficientes do polinômio interpolador, no caso, de grau 3.
x 0,6 1,1 1,6 2,1
y 2,341 2,491 2,451 2,24
(1 x0 x0
2 x03
1 x1 x12 x1
3
1 x2 x22 x2
3
1 x3 x32 x3
3 )(a0
a1
a2
a3
)=(y0
y1
y2
y3
)
Interpolação – Mais um Exemplo
Teremos para os pontos dados
e daí o sistema
(1 0,6 0,36 0,2161 1,1 1,21 1,3311 1,6 2,56 4,0961 2,1 4,41 9,261
) (a0
a1
a2
a3
)=(2,3412,4912,4512,24
)
x 0,6 1,1 1,6 2,1
y 2,341 2,491 2,451 2,24
Interpolação – Mais um Exemplo
Resolvendo...
(1 0,6 0,36 0,2161 1,1 1,21 1,3311 1,6 2,56 4,0961 2,1 4,41 9,261
) (a0
a1
a2
a3
)=(2,3412,4912,4512,24
).
m21=−1/1=−1m31=−1/1=−1m41=−1/1=−1
Interpolação – Mais um Exemplo
Resolvendo...
(1 0,6 0,36 0,2160 0,5 0,85 1,1150 1 2,2 3,880 1,5 4,05 9,045
) (a0
a1
a2
a3
)=(2,3410,150,11
−0,101)
.
.m32=−1 /0,5=−2m42=−1,5 /0,5=−3
(1 0,6 0,36 0,2161 1,1 1,21 1,3311 1,6 2,56 4,0961 2,1 4,41 9,261
) (a0
a1
a2
a3
)=(2,3412,4912,4512,24
).
m21=−1/1=−1m31=−1/1=−1m41=−1/1=−1
Interpolação – Mais um Exemplo
Resolvendo...
(1 0,6 0,36 0,2160 0,5 0,85 1,1150 0 0,5 1,650 0 1,5 5,7
) (a0
a1
a2
a3
)=(2,3410,15
−0,19−0,551
)...
m43=−1,5 /0,5=−3
Interpolação – Mais um Exemplo
Resolvendo...
(1 0,6 0,36 0,2160 0,5 0,85 1,1150 0 0,5 1,650 0 1,5 5,7
) (a0
a1
a2
a3
)=(2,3410,15
−0,19−0,551
)...
m43=−1,5 /0,5=−3
(1 0,6 0,36 0,2160 0,5 0,85 1,1150 0 0,5 1,650 0 0 0,75
) (a0
a1
a2
a3
)=(2,3410,15
−0,190,019
)
Interpolação – Mais um Exemplo
Observe que o fato dos pontos serem ordenados e igualmente espaçados facilita os cálculos
(1 0,6 0,36 0,2160 0,5 0,85 1,1150 0 0,5 1,650 0 0 0,75
) (a0
a1
a2
a3
)=(2,3410,15
−0,190,019
)
Interpolação – Mais um Exemplo
Resolvendo...
(1 0,6 0,36 0,2160 0,5 0,85 1,1150 0 0,5 1,650 0 0 0,75
) (a0
a1
a2
a3
)=(2,3410,15
−0,190,019
)0,75 a3=0,019⇒ a3=0,019 /0,75=0,025 33
Interpolação – Mais um Exemplo
Resolvendo...
(1 0,6 0,36 0,2160 0,5 0,85 1,1150 0 0,5 1,650 0 0 0,75
) (a0
a1
a2
a3
)=(2,3410,15
−0,190,019
)0,75 a3=0,019⇒ a3=0,019 /0,75=0,025 33
0,5 a2+1,65 a3=−0,19⇒a2=1
0,5(−0,19−1,65×0,025 33 )=−0,4636
Interpolação – Mais um Exemplo
Resolvendo...
(1 0,6 0,36 0,2160 0,5 0,85 1,1150 0 0,5 1,650 0 0 0,75
) (a0
a1
a2
a3
)=(2,3410,15
−0,190,019
)0,75 a3=0,019⇒ a3=0,019 /0,75=0,025 33
0,5 a2+1,65 a3=−0,19⇒a2=1
0,5(−0,19−1,65×0,025 33 )=−0,4636
0,5 a1+0,85 a2+1,115 a3=0,15⇒a1=1
0,5[0,15−0,85×(−0,4636)−1,115×0,025 33 ]=1,03162 66
Interpolação – Mais um Exemplo
Resolvendo...
(1 0,6 0,36 0,2160 0,5 0,85 1,1150 0 0,5 1,650 0 0 0,75
) (a0
a1
a2
a3
)=(2,3410,15
−0,190,019
)0,75 a3=0,019⇒ a3=0,019 /0,75=0,025 33
0,5 a2+1,65 a3=−0,19⇒a2=1
0,5(−0,19−1,65×0,025 33 )=−0,4636
0,5 a1+0,85 a2+1,115 a3=0,15⇒a1=1
0,5[0,15−0,85×(−0,4636)−1,115×0,025 33 ]=1,03162 66
a0+0,6 a1+0,36a2+0,215a3=2,341
a0=2,341−0,6×1,03162 66−0,36×(−0,4636)−0,216×0,025(33)=1,883448
Interpolação – Mais um Exemplo
Polinômio interpolador
Derivando para determinar o máximo...
p3(x)=1,883448+1,0316266 x−0,4636 x2+0,02533 x3
Interpolação – Mais um Exemplo
Polinômio interpolador
Derivando para determinar o máximo...
p3(x)=1,883448+1,0316266 x−0,4636 x2+0,02533 x3
p3(x)'=1,0316266−0,9272 x+0,076 x2
=0
x=−(−0,9272)±√(−0,9272)2−4×0,076×1,03162 66
2×0,076=
0,9272±√0,546086350,152
Interpolação – Mais um Exemplo
As raízes da derivada do polinômio interpolador são
Observe que somente um destes pontos está dentro do intervalo de interpolação
A resposta do problema é aproximadamente 1,238
10,9616878 e 1,23831213
x 0,6 1,1 1,6 2,1
y 2,341 2,491 2,451 2,24
Interpolação
● A inexperiência num assunto pode nos levar a agir impulsivamente o que, algumas vezes, resulta em dificuldades
Interpolação
● A inexperiência num assunto pode nos levar a agir impulsivamente o que, algumas vezes, resulta em dificuldades
● O foco deve estar no problema e não na nossa pretensa comodidade
Interpolação
● A inexperiência num assunto pode nos levar a agir impulsivamente o que, algumas vezes, resulta em dificuldades
● O foco deve estar no problema e não na nossa pretensa comodidade
● Observe que o sistema de equações gerado na interpolação é mais simples que um sistema genérico
Interpolação
● A inexperiência num assunto pode nos levar a agir impulsivamente o que, algumas vezes, resulta em dificuldades
● O foco deve estar no problema e não na nossa pretensa comodidade
● Observe que o sistema de equações gerado na interpolação é mais simples que um sistema genérico
● Usar poucas casas decimais nem sempre facilita resolver o problema
Interpolação – Tópico avançado
Resolução eficiente do sistema com a matriz de Vandermonde
Já tínhamos observado que a estrutura desta matriz poderia proporcionar uma maneira mais eficiente na sua resolução
(1 x0 x0
2 x03
⋯ x0n
1 x1 x12 x1
3 ⋯ x1n
1 x2 x22 x2
3⋯ x2
n
1 x3 x32 x3
3⋯ x3
n
⋮ ⋮ ⋮ ⋮ ⋯ ⋮
1 xn xn2 xn
3⋯ xn
n)(a0
a1
a2
a3
⋮an
)=(y0
y1
y2
y3
⋮yn
)
Interpolação – Resolução eficiente m. Vandermonde
Resolução eficiente do sistema com a matriz de Vandermonde
Aqui apresentaremos o pseudocódigo que pode ser encontrado no livro
Matrix Computations de Gene H. Golub e Charles F. Van Loan que tem custo computacional O(n2).
Interpolação – Resolução eficiente m. Vandermonde
Resolução eficiente do sistema com a matriz de Vandermonde
para k = 0 até n-1 para i de n-1 até k yi = (yi – yi-1)/(xi – xi-k-1)
para k = n-2 até 0 para i de k até n-2 yi = yi+1 * xk
Interpolação – Resolução eficiente m. Vandermonde
Resolução eficiente do sistema com a matriz de Vandermonde
Este pseudocódigo parte dos pontos interpolantes armazenados em dois vetores x e y. Os valores de y são destruídos no processo.
● Após o primeiro par de laços, y contém os coeficientes da fórmula de Newton-Gregory
● Após o segundo par de laços, y contém os coeficientes do polinômio na forma canônica
Interpolação – Resolução eficiente m. Vandermonde
Este algoritmo pode ser feito também com o uso de tabelas fazendo com que o método partindo do sistema se torne competitivo com cálculos manuais em termos de custo computacional em relação aos outros métodos aqui apresentados.