Оптимизация технологических процессов. Часть 1. Метод Лагранжа и численные методы безусловной оптимизации функции одной переменной. Асламова В.С - 90 стр.

UptoLike

Рубрика: 

begin
x:= –5;
for i:=1 to 20 Do begin
Writeln(' x= ',x,' pr= ',pr(x));
x:=x+0.5;
end; readln;
Write('x0,x1?'); readln(x0,x1);
f0:=f(x0); f1:=f(x1);
if f1>f0 then begin
c:=x1; x1:=x0; x0:=c {переобозначаем точки}
end;
p:=0; { p=0 – меняем b, p=1 – меняем h}
{b:=0.4;} b:=0.3; h:=0.2; n:=0;
k:=0; {k=1 переопределяем точки x0,x1 }
repeat
if k=1 then begin
x0:=x1; x1:=x; {переопределяем точки}
end;
k:=0;
n:=n+1; {увеличиваем число итераций}
{находим следующее приближение}
x:=x1–h*pr(x1)+b*(x1–x0);
{вычисляем целевую функцию}
{для следующего приближения}
ff:=f (x);
{проскочили минимум?}
if (ff>f1) and (p=0) and (b–0.1>0) then
b:=b–0.1 else
if (b–0.1)<=0 then p:=1;
if (ff>f1) and (p=1) and (h>=eps) then h:=h/2;
if ff<f1 then k:=1;
untiL (abs(x1–x)<eps) or (h<eps);
Writeln(' x*= ',x,' min f= ',f (x),
' Df/Dx= ',pr(x),' b= ',b,' h= ',h,' n= ',n);
end.
90
begin
  x:= –5;
  for i:=1 to 20 Do begin
    Writeln(' x= ',x,' pr= ',pr(x));
    x:=x+0.5;
   end; readln;
  Write('x0,x1?'); readln(x0,x1);
  f0:=f(x0); f1:=f(x1);
  if f1>f0 then begin
    c:=x1; x1:=x0; x0:=c {переобозначаем точки}
   end;
  p:=0; { p=0 – меняем b, p=1 – меняем h}
  {b:=0.4;} b:=0.3; h:=0.2; n:=0;
  k:=0; {k=1 переопределяем точки x0,x1 }
  repeat
    if k=1 then begin
       x0:=x1; x1:=x; {переопределяем точки}
      end;
    k:=0;
    n:=n+1; {увеличиваем число итераций}
             {находим следующее приближение}
    x:=x1–h*pr(x1)+b*(x1–x0);
             {вычисляем целевую функцию}
             {для следующего приближения}
    ff:=f (x);
             {проскочили минимум?}
    if (ff>f1) and (p=0) and (b–0.1>0) then
      b:=b–0.1 else
       if (b–0.1)<=0 then p:=1;
       if (ff>f1) and (p=1) and (h>=eps) then h:=h/2;
       if ff