function [ c ] = periodischerspline( x,y )
% Berechnung der Momente c des periodischen Splines zu den Daten x und y
%
nx=length(x);
ny=length(y);
if nx~=ny
    fprintf('Unterschiedliche Feldlaengen in <periodischerspline>: %5i%5i\n',nx,ny)
    return
end
if nx<3
    fprintf('Zu wenig Punkte in <periodischerspline>: %5i\n',nx)
    return
end
if abs(y(nx)-y(1))>0.00000001
    fprintf('Keine periodischen Daten in <periodischerspline>: %10.5e%10.5e\n',y(1),y(nx))
    return
end
%
for i=1:nx-1
    h(i)=x(i+1)-x(i);
    if h(i)<=0
        fprintf('Stützstellen nicht aufsteigend geordnet in <periodischerspline>: %10.5f%10.5f\n',x(1),x(i+1))
    end    
end;
%
A=zeros(nx-1);
%b=zeros(nx-1,1);
A(1,1)=2*(h(1)+h(nx-1));
A(1,nx-1)=h(nx-1);
A(nx-1,1)=h(nx-1);
b(1,1)=(y(2)-y(1))/h(1) - (y(nx)-y(nx-1))/h(nx-1);
for i=2:nx-1
    A(i,i)=2*(h(i-1)+h(i));
    A(i,i-1)=h(i-1);
    A(i-1,i)=h(i-1);
    b(i,1)=(y(i+1)-y(i))/h(i) - (y(i)-y(i-1))/h(i-1);
end;
A
%b
%size(b)
c=A\(6*b);
c(nx)=c(1);
%res=A*c-b
%

%fprintf('weiter\n')

end

