program HuDjMody;
label 0,1,2,3,4,5,6,7;
var
k,h,z,ps,bs,fb,fi :real;
i,j,n,fe :integer;
x,y,b,p :array[1..10] of real;
procedure calculate;
begin
z:=3*sqr(x[1]-5) + 3*sqr(x[2]-5) + 2*x[1]*x[2];
if (x[1]<0) or (x[2]<0) or ((x[1]+x[2])<4) then
z:=1.7e+38;
fe:=fe+1;
end;
begin
n := 2;
x[1] := 0;
x[2] := 0;
h := 1;
k:=h;
fe:=0;
for i:=1 to n do
begin
y[i]:=x[i];
p[i]:=x[i];
b[i]:=x[i];
end;
calculate;
fi:=z;
writeln('Начальное значение функции: ', z:2:3);
for i:=1 to n do
writeln('x[',i,'] = ', x[i]:2:3);
ps:=0;
bs:=1;
j:=1;
fb:=fi;
0: x[j]:=y[j]+k;
calculate;
if z<fi then goto 1;
x[j]:=y[j]-k;
calculate;
if z<fi then goto 1;
x[j]:=y[j];
goto 2;
1: y[j]:=x[j];
2: calculate;
fi:=z;
writeln('Пробный шаг ', z:2:3);
for i:=1 to n do
writeln(x[i]:2:3);
if j=n then goto 3;
j:=j+1;
goto 0;
3: if fi<fb-1e-08 then goto 6;
if (ps=1) and (bs=0) then goto 4;
goto 5;
4: for i:=1 to n do
begin
p[i]:=b[i];
y[i]:=b[i];
x[i]:=b[i];
end;
calculate;
bs:=1;
ps:=0;
fi:=z;
fb:=z;
writeln('Замена базисной точки ', z:2:3);
for i:=1 to n do
writeln(x[i]:1:3);
j:=1;
goto 0;
5: k:=k/10;
writeln('Уменьшить длину шага');
if k<1e-08 then goto 7;
j:=1;
goto 0;
6: for i:=1 to n do
begin
p[i]:=2*y[i]-b[i];
b[i]:=y[i];
x[i]:=p[i];
y[i]:=x[i];
end;
calculate;
fb:=fi;
ps:=1;
bs:=0;
fi:=z;
writeln('Поиск по образцу ', z:2:3);
for i:=1 to n do
writeln(x[i]:2:3);
j:=1;
goto 0;
7: writeln('Минимум найден');
for i:=1 to n do
writeln('x(',i,')=',p[i]:2:3);
writeln;
writeln('Минимум функции равен ', fb:2:3);
writeln('Количество вычислений функции равно ', fe);
end.
cHJvZ3JhbSBIdURqTW9keTsKCmxhYmVsIDAsMSwyLDMsNCw1LDYsNzsKCnZhcgogIGssaCx6LHBzLGJzLGZiLGZpIDpyZWFsOwogIGksaixuLGZlIDppbnRlZ2VyOwogIHgseSxiLHAgOmFycmF5WzEuLjEwXSBvZiByZWFsOwoKcHJvY2VkdXJlIGNhbGN1bGF0ZTsKYmVnaW4KICB6Oj0zKnNxcih4WzFdLTUpICsgMypzcXIoeFsyXS01KSArIDIqeFsxXSp4WzJdOwogIGlmICh4WzFdPDApIG9yICh4WzJdPDApIG9yICgoeFsxXSt4WzJdKTw0KSB0aGVuCiAgICB6Oj0xLjdlKzM4OwogIGZlOj1mZSsxOwplbmQ7CgpiZWdpbgogIG4gOj0gMjsKICB4WzFdIDo9IDA7CiAgeFsyXSA6PSAwOwogIGggOj0gMTsKCiAgazo9aDsKICBmZTo9MDsKCiAgZm9yIGk6PTEgdG8gbiBkbwogIGJlZ2luCiAgICB5W2ldOj14W2ldOwogICAgcFtpXTo9eFtpXTsKICAgIGJbaV06PXhbaV07CiAgZW5kOwoKICBjYWxjdWxhdGU7CiAgZmk6PXo7CgogIHdyaXRlbG4oJ9Cd0LDRh9Cw0LvRjNC90L7QtSDQt9C90LDRh9C10L3QuNC1INGE0YPQvdC60YbQuNC4OiAnLCB6OjI6Myk7CiAgZm9yIGk6PTEgdG8gbiBkbwogICAgd3JpdGVsbigneFsnLGksJ10gPSAnLCB4W2ldOjI6Myk7CgogIHBzOj0wOwogIGJzOj0xOwogIGo6PTE7CiAgZmI6PWZpOwoKMDogeFtqXTo9eVtqXStrOwogIGNhbGN1bGF0ZTsKICBpZiB6PGZpIHRoZW4gZ290byAxOwogIHhbal06PXlbal0tazsKICBjYWxjdWxhdGU7CiAgaWYgejxmaSB0aGVuIGdvdG8gMTsKICB4W2pdOj15W2pdOwogIGdvdG8gMjsKCjE6IHlbal06PXhbal07CgoyOiBjYWxjdWxhdGU7CiAgZmk6PXo7CiAgd3JpdGVsbign0J/RgNC+0LHQvdGL0Lkg0YjQsNCzICcsIHo6MjozKTsKICBmb3IgaTo9MSB0byBuIGRvCiAgICB3cml0ZWxuKHhbaV06MjozKTsKICBpZiBqPW4gdGhlbiBnb3RvIDM7CiAgajo9aisxOwogIGdvdG8gMDsKCjM6IGlmIGZpPGZiLTFlLTA4IHRoZW4gZ290byA2OwogIGlmIChwcz0xKSBhbmQgKGJzPTApIHRoZW4gZ290byA0OwogIGdvdG8gNTsKCjQ6IGZvciBpOj0xIHRvIG4gZG8KICAgIGJlZ2luCiAgICAgIHBbaV06PWJbaV07CiAgICAgIHlbaV06PWJbaV07CiAgICAgIHhbaV06PWJbaV07CiAgICBlbmQ7CiAgY2FsY3VsYXRlOwogIGJzOj0xOwogIHBzOj0wOwogIGZpOj16OwogIGZiOj16OwogIHdyaXRlbG4oJ9CX0LDQvNC10L3QsCDQsdCw0LfQuNGB0L3QvtC5INGC0L7Rh9C60LggJywgejoyOjMpOwogIGZvciBpOj0xIHRvIG4gZG8KICAgIHdyaXRlbG4oeFtpXToxOjMpOwogIGo6PTE7CiAgZ290byAwOwoKNTogazo9ay8xMDsKICB3cml0ZWxuKCfQo9C80LXQvdGM0YjQuNGC0Ywg0LTQu9C40L3RgyDRiNCw0LPQsCcpOwogIGlmIGs8MWUtMDggdGhlbiBnb3RvIDc7CiAgajo9MTsKICBnb3RvIDA7Cgo2OiBmb3IgaTo9MSB0byBuIGRvCiAgICBiZWdpbgogICAgICBwW2ldOj0yKnlbaV0tYltpXTsKICAgICAgYltpXTo9eVtpXTsKICAgICAgeFtpXTo9cFtpXTsKICAgICAgeVtpXTo9eFtpXTsKICAgIGVuZDsKICBjYWxjdWxhdGU7CiAgZmI6PWZpOwogIHBzOj0xOwogIGJzOj0wOwogIGZpOj16OwogIHdyaXRlbG4oJ9Cf0L7QuNGB0Log0L/QviDQvtCx0YDQsNC30YbRgyAnLCB6OjI6Myk7CiAgZm9yIGk6PTEgdG8gbiBkbwogICAgd3JpdGVsbih4W2ldOjI6Myk7CiAgajo9MTsKICBnb3RvIDA7Cgo3OiB3cml0ZWxuKCfQnNC40L3QuNC80YPQvCDQvdCw0LnQtNC10L0nKTsKICBmb3IgaTo9MSB0byBuIGRvCiAgICB3cml0ZWxuKCd4KCcsaSwnKT0nLHBbaV06MjozKTsKICB3cml0ZWxuOwogIHdyaXRlbG4oJ9Cc0LjQvdC40LzRg9C8INGE0YPQvdC60YbQuNC4INGA0LDQstC10L0gJywgZmI6MjozKTsKICB3cml0ZWxuKCfQmtC+0LvQuNGH0LXRgdGC0LLQviDQstGL0YfQuNGB0LvQtdC90LjQuSDRhNGD0L3QutGG0LjQuCDRgNCw0LLQvdC+ICcsIGZlKTsKZW5kLgo=