% Sestevanje Taylorjeve vrste za e^(-x) za x=1,..,25 
% (zgled 1.7.2 iz knjige Razsirjen uvod v numericne metode)
%
% Racunamo delne vsote za x=1,2,...,25
% Racunanje ni stabilno, saj pride pri vecjih x do odstevanj enako velikih stevil

% Bor Plestenjak 2010

disp(sprintf('  x |   nestabilna for.  |   tocno exp(-x)    |   abs. napaka      | rel. napaka | clenov'))
disp('-----------------------------------------------------------------------------------------')
for x=1:25 % -20:-1
   vsota=1;
   staravsota=0;
   k=1;
   clen=1;
   fac=1;
   while abs(vsota-staravsota)>1e-15
      clen=(-1)^k*x^k/factorial(k);
      staravsota=vsota;
      vsota=vsota+clen;
      k=k+1;
   end
   disp(sprintf('%3d | %18.14f | %18.14f | %18.14f | %10.1e  | %3d',x,vsota,exp(-x),vsota-exp(-x),(vsota-exp(-x))/exp(-x),k));
end

% pri stabilni formuli izracunamo e^(-x) kot 1/e^x

disp(sprintf('\n  x |   stabilna for.    |   tocno exp(-x)    |   abs. napaka      | rel. napaka | clenov'))
disp('-----------------------------------------------------------------------------------------')
for x=1:25 
   vsota=1;
   staravsota=0;
   k=1;
   clen=1;
   fac=1;
   while abs(vsota-staravsota)>1e-15
      clen=x^k/factorial(k);
      staravsota=vsota;
      vsota=vsota+clen;
      k=k+1;
   end
   vsota=1/vsota;
   disp(sprintf('%3d | %18.14f | %18.14f | %18.14f | %10.1e  | %3d',x,vsota,exp(-x),vsota-exp(-x),(vsota-exp(-x))/exp(-x),k));
end

      