Você está na página 1de 2

Fernando Henrique Gomes Zucatelli 1

1. CÁLCULO NUMÉRICO
Algoritmo para obter gráfico de interpolação por método de Lagrange e comparação
com função original.
Algoritmo:
function YI = Trabalho_3_INT(X,Y,f,XI)

% f : inline('função');
% X : são os pontos da interpolação
% Y : são os valores conhecidos de f(X)e/ou dados coletados para a interpolação
% XI : são pontos para a interpolação com intervalo pequeno
% YI : são pontos obtidos pela interpolação de XI por LagrangeINT.

for int = 1:length(XI),


Xint = XI(int);
YI(int) = LagrangeINT(X,f(X),Xint);
end
plot(XI,f(XI),'r',XI,YI,'b',X,Y,'g*');
grid;
xlabel('x');
ylabel('y');
legend('Valores exatos', 'Polinômio de Lagrange','Dados usados na interp.');
end

function Yint = LagrangeINT(x,y,Xint)


%LagrangeINT ajusta um polinômio de Lagrange a um conjunto de pontos dado
%e usa o polinômio para determinar o valor interpolado de um ponto.
%Variáveis de entrada:
%x Vetor com as coordenadas x dos pontos dados
%y Vetor com as coordenadas y dos pontos dados
%Xint - A coordenada x do ponto a ser interpolado
%Variável de saída: Yint - O valor interpolado de Xint
% O comprimento do vetor x fornece o número de termos do polinômio
n = length(x);
for i = 1:n,
%Calcula os termos Li do produtório
L(i) = 1;
for j = 1:n,
if j ~= i,
L(i) = L(i)*(Xint-x(j))/(x(i)-x(j));
end
end
end
Yint = y*(L');
end

Resultados

sábado – 20/11/2010 – 14:40


Fernando Henrique Gomes Zucatelli 2

X = [-5 -2.5 0 2.5 5]


f = inline('sinh(x)')
Y = f(X) = [-74.2032 -6.0502 0 6.0502 74.2032]

XI = [-5:0.05:5]

Figura 1 – Gráfico da funções sinh( x ) com 5 pontos na interpolação gerados por Matlab.

X = [-5 -3.5 -0.5 0 0.7 1.5 5]


f = inline('sinh(x)')
Y = [-74.2032 -16.5426 -0.5211 0 0.7586
2.1293 74.2032]

XI = [-5:0.05:5]

Figura 2 – Gráfico da funções: sinh( x ) com 7 pontos na interpolação gerados por Matlab.

X = [-2 -0.5 0 1 1.5 3]


f = inline('sinh(x)-x.^2')
Y = [-7.6269 -0.7711 0 0.1752 -0.1207
1.0179]

XI = [-2:0.02:4]

Figura 3 – Gráfico da funções: sinh( x ) − x 2 com 6 pontos na interpolação gerados por Matlab.

sábado – 20/11/2010 – 14:40