Контрольная работа: Методы синтеза и оптимизации
end;
repeat
Grad(n,e/2,xk,dk,F);
for i:=1 to n do
dk[i]:=-dk[i]; sf:=F(xk);
if prn=1 then
begin
form1.ListBox1.Items.Add('Итерация №'+inttostr(nn)+ #13 +' Шаг = '+Floattostrf(lambda,ffGeneral,8,5) );
form1.ListBox1.Items.Add('Текущая точка ');
for i:=1 to n do
begin
form1.ListBox1.Items.Add('X'+inttostr(i)+'='+floattostrf(xk[i],ffGeneral,8,5));
formGraph.imGraph.Canvas.LineTo(round( mx* xk[1]+ Sx),round( -my* xk[2]+ Sy));
end;
form1.ListBox1.Items.Add(#13+'Текущий антиградиент');
for i:=1 to n do
form1.ListBox1.Items.Add('g'+inttostr(i)+'='+Floattostrf(dk[i],ffGeneral,8,5)+' ');
form1.ListBox1.Items.Add(' Целевая функция F = '+Floattostrf(sf,ffGeneral,8,5));
form1.ListBox1.Items.Add('-------------------------------------------');
end;
od:=0;
for i:=1 to n do
od:=od+sqr((dk[i]));
od:=sqrt(od); if od<e then goto 1;
nn:=nn+1;
if nn>Nmax then
begin
nn:=nn-1;
showmessage('Минимум не найден !!!'+ #13+' Необходимое числоитераций больше выделенного ресурса'+Inttostr(Nmax));