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

Aproximação e interpolação

Aproximação e interpolação

Veja a apresentação no site do Porofessor!

Paulo Bordoni

July 15, 2016
Tweet

More Decks by Paulo Bordoni

Other Decks in Education

Transcript

  1. Sim, pois: 1. Toda polinomial é uma combinação finita de

    elementos de ℬ - isto é, ℬ gera ℙ( , 2. Além disso, ℬ é um subconjunto LI de ℙ , , já que todo subconjunto finito de elementos distintos de ℬ é LI. A sequência ℬ = { 0 , 1 , … , … } das funções polinomiais definidas por = , para ∈ [, ] é uma base (de Hamel) de ℙ( , ).
  2. Você deu as respostas na própria pergunta, Loirinha: • De

    fato, não são polinomiais; • São definidas através de séries e séries não são somas, mas limites de somas. Mestra, as funções cos , , log(), não são polinomiais e mas, pela série de Taylor, são somas de polinomiais.
  3. Pisou na bola Loirinha! O número não é racional, apesar

    de ser aproximado por uma sequência de racionais: 3.1, 3.14, 3.141, 3.1415 … É mesmo, que idiotice a minha! E cada termo é uma soma finita de frações decimais: 3.1415 = 3 + 0.1 + 0.04 + 0.001 + 0.0005
  4. Além da base canônica, vimos outras bases para o espaço

    das polinomiais. As de Chebyshev, Legendre, Laguerre, Hermite. Em todas elas, as funções básicas formam uma sequência de polinomiais cujos graus estão em ordem crescente: 0, 1, 2, …
  5. Uma forma alternativa é usar a “base de Lagrange” Em

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

    0 (0 ) = 1 0 ( 1 ) = 0. A 1 por sua vez satisfaz: 1 ( 0 ) = 0 1 ( 1 ) = 1. Torno a lembrar o aspecto dual das funções. Definiremos 0 , 1 , ponto-a-ponto.
  7. É trivial confirmar que: 0 () = ( − 1

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

    reta que passa pelos pontos 0 , 0 e 1 , 1 . Os dados são os abaixo.
  9. O programa que mostra 0 , 1 , 0 0

    , 1 1 e 0 0 () + 1 1 ()
  10. 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?
  11. Em ℙ2[, ], que tem dimensão três, as funções básicas

    (também) serão nomeadas 0 (), 1 () 2 (). Elas são polinomiais de grau 2. Elas são definidas pelas 9 condições: • 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
  12. 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 = 1, 0 1 = 0, 0 2 = 0
  13. Este programa gera as polinomiais da base de Lagrange do

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

    multiplicá-la por 1.4. Vejam no desenho:
  15. • 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:
  16. 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.
  17. Marquei em vermelho a parte que gera os gráficos das

    3 funções básicas escaladas e da polinomial.
  18. 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.
  19. 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’
  20. Rheticus foi aluno de Copérnico e o apoiou na divulgação

    do heliocentrismo. Em particular na publicação da obra maior de Copérnico: “De revolutionibus orbium coelestium”
  21. Um sextante, aparelho usado nas grandes navegações. Assim como o

    relógio e a corda com nós, para medir a velocidade de um barco.
  22. Hoje temos o GPS, que mostra nossa posição via satélite.

    Inclusive ajuda a navegar nas cidades.
  23. O sistema geocêntrico (Ptolomeu), a Igreja/Inquisição e o julgamento de

    Galileu Galilei. O heliocentrismo com Copérnico,
  24. 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
  25. Obtivemos essas informações no site do Gresham College. O texto

    a seguir, sobre Briggs, é parte da apresentação às minhas costas.
  26. Que encadeamento fantástico! Percebam a importância de boas escolas e

    bons Professores! Briggs convenceu Johann Kepler sobre as vantagens da invenção de Napier. Kepler usou logaritmos para calcular as posições de Marte, o que conduziu-o a descobrir as leis do movimento planetário. A reputação de Kepler foi fundamental na disseminação do uso de logaritmos em toda a Europa. Isaac Newton usou as leis de Kepler para descobrir a lei da gravidade.
  27. Elas eram usadas para efetuar multiplicações e divisões, de forma

    rápida, num tempo em que não haviam computadores, nem máquinas de calcular. Mestres, afinal de contas, para que eram utilizadas as tábuas de logaritmo?
  28. 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:
  29. As tábuas de logaritmos e das funções trigonométricas eram utilizadas

    para efetuar aproximações lineares, como nessa figura que fiz. () () a b
  30. O foco da aula de hoje é aproximar funções por

    polinomiais, mas de forma global e não local, como a série de Taylor.
  31. 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.
  32. 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:
  33. f p O teorema de Weierstrass não oferece uma forma

    construtiva para obter a polinomial p. Entretanto os polinômios de Bernstein oferecem uma forma construtiva para obter p.
  34. Esse teorema de Weierstrass informa que ℙ[, ] é denso

    em [, ]. Ah, sim! Da mesma forma que ℚ é denso em ℝ .
  35. Surfista, você acabou de dizer que: “Podemos aproximar um número

    real (como π, p/ex.) com qualquer número de casas decimais (i.é, com qualquer precisão ε > 0)”. Parafraseando o Mestre: “Podemos aproximar uma função contínua por uma polinomial com qualquer precisão ε > 0.”
  36. Começaremos por entender aproximação via interpolação polinomial. A interpolação é

    uma técnica para calcular resultados numéricos aproximados de dados não tabelados, a partir de dados funcionais de valores vizinhos tabelados.
  37. () () a b () () Interpolar, é o nome

    técnico para isto! A figura objetiva ilustrar que podemos aproximar por () o valor de () a partir dos valores conhecidos (tabelados) () e ().
  38. Com a NumPy e a base de Lagrange, aprendemos a

    construir funções polinomiais que “passam” por pontos dados. É só juntar essa duas idéias?
  39. Sim Loirinha, a ideia de aproximar uma função : ,

    → ℝ através de interpolação por uma polinomial de grau n é óbvia! É só passar a polinomial pelos pontos (0 , 0 ), (1 , 1 ), ⋯ , ( , ), onde 0 = 0 1 = 1 ⋮ = , com 0 = , = .
  40. • 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:
  41. Mestres! Por que a interpolação de Lagrange não aparece nessa

    lista? Ela está escondida nas duas que o Mestre marcou!
  42. 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.
  43. • = ( ) • , +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!
  44. 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.
  45. Mestra, a DDF2 de uma polinomial de grau 2 é

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

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

    no curso que as diferenças finitas são aproximações para as derivadas!
  48. 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
  49. 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.
  50. A interpoladora de Lagrange, calculada através do algoritmo de Krogh.

    Para os mesmos dados, um resultado idêntico.
  51. Eis um artigo de peso! Nele os autores recuperam conceitualmente

    a interpolação de Lagrange como um algoritmo ótimo!
  52. Veja Surfista. O programa com a barycentric é muito parecido

    com o anterior. Incluí a função erro.
  53. Admitindo-se que: • , e (+1) existe em , •

    ≤ 0 < 1 < ⋯ < ≤ então para todo [0 , ], existe um número entre 0 e tal que • = + +1 (), onde: • é a polinomial interpoladora de grau por 0 , 0 , 1 , 1 , ⋯ , , , • +1 = +1 ( ) + 1 ! − 0 − 1 ⋯ − Teorema da interpolação polinomial Vocês poderão encontrar a demonstração do teorema a seguir em livros de Análise Numérica.
  54. Então, como lá teremos +1 () ≤ +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 [0 , ], ela será limitada. Então podemos calcular (+1) ∞ = max [0,] (+1) () , como na polinomial de Taylor!
  55. Loirinha, você tocou num ponto crucial. Para valores igualmente espaçados,

    ao aumentarmos o grau da interpoladora, surge o fenômeno de Runge! Mestres, aumentando o grau n da polinomial interpoladora conseguiremos melhorar a precisão?
  56. Veja só que coisa terrível! Nesse exemplo vemos que o

    erro cresceu assustadoramente com o grau. Ele dispara nos extremos!
  57. A interpolação baricêntrica não resolve o fenômeno de Runge, que

    não é um problema de estabilidade, mas é devido ao mau condicionamento da interpolação de Lagrange para pontos igualmente espaçados.
  58. Vejam que o fenômeno de Runge não ocorreu com a

    função () em 0, 2 . Inclusive nem dá para ver a função erro – está “colada” no eixo-x!
  59. Entretanto o fenômeno de Runge já se manifesta para a

    função () em −3, 3 e grau 14 na interpoladora. Porém quando aumentamos o grau da interpoladora para 20 ele volta a desaparecer.
  60. Pois é Surfista, mas para a função = 1/(1 +

    2) isto não acontece! Ela Runge mais ainda!