function n=optimalni_stupen(f,a,b);
%
% Vypocte optimalni stupen polynomu pro spojitou L2-aproximaci
% pro funkci f na intervalu <a,b>

pocet_deleni=100;
krok=(b-a)/pocet_deleni;
i=0;
out=1000000;
out_old=inf;
while out<out_old
  out_old=out;
  [baze,velikost]=ortogonalni_baze(a,b,i);
  C=normalni_rovnice(f,a,b,i);
  out=0;
  for x=a+krok/2:krok:b
    f1=polyval(C,x);
    f2=eval(f);
    out=out+(f1-f2)^2;
  end;
  out=out*krok; 
  i=i+1;
end;

n=i-2;