View
1.337
Download
8
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
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
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.