Fórmula de Lagrange: mudanças entre as edições
(Criou página com 'Baseado no fato de que sobre <math>N</math> pontos <math>(X_1,Y_1), (X_2,Y_2), \cdots, (X_N,Y_N)</math> passa um ''único'' polinômio de grau <math>N-1</math>, o '''Polinômio d...') |
Sem resumo de edição |
||
(4 revisões intermediárias por 2 usuários não estão sendo mostradas) | |||
Linha 1: | Linha 1: | ||
== Polinômios de Lagrange == | |||
Baseado no fato de que sobre <math>N</math> pontos <math>(X_1,Y_1), (X_2,Y_2), \cdots, (X_N,Y_N)</math> passa um ''único'' polinômio de grau <math>N-1</math>, o '''Polinômio de Lagrange''' pode ser usado como fórmula de interpolação ou extrapolação: | Baseado no fato de que sobre <math>N</math> pontos <math>(X_1,Y_1), (X_2,Y_2), \cdots, (X_N,Y_N)</math> passa um ''único'' polinômio de grau <math>N-1</math>, o '''Polinômio de Lagrange''' pode ser usado como fórmula de interpolação ou extrapolação: | ||
Linha 12: | Linha 14: | ||
</math> | </math> | ||
é | é um polinômio de grau <math>\;N-1</math> em <math>\;x</math>. | ||
Tendo em vista que <math>L_i(X_j)=\delta_{i,j}\;,</math> onde o delta de Kronecker | Tendo em vista que <math>L_i(X_j)=\delta_{i,j}\;,</math> onde o delta de Kronecker | ||
Linha 23: | Linha 25: | ||
== Exemplo 1 == | |||
[[Image:lagrangen2.png|right|frame|Fórmula de Lagrange para N=2.]] | |||
Para exemplificar a fórmula de Lagrange, consideramos primeiramente uma reta que passa pelos pontos <math>(X_1,Y_1) = (1,9)</math> e <math>(X_2,Y_2) = (2,13)</math>, tendo assim <math>N = 2</math>. Aplicando a fórmula de Lagrange, temos | |||
:<math>L_1 = \frac{x-X_2}{X_1-X_2} = \frac{x-2}{1-2} = -(x-2)</math> | |||
e | |||
:<math>L_2 = \frac{x-X_1}{X_2-X_1} = \frac{x-1}{2-1} = (x-1)</math>, | |||
assim, o polinômio de Lagrange que passa pelos pontos desejados é dado por: | |||
:<math>P(x)=\sum_{i=1}^N Y_i L_i(x) = Y_1L_1 + Y_2L_2 = 9(-x+2) + 13(x-1) = 4x + 5 </math>. | |||
Note que substituindo na equação acima, <math>P(1) = 9</math> e <math>P(2) = 13</math>. | |||
== Exemplo 2 == | |||
[[Image:lagrangen3.png|right|frame|Fórmula de Lagrange para N=3.]] | |||
Verificando a fórmula de Lagrange para <math>N = 3</math>. Suponhamos que desejamos encontrar qual é o polinômio que passa pelos pontos <math>(X_1,Y_1) = (2,4)</math>, <math>(X_2,Y_2) = (3,9)</math> e <math>(X_3,Y_3) = (6,36)</math>. Temos que: | |||
:<math>L_1 = \left(\frac{x-X_2}{X_1-X_2}\right) \left(\frac{x-X_3}{X_1-X_3}\right) = \left(\frac{x-3}{2-3}\right) \left(\frac{x-6}{2-6}\right) = \frac{x^2-9x+18}{4}</math>, | |||
:<math>L_2 = \left(\frac{x-X_1}{X_2-X_1}\right) \left(\frac{x-X_3}{X_2-X_3}\right) = \left(\frac{x-2}{3-2}\right) \left(\frac{x-6}{3-6}\right) = -\frac{x^2-8x+12}{3}</math> | |||
e | |||
:<math>L_3 = \left(\frac{x-X_1}{X_3-X_1}\right) \left(\frac{x-X_2}{X_3-X_2}\right) = \left(\frac{x-2}{6-2}\right) \left(\frac{x-3}{6-3}\right) = \frac{x^2-5x+6}{12}</math>, | |||
assim | |||
:<math>P(x)=\sum_{i=1}^N Y_i L_i(x) = Y_1L_1 + Y_2L_2 + Y_3L_3 = 4\frac{x^2-9x+18}{4} - 9\frac{x^2-8x+12}{3} + 36\frac{x^2-5x+6}{12} = x^2 </math>. | |||
== Exemplo 3 == | |||
Para ilustrar graficamente o método da fórmula de Lagrange, usaremos um exemplo com <math>N=4</math>. Considerando os quatro pontos <math>(X_1,Y_1) = (-1,5)</math>, <math>(X_2,Y_3) = (1,2)</math>, <math>(X_3,Y_3) = (-3,5)</math> e <math>(X_4,Y_4) = (7,4)</math>, as equações <math>L_i</math> ficam | |||
:<math>L_1 = -\frac{1}{64}(x^3-11x^2+31x-21)</math>, | |||
:<math>L_2 = \frac{1}{24}(x^3-9x^2+11x+21)</math>, | |||
:<math>L_3 = -\frac{1}{32}(x^3-7x^2-x+7)</math> | |||
e | |||
:<math>L_4 = \frac{1}{192}(x^3-3x^2-x+3)</math>. | |||
O gráfico abaixo mostra os quatro pontos <math>(X_i,Y_i)</math>, as curvas <math>L_iY_i</math> e a curva final <math>P(x)</math>. Lembre-se que <math>P(x)</math> é a curva gerada pela soma dos polinômios <math>L_iY_i</math>. Note que a curva <math>L_1Y_1</math> passa pelo ponto <math>(X_1,Y_1)</math>, assim como as demais e a curva <math>P(x)</math> passa por todos os pontos. | |||
[[Imagem:lagrange.png|800px]] | |||
== Numericamente == | |||
Na prática, a implementação numérica do polinômio de Lagrange é complicada. | |||
Computacionalmente não é possível fazer um programa geral para interpolação de ordem arbitrária, isto é fazer um programa que, com os N pontos de entrada <math>{X_i,Y_i}</math>, devolva um polinômio <math>P(x)</math> interpolador de grau N. Isto envolve computação simbólica (do tipo utilizada em programas proprietários como o Mathematica, Maple, ou livres como Maxima). | |||
Por outro lado a implementação numérica do método na força bruta envolve um duplo laço de ordem N: | |||
devem ser somados N termos (os <math>L_i(x)</math>) onde cada um deles é construído como um produto de N-1 termos; ao todo <math>N^2</math> cálculos para cada ponto x (isto fica como exercício a partir da fórmula | |||
geral do <math>P(x)</math>). | |||
O Algoritmo de Neville [http://www.physics.utah.edu/~detar/phys6720/handouts/interpolation/interpolation/node4.html], [[Implementação do algoritmo de Neville]], é muito útil na realização desta tarefa.Ao final, veremos que o polinômio interpolador de grau n pode ser reconstruído com polinômios de grau n-1. Este processo gera uma fórmula de recorrência, que é um recurso bastante comum em algoritmos computacionais. | |||
Para | Para deduzirmos esta fórmula de recorrência, começamos aproximando cada intervalo por um valor constante. Podemos representar esta aproximação por | ||
<math>P_1(x)=Y_1,\; P_2(x)=Y_2,\; \cdots\,\; P_N(x)=Y_N</math>. | |||
Melhorando a descrição, empregando agora uma aproximação linear em cada intervalo <math>[X_i,\;X_{i+1}]</math>, denotamos por <math>P_{12}(x),\;P_{23}(x),\; \cdots,\; P_{N-1,N}(x)</math>, onde <math>P_{i,i+1}(x)\;</math>é o polinômio que passa exatamente sobre | |||
<math>P_1(x)=Y_1,\; P_2(x)=Y_2,\; \cdots\,\; P_N(x)=Y_N</math>. Melhorando a descrição, empregando agora uma aproximação linear em cada intervalo <math>[X_i,\;X_{i+1}]</math>, denotamos por <math>P_{12}(x),\;P_{23}(x),\; \cdots,\; P_{N-1,N}(x)</math>, onde <math>P_{i,i+1}(x)\;</math>é o polinômio que passa exatamente sobre | |||
<math>(X_i,Y_i)\;</math>e<math>\;(X_{i+1},Y_{i+1})</math>: | <math>(X_i,Y_i)\;</math>e<math>\;(X_{i+1},Y_{i+1})</math>: | ||
Linha 48: | Linha 107: | ||
Isto sugere que há uma relação entre os polinômios de ordem <math>\;n</math> com os de ordem <math>\;n+1</math>. | Isto sugere que há uma relação entre os polinômios de ordem <math>\;n</math> com os de ordem <math>\;n+1</math>. | ||
Para verificar isto, vamos considerar, agora, uma parábola passando | Para verificar isto, vamos considerar, agora, uma parábola passando exatamente sobre | ||
<math>(X_i,Y_i)\;,(X_{i+1},Y_{i+1})</math> e<math>\;(X_{i+2},Y_{i+2})</math>, que denotaremos por,<math>\;P_{i,i+1,i+2}(x)</math>: | <math>(X_i,Y_i)\;,(X_{i+1},Y_{i+1})</math> e<math>\;(X_{i+2},Y_{i+2})</math>, que denotaremos por,<math>\;P_{i,i+1,i+2}(x)</math>: | ||
Linha 108: | Linha 167: | ||
D^{(2)}_{k,i}(x)=P_{i,i+1,\cdots,i+k}(x)-P_{i+1,i+2,\cdots,i+k}(x)\;. | D^{(2)}_{k,i}(x)=P_{i,i+1,\cdots,i+k}(x)-P_{i+1,i+2,\cdots,i+k}(x)\;. | ||
</math> | </math> | ||
Ao invés de se gerar <math>\;P(x)</math> a partir da relação de recorrência para <math>P_{i,i+1,\cdots,i+k}(x)</math>, pode-se utilizar as equações acima e obter relações de recorrência para <math>\;D^{(1)} \mbox{ e } D^{(2)}</math>. No final, obtemos <math>\;P(x)</math> a partir destas quantidades. Este desenvolvimento é deixado como exercício. | Ao invés de se gerar <math>\;P(x)</math> a partir da relação de recorrência para <math>P_{i,i+1,\cdots,i+k}(x)</math>, pode-se utilizar as equações acima e obter relações de recorrência para <math>\;D^{(1)} \mbox{ e } D^{(2)}</math>. No final, obtemos <math>\;P(x)</math> a partir destas quantidades. Este desenvolvimento é deixado como exercício. | ||
É importante notar que em nenhum ponto da discussão foi evocada a necessidade dos pontos <math>\;\{X_i\}</math> serem igualmente espaçados. Portanto, as fórmulas apresentadas aqui podem ser aplicadas em situações bastante gerais. | É importante notar que em nenhum ponto da discussão foi evocada a necessidade dos pontos <math>\;\{X_i\}</math> serem igualmente espaçados. Portanto, as fórmulas apresentadas aqui podem ser aplicadas em situações bastante gerais. | ||
Linha 117: | Linha 174: | ||
---- | ---- | ||
Como discutido na seção [[Interpolação e extrapolação]], é desaconselhável o uso de polinômios de grau elevado. Por isto, apenas um pequeno subconjunto dos valores tabulados, nas vizinhanças do ponto de interesse <math>\;X</math>, deve ser empregado. | |||
Por exemplo, digamos que temos uma tabela com 100 pontos <math>\;\{(X_i,Y_i)\}</math>. Se desejamos estimar o valor de <math>\;Y</math> no interior da região <math>[X_1,\; X_N]</math>, ao invés de construir um polinômio de grau 99, podemos, por exemplo, dividir o espaço em 25 sub-regiões e usar polinômios cúbicos em cada uma delas, | |||
utilizando apenas <math>(X_{i-1},Y_{i-1}),\; (X_i,Y_i),\; (X_{i+1},Y_{i+1})</math> e<math>\;(X_{i+2},Y_{i+2})</math>. | |||
Contudo, devemos notar que, embora a interpolação seja contínua nas interfaces das regiões, a continuidade das derivadas 1<sup>a</sup> e 2<sup>a</sup> não é garantida. Em situações em que estas propriedades importam, outras aproximações devem ser adotadas (veja, por exemplo, [[Spline cúbico]]). | |||
---- |
Edição atual tal como às 07h47min de 25 de outubro de 2011
Polinômios de Lagrange
Baseado no fato de que sobre pontos passa um único polinômio de grau , o Polinômio de Lagrange pode ser usado como fórmula de interpolação ou extrapolação:
onde
é um polinômio de grau em . Tendo em vista que onde o delta de Kronecker
é fácil verificar que, de fato,. Assim, pode ser empregado para se estimar o valor de em pontos não tabulados.
Exemplo 1
Para exemplificar a fórmula de Lagrange, consideramos primeiramente uma reta que passa pelos pontos e , tendo assim . Aplicando a fórmula de Lagrange, temos
e
- ,
assim, o polinômio de Lagrange que passa pelos pontos desejados é dado por:
- .
Note que substituindo na equação acima, e .
Exemplo 2
Verificando a fórmula de Lagrange para . Suponhamos que desejamos encontrar qual é o polinômio que passa pelos pontos , e . Temos que:
- ,
e
- ,
assim
- .
Exemplo 3
Para ilustrar graficamente o método da fórmula de Lagrange, usaremos um exemplo com . Considerando os quatro pontos , , e , as equações ficam
- ,
- ,
e
- .
O gráfico abaixo mostra os quatro pontos , as curvas e a curva final . Lembre-se que é a curva gerada pela soma dos polinômios . Note que a curva passa pelo ponto , assim como as demais e a curva passa por todos os pontos.
Numericamente
Na prática, a implementação numérica do polinômio de Lagrange é complicada. Computacionalmente não é possível fazer um programa geral para interpolação de ordem arbitrária, isto é fazer um programa que, com os N pontos de entrada , devolva um polinômio interpolador de grau N. Isto envolve computação simbólica (do tipo utilizada em programas proprietários como o Mathematica, Maple, ou livres como Maxima). Por outro lado a implementação numérica do método na força bruta envolve um duplo laço de ordem N: devem ser somados N termos (os ) onde cada um deles é construído como um produto de N-1 termos; ao todo cálculos para cada ponto x (isto fica como exercício a partir da fórmula geral do ).
O Algoritmo de Neville [1], Implementação do algoritmo de Neville, é muito útil na realização desta tarefa.Ao final, veremos que o polinômio interpolador de grau n pode ser reconstruído com polinômios de grau n-1. Este processo gera uma fórmula de recorrência, que é um recurso bastante comum em algoritmos computacionais.
Para deduzirmos esta fórmula de recorrência, começamos aproximando cada intervalo por um valor constante. Podemos representar esta aproximação por . Melhorando a descrição, empregando agora uma aproximação linear em cada intervalo , denotamos por , onde é o polinômio que passa exatamente sobre e:
Vemos que pode ser escrito como:
Isto sugere que há uma relação entre os polinômios de ordem com os de ordem . Para verificar isto, vamos considerar, agora, uma parábola passando exatamente sobre e, que denotaremos por,:
Fatorando e somando e subtraindo , obtemos:
onde
Note que o último termo desta expressão corresponde àquele que foi subtraído após seu termo de sinal contrário ter sido somado à expressão que levou a na equação para. Rearranjando os termos acima, encontramos:
Substituindo este resultado na equação para, obtemos finalmente:
Assim, notamos que, de fato, há uma relação de recorrência bastante simples entre os polinômios que envolvem e pontos, cuja forma geral é dada por:
Por ser muito mais simples de se implementar numericamente do que a expressão original para , é esta relação de recorrência que é, de fato, utilizada em cálculos numéricos. Os erros cometidos podem ser estimados calculando-se as diferenças entre as diferentes ordens do polinômio:
e
Ao invés de se gerar a partir da relação de recorrência para , pode-se utilizar as equações acima e obter relações de recorrência para . No final, obtemos a partir destas quantidades. Este desenvolvimento é deixado como exercício.
É importante notar que em nenhum ponto da discussão foi evocada a necessidade dos pontos serem igualmente espaçados. Portanto, as fórmulas apresentadas aqui podem ser aplicadas em situações bastante gerais.
Como discutido na seção Interpolação e extrapolação, é desaconselhável o uso de polinômios de grau elevado. Por isto, apenas um pequeno subconjunto dos valores tabulados, nas vizinhanças do ponto de interesse , deve ser empregado. Por exemplo, digamos que temos uma tabela com 100 pontos . Se desejamos estimar o valor de no interior da região , ao invés de construir um polinômio de grau 99, podemos, por exemplo, dividir o espaço em 25 sub-regiões e usar polinômios cúbicos em cada uma delas, utilizando apenas e.
Contudo, devemos notar que, embora a interpolação seja contínua nas interfaces das regiões, a continuidade das derivadas 1a e 2a não é garantida. Em situações em que estas propriedades importam, outras aproximações devem ser adotadas (veja, por exemplo, Spline cúbico).