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

Aproximação e interpolação

Aproximação e interpolação

...

Paulo Bordoni

June 21, 2018
Tweet

More Decks by Paulo Bordoni

Other Decks in Education

Transcript

  1. As funções polinomiais em ℝ constituem um subespaço de ℱ.

    E ele é anotado . Sim: • A soma de polinomiais também é uma função polinomial. • A múltipla de uma função polinomial não perde a sua qualidade.
  2. O conceito de base de um espaço vetorial desempenha um

    papel fundamental para operar com as polinomiais.
  3. Lembrem-se, uma base B de um espaço vetorial V é

    um subconjunto linearmente independente maximal. Maximal significa: se ∉ então ∪ será LD.
  4. A base canônica dos vetores-coluna de ordem 3, o ℝ3,

    é 1 = 1 0 0 , 2 = 0 1 0 , 3 = 0 0 1 , É. Ela que permite escrevermos 2.1 −0.7 1.5 = 2.1 1 0 0 + (−0.7) 0 1 0 + 1.5 0 0 1
  5. A base canônica do espaço vetorial 2, das funções polinomiais

    de grau menor ou igual a 2, é constituída pelas polinomiais: 0 () = 0 = 1, 1 () = 1 = , 2 () = 2 . A ideia é a mesma. Para a polinomial = 2.1 + 0.7 + 1.5 2 temos = 2.1 0 + 0.7 1 + 1.5 2
  6. Mestre, bastou passar os coeficientes da polinomial. Da mesma forma

    que passamos as coordenadas para vetores coluna!
  7. 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.
  8. 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.
  9. É trivial confirmar que: 0 () = ( − 1

    )/( 0 − 1 ), 1 () = ( − 0 )/( 1 – 0 ). Sim, basta substituir por 0 e por 1 nessas expressões para confirmar.
  10. 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.
  11. O programa que mostra 0 , 1 , 0 0

    , 1 1 e 0 0 () + 1 1 ()
  12. 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?
  13. 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
  14. 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
  15. Este programa gera as polinomiais da base de Lagrange do

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

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

    3 funções básicas escaladas e da polinomial.
  20. 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.
  21. 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’
  22. 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”
  23. 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.
  24. Hoje temos o GPS, que mostra nossa posição via satélite.

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

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

    a seguir, sobre Briggs, é parte da apresentação às minhas costas.
  28. 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.
  29. 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?
  30. 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:
  31. 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.
  32. 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.
  33. 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:
  34. 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.
  35. Esse teorema de Weierstrass informa que ℙ[, ] é denso

    em [, ]. Ah, sim! Da mesma forma que ℚ é denso em ℝ .
  36. 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.”
  37. 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.
  38. () () a b () () () aproxima (). Interpolar,

    é o nome técnico para isto! A figura ilustra uma forma de aproximar o valor de () a partir dos valores conhecidos (tabelados) () e ().
  39. 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?
  40. 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 = , = .
  41. • 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:
  42. 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.
  43. 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!
  44. Mestres! Por que a interpolação de Lagrange não aparece nessa

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

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

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

    no curso que as diferenças finitas são aproximações para as derivadas!
  52. 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
  53. 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.
  54. Um programa para interpolar uma função : [, ] →

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

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

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

    interpoladora e a função erro.
  58. Aumentar ainda mais o grau da polinomial interpoladora só piorou

    a situação. O erro nos extremos aumentou muito!
  59. 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.
  60. Pois é Surfista, mas para a função de Runge, =

    1/(1 + 2), isto não acontece! O erro Ru(n)ge cada vez mais!