Code covered by the BSD License  

Highlights from
MATLAB no Desenvolvimento de Modelos para Financas

image thumbnail
from MATLAB no Desenvolvimento de Modelos para Financas by Elia Matsumoto
Slides and demo files using Brazilian market data.

pchip_interp(y,flag)
% Exemplo de interpolacao por spline
% pchip_interp(x)
% 
function yp = pchip_interp(y,flag)
% Verifica tipo de dado
if iscell(y)
    yc = y;
    ny = length(y);
    y = NaN*ones(ny,1);
    for i=1:ny
        if isnumeric(yc{i})
            y(i) = yc{i};
        end
    end
end
n=length(y);
x=1:n;
yp = y;
% Separar dados validos/invalidos
indNan = find(isnan(y));
indNum = find(~isnan(y));
% Calcular spline
xNum=x(indNum);
yNum=y(indNum);
pc=pchip(xNum,yNum);
% Interpolar valores invalidos
xNan=x(indNan);
yNan=ppval(pc,xNan);
yp(indNan)=yNan;
% Exibir grfico
if flag
    x1=linspace(min(xNum),max(xNum),4*n);
    y1=ppval(pc,x1);
    plot(x1,y1,xNum,yNum,':*',xNan,yNan,'ro')
    legend('Pchip','Vlidos','Interpolados',0)
end

Contact us at files@mathworks.com