Мінімізувати унімїдальну функцію методом “Золотого січення”
Мінімізувати унімїдальну функцію методом “Золотого січення”. Де а=5, а b=-0,05.
Program zolote_sich;
uses crt;
var a,b,e,y,z,a0,b0,va,vb,kp:real;
label m1,kin;
begin
clrscr;
{vvedennya koefisientiv}
writeln ('_ vvedit koefisientu _');
writeln ('vvedit a0:=');read(a0);
writeln ('vvedit b0:=');read(b0);
writeln ('_ vvedit vidrizok _');
writeln ('vvedit a:=');read(a);
writeln ('vvedit b:=');read(b);
writeln ('vvedit pohubky e:=');read(e);
{rozrahunku}
y:=0.618*a+0.382*b;
z:=0.382*a+0.618*b;
va:=y*y+a0*exp(b0*y);
vb:=z*z+a0*exp(b0*z);
m1:
if va<vb then
begin
b:=z;kp:=1;end
else
begin
a:=y;
kp:=0;
end;
if (b-a)<e then goto kin
else
if kp=1 then goto kin
begin
z:=y;vb:=va;
y:=0.618*a+0.382*b;
va:=y*y+a0*exp(b0*y);
goto m1;
end
else
begin
y:=z;va:=vb;
z:=0.382*a+0.618*b;
vb:=z*z+a0*exp(b0*z);
goto m1;
end;
kin:
kp:=(a+b)/2;
y:=kp*kp+a0*exp(b0*kp);
writeln('znachennya x dorivnye ',kp:5:3);
writeln('znachennya y dorivnye ',y:5:3);
readln;
end.
Представлення в середовищі Mathcad :