function [b,c,d]=cubspline(x,y)
syms dd ld ud A
m=length(x);
fall=input('Fall?     ');
h=x(2:end)-x(1:end-1);
h=[h;0];
dd=zeros(m,m);
ld=zeros(m,m);
ud=zeros(m,m);
B=0;
for i=1:m-2
    dd(i+1,i)=h(i);
    ld(i+1,i+1)=2*(h(i+1)+h(i));
    ud(i+1,i+2)=h(i);
    b=3/h(i+1)*(y(i+2)-y(i+1))-3/h(i)*(y(i+1)-y(i));
    B=[B;b];
end
B=[B;0];
% A=zeros(m,m);
% A=diag(dd)+diag(ld,-1)+diag(ud,1);
A=dd+ld+ud;
switch fall
    case 1
        A(1,1)=h(2);
        A(1,2)=h(1)+h(2);
        A(1,3)=h(1);
        A(m,m-2)=h(m-1);
        A(m,m-1)=h(m-2)+h(m-1);
        A(m,m)=h(m-2);
    case 2
        aa=input('Sláið inn f(x0)/dx     ')
        bb=input('Sláið inn f(xn)/dx     ')
        A(1,1)=2*h(1);
        A(1,2)=h(1);
        B(1)=3*((y(2)-y(1))/h(1))-3*aa;
        A(m,m-1)=h(m-1);
        A(m,m)=2*h(m-1);
        B(m)=-3*(y(m)-y(m-1))/h(m-1)+3*bb;
    case 3
         B(m,:)=[];
         B(1,:)=[]
         A(m,:)=[];
         A(1,:)=[];   
    case 4
        A(1,1)=1;
        A(1,m)=1;
        A(m,1)=h(1);
        A(m,m-1)=h(m-1);
        A(m,m)=-3*((y(m)-y(m-1)/h(1))-((y(m)-y(m-1))/h(m-1)));
end
c=A\B;
% figure
% uitable('Data',c)
b=(y(2:end)-y(1:end-1))./h(1:end-1)-((2.*c(1:end-1))+c(2:end))./3.*h(1:end-1);
d=(c(2:end)-c(1:end-1))./h(1:end-1)/3;
Matrix=[y(1:end-1) b c(1:end-1) d];
% figure
% cnames = {'aj','bj','cj', 'dj'}; 
t = uitable('Data',Matrix)%,'ColumnName',cnames)
end

     
    

