Baixe o app para aproveitar ainda mais
Prévia do material em texto
> Disciplina: MODELAGEM MATEMÁTICA Aula 6: Métodos de interpolação polimonial Apresentação Nas aulas passadas, você estudou diversas técnicas de resolução de problemas clássicos em Engenharia, envolvendo o cálculo de raízes de uma função real e a resolução de sistemas de equações lineares algébricas. Naturalmente, os assuntos foram diferentes entre si, mas em todos os casos nós tínhamos como dado do problema uma função real de uma única variável ou um conjunto de funções reais com várias variáveis. Dada esta função, o objetivo era identi�car um valor ou um conjunto de valores pertencentes ao conjunto dos números reais. Vamos estudar um problema diferente. Agora, são dados n pontos distintos (x , f(x )), (x , f(x )), (x , f(x )),..., (x , f(x )), mas nós não temos a função f(x). Assim, o objetivo agora é determinar um polinômio p(x) que, de algum modo, seja próximo da função f(x), ao menos nos pontos x , x , x , …,x dados. Desta forma, hoje você começará a estudar o conceito de aproximação polinomial, o qual se apresenta sob duas modalidades – a interpolação polinomial e o ajuste de funções. 0 0 1 1 2 2 n-1 n-1 0 1 2 n-1 Objetivo Descrever os principais métodos de interpolação polinomial: Lagrange e Newton. Aplicar os métodos estudados com suporte da linguagem de programação Python. O conceito de interpolação polimonial Conforme descrito em Moura (2017), o objetivo das técnicas de interpolação polinomial é determinar um polinômio p(x) que passe por um conjunto {x } de pontos – em outras palavras, que os interpole, satisfazendo a relação p(x ) = f(x ). Vejamos gra�camente o que signi�ca este conceito com o auxílio da Figura 1 apresentada a seguir: i i i Figura 1 – Interpolação polinomial de (x , f(x )), (x , f(x )) e (x , f(x )) a partir do polinômio p(x).0 0 1 1 2 2 Na �gura em destaque, vemos a interpolação de 3 pontos: (x , f(x )), (x , f(x )) e (x , f(x )) por meio de um polinômio p(x), que está indicado em uma linha contínua azul. A característica marcante do polinômio p(x) é que p(x )= f(x ), p(x ) = f(x ) e p(x ) = f(x ). É importante, caro (a) aluno(a), que você perceba desde já que nós não conhecemos a função f(x), indicada em uma linha vermelha tracejada na �gura. Ela está aqui ilustrada apenas para lembrá-lo (a) que p(x) não é, necessariamente, a função f(x) original, mas uma aproximação desta última, escolhida por atender às igualdades indicadas anteriormente - p(x )= f(x ), p(x ) = f(x ) e p(x ) = f(x ). Logo, o desa�o que temos na aula de hoje é conhecer os métodos que permitem determinar este polinômio interpolador p(x). Poderíamos utilizar várias estratégias. Uma das mais naturais consiste em empregar a Relação de Girard. Segundo esta relação, quando se tem n pontos distintos, como (x , f(x )), (x , f(x )), (x , f(x )),… e (x , f(x )), sempre existem polinômios interpoladores p(x) de grau maior ou igual a n-1. Além disto, ainda de acordo com a relação de Girard, nós podemos garantir que existe somente um polinômio p(x) com grau n-1 que interpole os n pontos dados. Logo, se considerarmos n = 4 para �ns de visualização, a relação de Girard nos permite a�rmar que existe somente um polinômio interpolador de grau 3 que passe pelos pontos dados. Ou seja, teremos que: 𝑝(𝑥 ) = 𝑎 +𝑎 .(𝑥 ) + 𝑎 .(𝑥 ) + 𝑎 .(𝑥 ) 𝑝(𝑥 ) = 𝑎 +𝑎 .(𝑥 )+𝑎 .(𝑥 ) + 𝑎 .(𝑥 ) 𝑝(𝑥 ) = 𝑎 + 𝑎 .(𝑥 ) + 𝑎 .(𝑥 ) + 𝑎 .(𝑥 ) 𝑝(𝑥 ) = 𝑎 + 𝑎 .(𝑥 ) + 𝑎 .(𝑥 ) + 𝑎 .(𝑥 ) 0 0 1 1 2 2 0 0 1 1 2 2 0 0 1 1 2 2 0 0 1 1 2 2 n-1 n-1 0 0 1 0 2 0 2 3 0 3 1 0 1 1 2 1 2 3 3 3 2 0 1 2 2 2 2 3 2 3 3 0 1 3 2 3 2 3 3 3 Assim, nós temos um sistema de equações lineares, nas quais as incógnitas são os coe�cientes a , a , a e a . Colocando este sistema sob a forma de representação matricial, temos o produto matricial apresentado a seguir: 0 1 2 3 Nas aulas anteriores, nós vimos diversas formas de resolver estes sistemas. No entanto, existem métodos mais e�cientes, como os de Lagrange e de Newton, que estudaremos na próxima seção. Venha comigo! = ⎡ ⎣ ⎢⎢⎢⎢⎢ 1 1 1 1 x0 x1 x2 x3 ( )x0 2 ( )x1 2 ( )x2 2 ( )x3 2 ( )x0 3 ( )x1 3 ( )x2 3 ( )x3 3 ⎤ ⎦ ⎥⎥⎥⎥⎥ ⎡ ⎣ ⎢⎢⎢⎢ a0 a1 a2 a3 ⎤ ⎦ ⎥⎥⎥⎥ ⎡ ⎣ ⎢⎢⎢⎢ f( )x0 f( )x1 f( )x2 f( )x3 ⎤ ⎦ ⎥⎥⎥⎥ Atenção! Aqui existe uma videoaula, acesso pelo conteúdo online Métodos de interpolação O primeiro método que estudaremos é o Método de Lagrange. Dados os n pontos originais (x , f(x )), (x , f(x )), (x , f(x )),… e (x , f(x )), determinamos o polinômio interpolador p(x) a partir dos denominados polinômios de Lagrange L (x), de tal forma que: Para se determinar os polinômios de Lagrange, utilizamos a seguinte fórmula geral: Conforme indicado em Moura (2017), temos que, com o modelo adotado, cada polinômio Li(x) não só contêm os pontos originais como também atende à Relação de Girard. Além disto, é importante que você note que não foram incluídos os termos (x – x ) no numerador, nem o termo (x – x ) no denominador, pois isto anularia os valores do numerador e do denominador, respectivamente. 0 0 1 1 2 2 n- 1 n-1 i p(x) = (x) f( )∑n −1i = 0 Li xi (x) = Li (x − )(x − x1)…(x − )(x − )(x − )x0 xi−1 xi+1 xn−1( − )( − )…( − )( − )( − )xi x0 xi x1 xi xi−1 xi xi+1 xi xn−1 i i i Atenção! Aqui existe uma videoaula, acesso pelo conteúdo online Assim, temos que o polinômio interpolador da função f(x), determinado a partir dos pontos originais (x , f(x )), (x , f(x )), (x , f(x )),… e (x , f(x )), é dado pela fórmula apresentada no início desta seção. Vamos ver um exemplo de aplicação, extraído de Moura (2017)? 0 0 1 1 2 2 n-1 n-1 Dados os pontos (1,2), (3,5) e (4,6), determine o valor da função interpoladora para x = 2. Como você pode perceber, não sabemos qual é a função original, pois temos apenas 3 pontos dados. Além disto, não temos o valor da função para x = 2. Assim, em primeiro lugar, precisamos determinar a função interpoladora com os pontos dados: Assim, montamos a tabela apresentada a seguir: x f(x) 1 2 3 5 4 6 Com base nestes pontos dados, apresenta-se, a seguir, o valor de f(2), obtido a partir de interpolação polinomial mediante emprego do Método de Lagrange. Assim, tem-se que: Assim, obter o valor interpolado de f(2) signi�ca calcular p(2). Utilizando a expressão de Lagrange para o cálculo do polinômio interpolador, temos que: O segundo método que estudaremos nesta aula é o Método de Newton. Considere os mesmos n pontos originais (x , f(x )), (x , f(x )), (x , f(x )),… e (x , f(x )). Assim, determinamos o polinômio interpolador p(x) a partir dos denominados polinômios de Newton Pi(x), de tal forma que: Onde: P (x) = 1 P (x) = (x – x ) P (x) = (x – x ).(x – x ) P (x) = (x – x ).(x – x )...(x-x ) Assim, por exemplo, quando temos n = 4, temos que 𝑃(𝑥 ) = 𝑎 𝑃 (𝑥 ) + 𝑎 𝑃 (𝑥 ) + 𝑎 𝑃 (𝑥 ) + 𝑎 𝑃 (𝑥 ) = 𝑓(𝑥 ) 𝑃(𝑥 ) = 𝑎 𝑃 (𝑥 ) + 𝑎 𝑃 (𝑥 ) + 𝑎 𝑃 (𝑥 ) + 𝑎 𝑃 (𝑥 ) = 𝑓(𝑥 ) 𝑃(𝑥 ) = 𝑎 𝑃 (𝑥 ) + 𝑎 𝑃 (𝑥 ) + 𝑎 𝑃 (𝑥 ) + 𝑎 𝑃 (𝑥 ) = 𝑓(𝑥 ) 𝑃(𝑥 ) = 𝑎 𝑃 (𝑥 ) + 𝑎 𝑃 (𝑥 ) + 𝑎 𝑃 (𝑥 ) + 𝑎 𝑃 (𝑥 ) = 𝑓(𝑥 ) (x) = = L0 (x − 3)(x − 4)(1 − 3)(1 − 4) (x − 3)(x − 4) 6 (x) = = L1 (x − 1)(x − 4)(3 − 1)(3 − 4) (x − 1)(x − 4) −2 (x) = = L2 (x − 1)(x − 3)(4 − 1)(4 − 3) (x − 1)(x − 3) 3 p(2) = (2) f( ) + (2) f( ) + (2) f( ) =L0 x0 L1 x1 L2 x2 = . 2 + . 5 + . 6 =2 6 (−2) (−2) (−1) 3 = + 5 − 2 = 2 3 11 3 Atenção! Aqui existe uma videoaula, acesso pelo conteúdo online 0 0 1 1 2 2 n-1 n-1 p(x) = (x)∑n −1i = 0 ai Pi 0 1 0 2 0 1 k 0 1 k-1 0 0 0 0 1 1 0 2 2 0 3 3 0 0 1 0 0 1 1 1 1 2 2 1 3 3 1 1 2 0 0 2 1 1 2 2 2 2 3 3 2 2 3 0 0 3 1 1 3 2 2 3 3 3 3 3 Da mesma forma que vimos no início desta aula, vemos que esta notação equivale a um sistema de equações lineares, que pode ser resolvido com as técnicas que estudamos nas Aulas 4 e 5. Para auxiliá-lo a perceber esta relação, veja o mesmo sistema, sóque agora representado sob a forma matricial: Para ver como utilizar o método de Newton, vamos resolver o mesmo exemplo que estudamos no método de Lagrange. Assim, considere o seguinte enunciado: Dados os pontos (1,2), (3,5) e (4,6), determine o valor da função interpoladora para x = 2. Como você pode perceber, não sabemos qual é a função original, pois temos apenas 3 pontos dados. Além disto, não temos o valor da função para x = 2. Assim, em primeiro lugar, precisamos determinar a função interpoladora com os pontos dados: Assim, montamos a tabela apresentada a seguir: × = ⎡ ⎣ ⎢⎢⎢⎢ ( )P0 x0 ( )P0 x1 ( )P0 x2 ( )P0 x3 0 ( )P1 x1 ( )P1 x2 ( )P1 x3 0 0 ( )P2 x2 ( )P2 x3 0 0 0 ( )P3 x3 ⎤ ⎦ ⎥⎥⎥⎥ ⎡ ⎣ ⎢⎢⎢⎢ a0 a1 a2 a3 ⎤ ⎦ ⎥⎥⎥⎥ ⎡ ⎣ ⎢⎢⎢⎢ f( )x0 f( )x1 f( )x2 f( )x3 ⎤ ⎦ ⎥⎥⎥⎥ x f(x) 1 2 3 5 4 6 Com base nestes pontos dados, apresenta-se, a seguir, o valor de f(2), obtido a partir de interpolação polinomial mediante emprego do Método de Newton. Deste modo, temos que: P (x) = 1 P (x) = (x – 1) P (x) = (x – 1).(x – 3) Em primeiro lugar, precisamos calcular os coe�cientes do polinômio interpolador. A representação matricial do sistema de equações lineares correspondente é: 0 1 2 Resolvendo-se o SELA anterior com base no emprego dos métodos de Eliminação de Gauss e Substituição Retroativa, tem-se que Deste modo, temos que Substituindo a expressão obtida para x = 2, temos: × = ⎡ ⎣ ⎢ (1)P0 (3)P0 (4)P0 0 (3)P1 (4)P1 0 0 (4)P2 ⎤ ⎦ ⎥ → ⎡ ⎣ ⎢ 1 1 1 0 2 3 0 0 3 ⎤ ⎦ ⎥ ⎡ ⎣ ⎢ a0 a1 a2 ⎤ ⎦ ⎥ ⎡ ⎣ ⎢ 2 5 6 ⎤ ⎦ ⎥ = 2 ; = ; = a0 a1 3 2 a2 −1 6 p(x) = (x) + (x) + (x) = 2. 1 + (x − 1) + (x − 1) (x − 3)a0 P0 a1 P1 a2 P2 32 −1 6 p(2) = 2 + + = = 3 2 1 6 22 6 11 3 Como era de se esperar, o resultado obtido aqui com o Método de Newton foi o mesmo que encontramos com o Método de Lagrange. Isto se dá porque ambos os métodos apresentam técnicas distintas, mas com os mesmos princípios – a aproximação de n pontos distintos dados em uma função interpoladora de grau n-1, a qual é única, segundo a Relação de Girard. Aplicação da linguagem Python Vamos ver os códigos em Python destes dois métodos? Com isto, creio que você estará em condições de aplicar os conhecimentos aprendidos em implementações computacionais que o ajudem a solucionar problemas em Engenharia. O método de Lagrange pode ser resolvido com emprego do pacote scipy. Em particular, podemos empregar a função scipy.interpolate.lagrange para obter uma função interpoladora. A entrada da função consiste em 2 vetores, um para representar os valores de x e o outro para assinalar os valores correspondentes de f(x). A saída da função apresenta os coe�cientes da função interpoladora. O código, a seguir, disponível em Scipy (2019), apresenta um exemplo para interpolação da função x em 3 pontos (x = 0, x = 1 e x = 2): 3 nome_do_arquivo.html >>> from scipy.interpolate import lagrange >>> x = np.array([0, 1, 2]) >>> y = x**3 >>> poly = lagrange(x, y) >>> from numpy.polynomial.polynomial import Polynomial >>> Polynomial(poly).coef array([ 3., -2., 0.]) Já o método de Newton pode ser empregado da seguinte forma: nome_do_arquivo.html >>>f = interpolate.BarycentricInterpolator(x, y) >>> yn = f(xn) Atividades 1. Assinale a única alternativa que apresenta a função de interpolação para os pontos (0,1), (2,5) e (4,17). a) f(x) = x + 12 b) f(x) = x - 12 c) f(x) = x + 32 d) f(x) = x - 32 e) nenhuma das alternativas anteriores 2. Assinale a única alternativa que apresenta a função de interpolação para os pontos (1,3), (2,7) e (4,6). a) f(x) = + − 4−3x 2 2 17x 2 b) f(x) = − − 4−3x2 2 17x 2 c) f(x) = + − 43x2 2 17x 2 d) f(x) = − − 43x 2 2 17x 2 e) nenhuma das alternativas anteriores 3. Assinale a única alternativa que apresenta a função de interpolação para os pontos (1,3), (2,5) e (4,9). a) f(x) = 2x + 1 b) f(x) = 2x - 1 c) f(x) = -2x - 1 d) f(x) = -2x + 1 e) nenhuma das alternativas anteriores 4. Assinale a única alternativa que apresenta a função de interpolação para os pontos (1,3), (2,10) e (4,16). a) f(x) = + 11x −−4x 2 3 20 3 b) f(x) = + 11x +−4x2 3 20 3 c) f(x) = − 11x −4x2 3 20 3 d) f(x) = + 11x +4x 2 3 20 3 e) nenhuma das alternativas anteriores 5. Assinale a única alternativa que apresenta a função de interpolação para os pontos (1,3), (2,8) e (4,13). a) f(x) = + − −5x2 6 15x 2 11 3 b) f(x) = + − 5x2 6 15x 2 11 3 c) f(x) = − − −5x 2 6 15x 2 11 3 d) f(x) = + + −5x 2 6 15x 2 11 3 e) nenhuma das alternativas anteriores NotasReferências MOURA, D. F. C, Cálculo Numérico. Rio de Janeiro: SESES, 2017. 144 p. SCIPY.ORG. Disponível em https://docs.scipy.org/doc/scipy/reference/generated/scipy.interpolate.lagrange.html, acesso em 23 de novembro de 2019. SCIPY.ORG. Interpolation methods in Scipy. Disponível em https://mmas.github.io/interpolation-scipy, acesso em 23 de novembro de 2019. Próxima aula Os métodos de ajuste de funções para funções polinomiais; javascript:void(0); javascript:void(0); Implementar os métodos estudados em Python, aplicando-os em situações-problema típicas em Engenharia. Explore mais Assim, segue uma lista de sites na Internet para que você os consulte depois: Fernandes, J. Aula 32 – Cálculo Numérico: Interpolação Polinomial – Método de Lagrange. Disponível em https://www.youtube.com/watch?v=DZdSEz8lhPg, acesso em 23 de novembro de 2019. Fernandes, J. Aula 33 – Cálculo Numérico: Interpolação Polinomial – Método de Newton. Disponível em https://www.youtube.com/watch?v=l9Dha59GeUE, acesso em 23 de novembro de 2019. Neri, I. Interpolação Polinomial – Vídeo 01 – Método de Lagrange. Disponível em https://www.youtube.com/watch? v=Y9sa2S-ljX8, acesso em 23 de novembro de 2019. javascript:void(0); javascript:void(0); javascript:void(0);
Compartilhar