вого наближення
x1x2ітераціі458314489-13453-7633143
Графік 2 - залежність ітерації від початкового наближення
Висновок
При виконанні роботи я розглянув і розробив систему багатовимірної безумовної оптимізації методом Хука-Дживса з мінімізацією по напрямку, з використанням для исследующего пошуку метод одномірної квадратичної оптимізації.
Список літератури.
1.Р.Хук, Т.А.Джівс Прямий пошук рішення для числових і статичних проблем, 212-219 с., 1961.
2.Алгорітми і приклади розв'язання задач одновимірної оптимізації: Метод.указ. / Упоряд.: С.П Мочалов, І.А. Рибенко.: СібГІУ. - Новокузнецьк, 2004. - 18с., Мул.
. Мочалов С.П. Методи оптимізації металургійних процесів: Навчальний посібник / КузПІ.-Кемерово, 1989. - 81С.
Додаток 1
/ / опис глобальних змінних, x2: double;: integer;: double; ExplSearch (x1, x2: double; check: integer): Double;// Функція для розрахунку методу квадратичної апроксимації вона ж досліджує пошук: double;, f2, f3: double;, a1, a2: double;, tx2, tx3: double;=1 then / / для розрахунку першого х:=x1;: =tx1 +1;:=tx2 +1;:=sqr (tx1 + x2) + sqr (x2-1);
f2:=sqr (tx2 + x2) + sqr (x2-1);:=sqr (tx3 + x2) + sqr (x2-1);
a0:=f1;:=(f2-f1)/(tx2-tx1);:=1/(tx3-tx2)*((f3-f1)/(tx3-tx1)-(f2-f1)/(tx2-tx1));:=(tx2+tx1)/2-a1/2/a2;=2 then / / для розрахунку другого х:=x2;:=tx1+1;:=tx2+1;:=sqr(tx1+x1)+sqr(tx1-1);:=sqr(tx2+x1)+sqr(tx2-1);:=sqr(tx3+x1)+sqr(tx3-1);:=f1;:=(f2-f1)/(tx2-tx1);:=1/(tx3-tx2)*((f3-f1)/(tx3-tx1)-(f2-f1)/(tx2-tx1));:=(tx2+tx1)/2-a1/2/a2;;:=xopt;;
procedure TForm1.RezClick (Sender: TObject);// Основна процедура
varopt, x2opt: double;, sx2: double;, h2: double;: double;, tx2: double;: single;// Похибка: double;: integer;:=0;
ListBox1.Items.Clear;. Text:=«»;
EXopt2.Text:=«»;.Text:=«»;:=0;:=StrToFloat(Ex1.text);:=1;:=StrToFloat(Ex2.text);:=2;:=strtofloat(Eerror.Text);
. Checkedthen / / перевірка на вибір функції і запуск методу Хука-Дживса:=x1;:=x2; opt:=RB1ExplSearch (x1, x2, 1);// Передача значень у функцію квадратичної апроксимації для першого хopt:=RB1ExplSearch (x1opt, x2, 2);// Передача значень у функцію квадратичної апроксимації для другого х.Items.Add («Досліджує пошук»);. Items.Add («x1 =» + FloatToStr (x1opt) + «x2 =» + FloatToStr (x2opt ));:=(x1opt-x1) * 0.1;:=(x2opt-x2) * 0.1;
F:=sqr (x1 + x2) + sqr (x2-1);
dF:=0;
F:=sqr (x1 + x2) + sqr (x2-1);
tx1:=x1;:=x2;:=x1+h1;:=x2+h2;.Items.Add(«Поискпообразцу»);.Items.Add(«x1 =»+ FloatToStr (x1) +« x2=»+ FloatToStr (x2));:=sqr (x1 + x2) + sqr (x2-1);;:=sqrt (sqr (x1-sx1) + sqr (x2-sx2));// Розрахунок критерій для закінчення пошуку:=tx1;:=tx2;:=iteration +1;// Підрахунок кількості ітерацій; <= error / / перевірка критерій із заданою точність. Create («Вибірітефункцію»);;
. Items.Add («»);. Items.Add («Кількість ітерацій» + inttostr (iteration));. Text:=IntToStr (iteration);// Вивід ре...