Sunteți pe pagina 1din 4

Laboratrio 4 de Clculo Numrico:

Interpolao



Alunas:
Brbara Archanjo(RA: 71130)
Caroline Santolaya (RA: 69192)

Professor: Jones Erni Schmitz
UNIFESP- Campus Diadema
Maro de 2013


Resumo:

Introduo
A interpolao numrica utilizada com o intuito de determinao um
polinmio que seja prximo da funo analisada em um intervalo para que seja possvel
encontrar valores prximos de pontos desconhecidos, seja porque a funo
desconhecia ou porque so necessrios manipulaes matemticas complexas para
encontrar o valor desejado.
Para cada funo existe somente um polinmio interpolador tal que Pn(x
i
) =
f(x
i
), com i= 0, 1, 2, ..., n, contanto que x
i
x
j
e ij. O polinmio ter grau n, onde n o
nmero de dados conhecidos. Teremos o seguinte polinmio geral:
p(x)=a
0
+a
1
x+a
2
x
2
+...+a
n
x
n

Dessa forma, seria possvel montar um sistema linear a fim de se determinar os
coeficientes a
n
.
F(x
0
)= a
0
+ a
1
x
0
+ a
2
x
0
2
+ ... + a
n
x
0
n

F(x
1
)= a
0
+ a
1
x
1
+ a
2
x
1
2
+ ... + a
n
x
1
n

F(x
2
)= a
0
+ a
1
x
2
+ a
2
x
2
2
+ ... + a
n
x
2
n

...
F(x
n
)= a
0
+ a
1
x
2
+ a
2
x
n
2
+ ... + a
n
x
n
n

Frmula Interpoladora de Newton
Este mtodo tem como base a utilizao de uma aproximao linear por meio de
uma tangente a curva. Utilizando uma estimativa inicial cujo valor esteja prximo do
valor da raiz, percorre-se a tangente at sua interseco com o eixo x e o valor
encontrado colocado no lugar da estimativa inicial para a prxima aproximao. O
processo continua at que o os valores sucessivos do eixo sejam prximos o suficiente
ou o valor da funo se aproximar de zero.
Para se entender a frmula utilizada para este mtodo necessrio introduzir o
conceito de diferena divida, que tem como forma geral:
f [x
i
, x
j
] = ( f
i
- f
j
) / ( x
i
- x
j
)
uma diferena dividida de ordem k, pode ser obtida a partir das anteriores :

f [ x
i
, ... , x
i+k
] = ( f [ x
i+1
, ... , x
i+k
] - f [ x
i
, ... , x
i+k-1
] ) / ( x
i+k
- x
i
)

Objetivos:
Este experimento teve como objetivo melhorar as habilidade de programao na
linguagem do Scilab e tambm trabalhar determinao de polinmios prximos a
funo em questo a fim de encontrar outros valores aproximados da funo.
Materiais Utilizados:
Neste experimento foram utilizados os programa chamados Scilab (programa
utilizado para implantar os mtodos numricos) e internet (como fonte de aulas e
informaes relevantes) e o comando Help presente no Scilab.

Resultados e Discusses:
Nesta sesso ser analisado o que foi feito em ambas as partes do laboratrio.
Parte 1:
Nesta parte houve dois arquivos base, para que fosse definido o mtodo de
interpolao. Pelo arquivo interpolation.m percebe-se que o mtodo utilizado o de
Newton, isto ocorre devido aos termos ddv que equivalente aos termos da diviso
da diferena:
0
1 1 0 2 1 0
] ,..., , [ ] ,..., , , [
x x
x x x f x x x x f
d
n
n n
n



Os arquivos base foram escritos na linguagem do MATLAB, contudo no
necessrio mudar o cdigo para passar o mesmo para o SCILAB. A seguir encontra-se o
cdigo comentado j no software utilizado na unidade curricular.

px=input ('Digite o chute inicial')
function [py, ddv]=interpolation(x, y, px)
n = length(x);//Atribui a n o numero de pontos
a(1) = y(1);// o primeiro termo do vetor a que representa os valores da diviso da diferena
for k = 1 : n - 1
ddv(k, 1) = (y(k+1) - y(k))/(x(k+1) - x(k)); // a diviso da diferena de todos os termos de primeira
ordem
end
for j = 2 : n - 1
for k = 1 : n - j
ddv(k, j) = (ddv(k+1, j - 1) - ddv(k, j - 1))/(x(k+j) - x(k)); // Neste ponto calcula-se os tremos de
ordem superior a 1, pois para o calculos desses necessrio os valores calculados no lao anterior
end
end
for j = 2 : n
a(j) = ddv(1, j-1); //O vetor a recebe os termos da diviso da diferena, porm apenas os termos da
primeira linha, os outros so usados apenas para auxiliar no clculo
end
Df(1) = 1;// Df recebe os valores de (x-x0), (x-x0)(x-x1)....
c(1) = a(1); // c recebe os termos finais da forma de Newton(p(x)=c1Df1+c2Df2+.....)
for j = 2 : n
Df(j)=(px - x(j-1)) .* Df(j-1); // completa o valor do vetor Df
c(j) = a(j) .* Df(j); // completa o valor do vetor c, para todos os valores
end
py=sum(c); //Neste cdigo py tem a funo de px, isto , ele o polinmio interpolador na forma de
Newton
endfunction

n=4; //nmero de pontos no intervalo dado
i=0:n;
xx=-1+2*i/n;// valores de x para o qual a interpolao ser feita (-1; -0,5; 0; 0,5;1)
bb=exp(xx) //recebe o valor da exponecial do ponto x
fx=(xx.^2).*exp(xx); // Determina o valor da funo f(x)=x^2*exp(x) em cada um dos pontos calculados
anteriormente em xx

[a,ddv]=interpolation(xx,fx,px); //chama a funo interpolao, pois com os x no intervalo e os valores
da funo f(x) nos mesmos, pode-se calcular o valor da funo interpolada em um ponto qualquer px


Parte 2:

Concluses:

Referncias:

http://www.math.ist.utl.pt/~calves/courses/interp/capiii11.html
http://www.inf.ufpr.br/silvia/numerico/IV1.pdf
http://www.im.ufrj.br/dmm/projeto/projetoc/precalculo/sala/conteudo/capitulos/cap115s1.h
tml
http://www2.dem.inpe.br/mcr/Inpe/CMC-203-0/pdf/Flaviane.pdf
http://www.math.ist.utl.pt/~calves/cursos/Interpola.HTM
http://www.geoma.lncc.br/pdfs/interpolacao.pdf
http://www.faccamp.br/apoio/LuisArturoPerezLozada/calculoNumerico/interpolaCAo_numEri
ca.pdf
http://www.eq.uc.pt/~agomes3/NEWTON.htm

S-ar putea să vă placă și