но почему то она не исправно работает! помогите найти ошибку!!
const
e=0.1;
s=0.618;
var
a,b,xz,x1,x2,y1,y2,f1,f2:real;
i:integer;
begin
a:=0;
b:=10;
x1:=a+(1-s)*(b-a);
x2:=a+s*(b-a);
f1:= 5*sin(x1)*sin(x1)-1/(sqr(x1)+1)+4;
f2:= 5*sin(x2)*sin(x2)-1/(sqr(x2)+1)+4;;
repeat
begin
if f1>f2 then
begin
a:=x1;
b:=b;
x2:=a+s*(b-a);
f1:=f2;
f2:= 5*sin(x2)*sin(x2)-1/(sqr(x2)+1)+4;;
end
else
begin
b:=x2;
a:=a;
x2:=x1;
x1:=a+(1-s)*(b-a);
f2:=f1;
f1:= 5*sin(x1)*sin(x1)-1/(sqr(x1)+1)+4;
end;
end;
until (b-a)<e;
xz:=(a+b)/2;
y1:= 5*sin(xz)*sin(xz)-1/(sqr(xz)+1)+4;;
Label1.Caption:=FloatToStr(y1);
end;
end.