%dx=0.1; % para o caso (a)
dx=0.04; % para o caso (b)
x=[0.1:dx:0.9]'; % pontos nodais
phi=5;
y=sinh(phi*x)./(x*sinh(phi)); % valor da função nos pontos nodais
n=length(x); % número de pontos
xc=[0:0.01:1]'; % pontos para interpolação
m=length(xc);
yc(1)=phi/sinh(phi);
yc(2:m)=sinh(phi*xc(2:m))./(xc(2:m)*sinh(phi));
% formação da matriz de Vandermonde
Um=ones(n,1); % vetor de tamanho n x 1 com todos elementos iguais a 1
M=Um;
for i=1:n-1
M=[M x.^i];
end
%C=inv(M)*y; % coeficientes polinomiais (inversão sem pivotamento)
C=M\y; % coeficientes polinomiais (inversão com pivotamento parcial)
pn1=C'*(Um*xc').^([0:n-1]'*ones(1,m)); % valores interpolados
%
% forma alternativa calcular os valores interpolados
%
%for i=1:m
% pn1(i)=C(n);
% for j=n-1:-1:1
% pn1(i)=pn1(i)*xc(i)+C(j);
% end
%end
condM=cond(M) % número de condicionamento da matriz dos coeficientes
figure(1);
plot(xc,yc,'bx',xc,pn1,'r',x,y,'o');
legend('exato','polinômio','pontos');
figure(2);
plot(xc,yc-pn1);
