# Metoda tetiv pro reseni Keplerovy rovnice
# Vymazeme hodnoty promennych z predchazejicich vypoctu a obsah terminalu
clear;
clc;
# Definice funkce
function y=f(E)
   y=E-0.99513*sin(E)-0.00413;
endfunction
# Pozadovana presnost
presnost=1e-8;
# Zaciname merit dobu vypoctu	
t0=clock();
# Krajní body
a=0; 		# levy okraj
b=pi; 		# pravy okraj
fa=f(a); 	# leva funkcni hodnota
fb=f(b); 	# prava funkcni hodnota
k=1; 		# krok vypoctu 
x(k)=(a*fb-b*fa)/(fb-fa); # aproximace øe¹ení
fk=f(x(k));       # hodnota funkce ve stredu intervalu
# Formátovaný výstup hodnot
printf("k=%f x(k)=%f f(xk)=%.20f\n", [k,x(k),fk]);
# Cyklus
while abs(f(x(k)))>presnost
k=k+1;
if (f(a)*f(x(k-1))<0)
  x(k)=(a*f(x(k-1))-x(k-1)*fa)/(f(x(k-1))-fa);
else
  x(k)=(x(k-1)*fb-b*f(x(k-1)))/(fb-f(x(k-1)));
endif
fk=f(x(k));
   # Formátovaný výstup hodnot
printf("k=%f xk=%f f(xk)=%.20f\n", [k,x(k),fk]);
endwhile
casvypoctu=etime(clock(),t0)
