




Estude fácil! Tem muito documento disponível na Docsity
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
Prepare-se para as provas
Estude fácil! Tem muito documento disponível na Docsity
Prepare-se para as provas com trabalhos de outros alunos como você, aqui na Docsity
Encontra documentos específicos para os exames da tua universidade
Prepare-se com as videoaulas e exercícios resolvidos criados a partir da grade da sua Universidade
Responda perguntas de provas passadas e avalie sua preparação.
Ganhe pontos para baixar
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
Manula de Cálculo de Interpolações
Tipologia: Notas de estudo
1 / 8
Esta página não é visível na pré-visualização
Não perca as partes importantes!





Programa para o Cálculo da Interpolação de Lagrange
Clarimar José Coelho Turma: B
Resumo
Este trabalho apresenta os resultados obtidos com a interpolação de Lagrange. A interpolação polinomial pode ser expressa de várias formas tais como série de potência, interpolação de Lagrange e interpolação de Newton. Um programa para o cálculo da interpolação polinomial empregando a fórmula de Lagrange será implementado. Os resultados obtidos serão apresentados e discutidos.
1. Introdução
A interpolação consiste em determinar uma função, que assume valores conhecidos em certos pontos ( nós de interpolação). A classe de funções escolhida para a interpolação é a priori arbitrária, e deve ser adequada às características que pretendidas para essa função [1]. A interpolação polinomial pode não ser adequada se os nós de interpolação não forem escolhidos convenientemente (o que leva ao uso de nós de Chebyshev...). De um modo geral, o conjunto das funções interpoladoras é determinado por um número finito de parâmetros (no caso dos polinómios, são os seus coeficientes) que deverá ser igual ao número de condições impostas (ou seja, ao número de nós), para que haja apenas uma solução. A determinação dos parâmetros, que definem a função interpoladora, leva à resolução de um sistema linear [1,2]. O objetivo deste trabalho é a produção um exemplo de solução e documentação de trabalho prático para ilustrar o modelo proposto para a disciplina de estrutura de dados dos cursos de Engenharia e Ciência da Computação da Universidade Católica de Goiás.
2. Interpolação Linear
A interpolação linear é uma linha que se ajusta a dois pontos. A interpolação linear mostrada na Figura 1 é dada por:
( ) ( ) f ( b ) b a
x a f a b a
b x g x −
onde f ( a ) e f ( b ) são conhecidos como valores de f ( x ) em x = a e x = b
respectivamente.
Figura 1. Interpolação linear.
O erro de uma interpolação linear pode ser expresso da seguinte forma:
e x = ( x − a )( x − b ) f ''(ξ ), a <ξ< b 2
onde ξ é dependente de x em algum lugar entre a e b.
O método fundamental para encontrar uma função que passa por vários pontos de dados (ajustamento de curva) usa um polinômio. O polinômio de n −ésima ordem que passa por n + 1 pontos é único. Isso significa, sem considerar a fórmula de interpolação, que todas as interpolações ajustadas para os mesmos pontos são matematicamente idênticos [2].
Suponha que n + 1 pontos seja dado como
n
n f f f
x x x ...
0 1
0 1
onde x (^) 0 , x 1 ...são abscissas de pontos e em ordem decrescente. O espaço entre os pontos é
arbitrário. O polinômio de ordem n que passa por n + 1 pontos pode ser escrito como uma série de potência como
n g ( x )= a + ax + a x +...+ an x 2 0 1 2
onde a (^) i são coeficientes indeterminados. O ajustamento da série de potência para os n + 1
pontos gera o sistema de equações lineares
A fórmula de interpolação de Lagrange de ordem n derivada dessa forma pode ser escrita como
n n n n n
n
n
n
i i i n
n
f x x x x x x
x x x x x x
f x x x x x x
x x x x x x
f x x x x x x
x x x x x x g x
0 1 1
0 1 1
1 1 0 1 2
1 2
0 0 1
1 2
−
− − − −
a Equação 2 é equivalente a série de potência determinada pela solução do sistema de equações lineares da Equação 1 [1].
Exemplo
a) Escreva a fórmula de interpolação de Lagrange que ajusta os três pontos para a densidade do sódio para três temperaturas da Tabela 1
Tabela 1. Densidade de sódio para três temperaturas.
i
Tenperatura
T i
Desidade
ρ i (^0 94 0) C 929 kg / m^3 1 205 902 2 371 860
Solução: Como o número de pontos são três, a ordem da fórmula de Lagrange é n = 2 .A interpolação de Lagrange pode ser escrita como:
gT
b) Encontrar a densidade para T = 2510 C usando a interpolação de Lagrange
Solução: Fazendo T = 251 na Equação 3, obtém-se
g ( 251 )= 890. 5 kg / m^3
2.2. Solução da Interpolação de Lagrange
Para escrever um programa será necessário pequeno número de linhas. Observe na Equação 2, que o primeiro termo é f (^) 0 vezes o produto de
i x x
x x −
0
para todo i exceto para i = 0 .O segundo termo é f (^) 1 vezes o produto de
i x x
x x −
1
para todo i = 1. Todos os outros termos tem o mesmo padrão. A Equação 2, pode ser programada como a seguir:
g=0;
for (i=0;i<=n;i++)
z=1.0;
for (j=0;j<=n;j++)
5. Conclusão
A fórmula de interpolação de Lagrange foi apresentada. Um algoritmo em alto nível mostrou como a interpolação de Lagrange foi resolvida. Finalmente, os resultados obtidos para as instâncias i da Tabela 2 foram apresentados e discutidos.
6. Bibliografia [1] Mathworks, MATLAB Versão do Estudante , Makron Books, São Paulo, 1997. [2] Nakamura, S. Applied Numerical Methods in C , PTR Prentice Hall, New Jersey, 1992. 7. Anexo A - Programa INTERP.C
O programa a seguir avalia a fórmula de interpolação de Lagrange
=
n
i
g x i x fi 0
( ) η( )
com
≠
n
i j
j (^) i j
j i (^) x x
x x x 0
η( )
para um valor de x dado como entrada, onde ( x (^) i fi ), i = 0. 1. 2 ,..., n são os pontos dados na
tabela de entrada, n + 1 é o total de pontos de entrada.
#include <stdio.h> #include <math.h> #define TRUE 1 /* n: número do último ponto (n+1 = número de dados de entrada) f(i), x[i]: dados de entrada dados (i começa em 0) yans: resultado final xa: x valor de entrada para o qual a interpolação é calculada / main() { int i, j, kk; float xa, yans, z; static n = 3; / n+1 é o número de pontos de entrada / /As próximas duas linhas defina os pontos para ser usados na interpoloção */ static float x[11]={1., 2. , 3., 4.}; static float f[11]={.671, .620, .567, .512}; printf ("Interpolacao de Lagrange\n"); printf("Dados utilizados\n"); printf("i x(i) f(i) \n" ); for (i=0; i<=n; i++) printf("%d %g %g \n", i, x[i], f[i] ); while (TRUE)
printf( "\nEntrada x? "); scanf("%f", &xa ); if (!(x[0]<= xa && xa <= x[n]) ) printf("(Atencao: x é uma extrapolacao do intervalo.)\n" ); for (i =0; i<=n; i++) { z=1.0; for (j=0;j<=n;j++) { if (i != j) z=z(xa - x[j]) / (x[i] - x[j]); } yans= yans + zf[i]; } printf("Resposta: g( %g) = %g \n", xa, yans ); printf("\nDigite 1 para continuar, 0 para parar: "); scanf("%d", &kk); if (kk !=1) exit(0); } }