Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Interpolação unidimensional

Paulo Bordoni
November 27, 2018

Interpolação unidimensional

...

Paulo Bordoni

November 27, 2018
Tweet

More Decks by Paulo Bordoni

Other Decks in Education

Transcript

  1. Na aula passada vimos que as quatro funções polinomiais (vetores)

    0 = 1, 1 = , 2 = 2, 3 = 3 constituem uma base (a base canônica) do espaço vetorial 3[−1,1].
  2. Uma outra base é a “base de Lagrange” Em ℙ1[,

    ], que tem dimensão 2, as funções básicas de Lagrange serão nomeadas 0 1 e 1 1 e são polinomiais de grau 1.
  3. A 0 1 é a polinomial de grau 1 que

    satisfaz: 0 1 0 = 1 0 1 ( 1 ) = 0. A 1 1 por sua vez satisfaz: 1 1 0 = 0 1 1( 1 ) = 1. Torno a lembrar o aspecto dual das funções. Definiremos 0 1 e 1 1 ponto-a-ponto.
  4. Para simplificar, “esqueceremos” o índice superior, escrevendo 0 e 1

    . Assim: • 0 () = ( − 1 )/( 0 − 1 ) • 1 () = ( − 0 )/( 1 – 0 ) . Sim, basta substituir por 0 e por 1 nessas expressões para confirmar.
  5. A combinação linear 0 0 + 1 1 é a

    reta que passa pelos pontos 0 , 0 e 1 , 1 . Confirme analisando a figura:
  6. O programa que mostra 0 , 1 , 0 0

    , 1 1 e 0 0 () + 1 1 ()
  7. Bem, uma função polinomial de grau dois, responde tua pergunta.

    Isto se os pontos já não estiverem alinhados. Mestra, qual a função que passa por três pontos dados?
  8. Em ℙ2[, ], que tem dimensão três, as funções básicas

    (também) serão nomeadas 0 2 , 1 2 2 2(). Elas são polinomiais de grau 2. Elas são definidas pelas 9 condições: • 0 2 0 = 1, 0 2 1 = 0, 0 2( 2 ) = 0 • 1 2 0 = 0, 1 2 1 = 1, 1 2( 2 ) = 0 • 2 2 2 = 0, 2 2 1 = 0, 2 2( 2 ) = 1
  9. Assim o grau 2 das 3 funções básicas 2 ficará

    sub-entendido e a definição anterior se reescreve: • 0 0 = 1, 0 1 = 0, 0 ( 2 ) = 0 • 1 0 = 0, 1 1 = 1, 1 ( 2 ) = 0 • 2 2 = 0, 2 1 = 0, 2 ( 2 ) = 1 Novamente , para simplificar, vamos deixar de indicar o índice superior 2 das 2 .
  10. Assim a definição anterior se resume em: • 0 =

    0, , = 1,2,3, • 1 = 1, , = 1,2,3, • 2 = 2, , = 1,2,3, 3 igualdades em cada linha, ou ainda mais: = , , = 1,2,3 e = 1,2,3 6 igualdades numa linha só ! Físicos costumam resumir todas essas igualdades usando o “delta de Dirac”, definido por , = ቊ 1 = 0 ≠
  11. As expressões para as outras duas funções básicas são: 1

    = ( − 0 )( − 2 ) (1 − 0 )(1 − 2 ) , 2 = ( − 0 )( − 1 ) (2 − 0 )(2 − 1 ) . Confira que, definindo 0 () pela expressão 0 = ( − 1 )( − 2 ) (0 − 1 )(0 − 2 ) teremos 0 = 0 . Claramente 1 = 1 e 2 = 2 .
  12. Este programa gera as polinomiais da base de Lagrange do

    espaço das funções polinomiais de grau menor ou igual a 2.
  13. Para fazer 0 () passar pelo ponto = (0.3,1.4) basta

    multiplicá-la por 1.4. Vejam no desenho:
  14. • Multiplicando 1 () por um número 1 , a

    função escalada 1 1 () passará pelo ponto ( 1 , 1 ); • Multiplicando 2 () por um número 2 , a função escalada 2 2 () passará pelo ponto ( 2 , 2 ). A mesma ideia se aplica às outras duas funções básicas:
  15. Este programa gera a polinomial de grau dois (≤ 2)

    que passa pelos pontos ( 0 , 0 ), ( 1 , 1 ), ( 2 , 2 ) utilizando a base de Lagrange do espaço das funções polinomiais de grau ≤ 2.
  16. Marquei em vermelho a parte que gera os gráficos das

    3 funções básicas escaladas e da polinomial.
  17. Estas ideias tem sido usadas, a séculos, para aproximar funções

    por retas e por parábolas. Vou passear um pouco pela história.
  18. http://locomat.loria.fr Parte de uma página do “Canon mathematicus” de Viète

    (1579). Nela estão tabelados valores de senos, cossenos, tangentes, etc de 4º à 4º30’
  19. Em 1614, no livro “Mirifici Logarithmorum Canonis Descriptio”, J. Napier

    descreve um método para calcular produtos em termos de somas. Nasciam os logaritmos. O livro apresenta ainda 90 páginas com tabelas para utilização do seu método
  20. () () a b () () A figura ilustra uma

    forma de aproximar o valor de () a partir dos valores conhecidos (tabelados) () e (). = + aproxima () com erro = − () . Interpolação linear é o nome técnico para isto!
  21. () () () () () Na interpolação quadrática, o erro

    = − () é bem menor. Agora a interpoladora = 2 + + é uma polinomial do 2º grau.
  22. log(x∗y) = log(x) + log(y) log(x/y) = log(x) - log(y)

    A régua de cálculo foi um instrumento analógico largamente utilizado pelos engenheiros até surgirem as máquinas de calcular científicas nos anos 70. Elas utilizavam escalas logarítmicas e as duas propriedades abaixo:
  23. f Aproximar! A norma ∙ ∞ mede a proximidade de

    funções de forma uniforme, em todo um intervalo. De fato, sejam , ∈ ℬ , . Afirmar que − ∞ < corresponde a assegurar que g fica dentro de uma faixa com largura uniforme envolta de f . Na figura a faixa rosa, de a até b.
  24. f p Se f é uma função contínua num intervalo

    fechado [, ] então, para qualquer precisão > 0, existe uma polinomial ∈ ℙ tal que − ∞ < . O teorema de aproximação de Weierstrass é um resultado de existência de aproximações polinomiais globais fundamental:
  25. Nessa fórmula, cada polinomial de Lagrange é definida, para =

    0,1, ⋯ , , por = ෑ =1,≠ ( − ) ( − ) , ∈ [, ] Formalizando (Teor.3.2 de Burden & Fayres) : Dada uma função : [, ] → ℝ, ∈ +1[, ], e uma partição , = {0 = , 1 , ⋯ , = } existe uma única polinomial ∈ ℙ[, ] que interpola nos pontos da partição, dada por = ෍ =0 ( ) () .
  26. Ah Loirinha, já vimos esse produtório antes. Quando = 2

    temos: 0 2 = ( − 1 )( − 2 ) (0 − 1 )(0 − 2 ) , 1 2 = ( − 0 )( − 2 ) (1 − 0 )(1 − 2 ) , 2 2 = ( − 0 )( − 1 ) (2 − 0 )(2 − 1 ) . Juro que não entendi nada !
  27. Então, como lá teremos − ≤ +1 ∞ + 1

    ! − 0 ⋯ − . E, se os pontos forem igualmente espaçados de ℎ, +1 − () ≤ +1 ∞ ℎ+1 + 1 ! . Se a derivada de ordem + 1, (+1), de for contínua no intervalo [, ], ela será limitada. Então (Teor.3.3 de Burden & Fayres) podemos calcular (+1) ∞ = max ∈[,] (+1) () , como na polinomial de Taylor!
  28. • Recebe: 1. Um intervalo [, ], 2. A expressão

    () de uma função, 3. Um número de pontos para criar uma partição uniforme de , . • Constrói a interpoladora de Lagrange da função usando a rotina lagrange() da SciPy. • E devolve: 1. Uma tabela dos pares dos pares , ( ) , 2. Os gráficos de e da interpoladora de Lagrange da função sobre a partição , . Faremos um programa que:
  29. Mestres! Por que a interpolação de Lagrange só aparece lá

    no final da scipy.interpolate e não no logo no início lista? Na verdade ela está escondida nas duas que o Mestre marcou!
  30. Não deixem de acessar e ler o artigo. Lá estão

    detalhados os algoritmos de Krogh empregados pela scipy.interpolate Inclusive o artigo compara número de operações com os algoritmos de Lagrange e Aitken/Neville, mostrando que os propostos por Krogh tem melhor performance.
  31. • = ( ) • , +1 = +1 −

    +1− • , +1 , +2 = +1, +2 − , +1 +1− • , +1 , +2 , +3 = +1, +2 , +3 − , +1, +2 +1− • E assim por diante Os algoritmos de Krogh usam as fórmulas de diferenças divididas finitas (DDF) de Newton, definidas recursivamente por: Não entendi essas diferenças divididas!
  32. Repito, não entendi! Vai explicar ou não ?!...?! Morri de

    medo, meu Kruguinho querido! Mestre, faça um programa que constrói uma tabela de diferenças divididas finitas.
  33. Mestra, por quê a escadaria no final da tabela ?

    Devido à recursividade, minha filha!
  34. Uma colega que não foi aprovada em Cálculo Numérico no

    período anterior disse que o professor exigia que essas tabelas de DDF fossem feitas à mão. Já ouvi falar dessa besteira. São mestres da idade da pedra.
  35. Mestra, a DDF2 de uma polinomial de grau 2 é

    constante, e igualzinha à derivada 2ª e a DDF3 é identicamente nula.
  36. Pois é Surfista, compare os gráficos da função e suas

    derivadas com os gráficos das DDFs e conclua.
  37. Kruguinho, repeti tudo para a função = (). Já vimos

    no curso que as diferenças finitas são aproximações para as derivadas!
  38. A polinomial interpoladora de Lagrange, pelos n+1 pontos (0 ,

    0 ), (1 , 1 ) ⋯ , ( , ), é dada pela: = 0 + 0 , 1 1 + 0 , 1 , 2 2 + ⋯ ⋯ + 0 , 1 , ⋯ , (), onde = ( − 0 )( − 1 ) ⋯ ( − −1 ) Fórmula de interpolação com as DDFs de Newton
  39. Com alguma manipulação algébrica é possível mostrar que as fórmulas

    de Newton e de Lagrange são iguais. Loirinha e Surfista, façam essas continhas para as interpoladoras de grau 1 e 2.
  40. Um programa para interpolar uma função : [, ] →

    ℝ e sua derivada usando o algoritmo de Krogh.
  41. Eis um artigo de peso! Nele os autores recuperam conceitualmente

    a interpolação de Lagrange como um algoritmo ótimo!
  42. Um programa que constrói as interpoladoras com o algoritmo baricêntrico.

    O código é praticamente o mesmo da interpoladora de Krogh !
  43. Marquei a difusão de X pela f, a construção da

    interpoladora e a função erro.
  44. O resultado com 7 pontos não é nada bom; parece

    que o erro aumenta nos extremos!
  45. Como antes, está ruim, muito o erro. Vou experimentar mais

    pontos para ver o comportamento do erro. Experimente esta outra função, () = 1/(1 + 2), Use 7 pontos.
  46. Com 9 melhorou no centro, mas o erro aumentou nos

    estremos. Com 15 pontos o erro disparou!
  47. Loirinha, você tocou num ponto crucial. Para valores igualmente espaçados,

    ao aumentarmos o grau da interpoladora, surge o fenômeno de Runge! Mestres, parece que aumentar o grau da polinomial interpoladora não melhora a precisão da interpolação.
  48. Aumentar o grau da interpoladora só piora a situação. Confiram.

    O fenômeno de Runge demonstra que a interpolação é um algoritmo mal condicionado.
  49. Com 31 pontos o erro é 18 vezes maior que

    o valor da máximo da função Ele Ru(n)ge cada vez mais e vai devorar o Mestre! Pois é Surfista, mas para a função de Runge, = 1/(1 + 2), isto não acontece!
  50. E aí Mestres, como faremos para matar esse leão? DIVIDIR

    PARA CONQUISTAR! Um mantra na computação.