xvana=[1 4 8 12 14 17 20 25 31 40];
yvana=[8 15 21 25 29 33 34 40 45 60];
kaalud=[1 1 2 2 3 1 4 2 1 1];
a=5; %eesnime tähtede arv
b=8; %perekonna nime tähtede arv

%muutmine
for i=1:10
x(i)=xvana(i)-(-1)^i*0.01*a;
y(i)=yvana(i)+(-1)^i*0.1*b;
end

xvork=1.05:10^-3:39.5;
%lähendamine kuupsplaniga
ysplain=interp1(x,y,xvork,'spline');

%lähendamine võrdsete kaalude korral (kaalud=1)
kordajad=polyfit(x,y,3);
ykuup=polyval(kordajad,xvork);

%lähendamine erinevate kaaludega
%maatriks A
A(1,1)=sum(kaalud.*x.^6);
A(1,2)=sum(kaalud.*x.^5);
A(1,3)=sum(kaalud.*x.^4);
A(1,4)=sum(kaalud.*x.^3);

A(2,1)=sum(kaalud.*x.^5);
A(2,2)=sum(kaalud.*x.^4);
A(2,3)=sum(kaalud.*x.^3);
A(2,4)=sum(kaalud.*x.^2);

A(3,1)=sum(kaalud.*x.^4);
A(3,2)=sum(kaalud.*x.^3);
A(3,3)=sum(kaalud.*x.^2);
A(3,4)=sum(kaalud.*x);

A(4,1)=sum(kaalud.*x.^3);
A(4,2)=sum(kaalud.*x.^2);
A(4,3)=sum(kaalud.*x);
A(4,4)=sum(kaalud);

%vektor b
b(1)=sum(kaalud.*y.*x.^3);
b(2)=sum(kaalud.*y.*x.^2);
b(3)=sum(kaalud.*y.*x);
b(4)=sum(kaalud.*y);

%kordajate leidmine
c=inv(A)*b';
ykuupkaaludega=polyval(c',xvork);

%joonis
plot(x,y,'r*',xvork,ysplain,xvork,ykuup,xvork,ykuupkaaludega)
legend('algandmed','kuupsplain','võrdsete kaaludega kuupfunktsioon','erinevate kaaludega kuupfunktsioon')
grid on
xlabel('x')
ylabel('y')

