2
Fernando Henrique Gomes Zucatelli 1 sábado – 20/11/2010 – 14:40 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

Cálculo numérico_Interpolação por método de Lagrange_MATLAB

Embed Size (px)

DESCRIPTION

Programa que traça o gráfico de uma curva de uma função aproximada pelo método de interpolação de Lagrange a partir de alguns pontos que pertençam à curva original

Citation preview

Page 1: Cálculo numérico_Interpolação por método de Lagrange_MATLAB

Fernando Henrique Gomes Zucatelli 1

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

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

Page 2: Cálculo numérico_Interpolação por método de Lagrange_MATLAB

Fernando Henrique Gomes Zucatelli 2

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

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: 2sinh( )x x−

com 6 pontos na interpolação gerados por Matlab.