Методы многомерной оптимизации: многомерная оптимизация методом Хука и Дживса
Краткое сожержание материала:
Размещено на
Размещено на
МОСКОВСКИЙ АВИАЦИОННЫЙ ИНСТИТУТ
(НАЦИОНАЛЬНЫЙ ИССЛЕДОВАТЕЛЬСКИЙ УНИВЕРСИТЕТ)
Отчет по лабораторной работе за курс:
«Теория оптимального планирования и управления»
кафедры 302
Тема
«Методы многомерной оптимизации: многомерная оптимизация методом Хука и Дживса»
Выполнила студентка
группы 03-323:
Ежова О.С.
Преподаватель:
Красовская М.А.
Москва
2012
Постановка задачи
Найти методом Хука и Дживса с непрерывным шагом:
MIN F1(x)= (Х1-4)4 +(X1-3 X2 )2,
с начальной точкой X0=(1;0)
Предусмотреть ввод точности .
Провести: многомерный оптимизация дживс розенброк
1. Нахождение экстремума функции F1(X) при различных значениях начальной точки;
2. Определение экстремума заданной функции при различных значениях точности (=0.01, =0.1, =0.001);
Алгоритм метода
Графики функции
Результаты работы программы
Начальная точка (1;0)
1) Начальная точка X0 = [1;0]
Точность е = 0.1
Опт. значение аргумента (3,8826;1,3109)
Опт. значение функции 0,00269660220874356
Кол-во итераций метода 3
2) Точность е = 0.01
Опт. значение аргумента (4,0037;1,3344)
Опт. значение функции 1,48019246160121E-7
Кол-во итераций метода 3
3) Точность е = 0.001
Опт. значение аргумента (3,9957;1,3321)
Опт. значение функции 6,03879971567203E-7
Кол-во итераций метода 3
Начальная точка (-2;2)
1) Точность е = 0.1
Опт. значение аргумента (3,7289;1,2470)
Опт. значение функции 0,00554697770081615
Кол-во итераций метода 5
2) Точность е = 0.01
Опт. значение аргумента (3,9867;1,3287)
Опт. значение функции 2,17609241998115E-7
Кол-во итераций метода 6
3) Точность е = 0.001
Опт. значение аргумента (3,9907;1,3305)
Опт. значение функции 5,73924492635677E-7
Кол-во итераций метода 7
Начальная точка (4;2)
1) Точность е = 0.1
Опт. значение аргумента (4,5855;1,5198)
Опт. значение функции 0,118199132492491
Кол-во итераций метода 2
2) Точность е = 0.01
Опт. значение аргумента (4,5914;1,5296)
Опт. значение функции 0,122304388908469
Кол-во итераций метода 2
3) Точность е = 0.001
Опт. значение аргумента (4,0108;1,3372)
Опт. значение функции 6,2375505275578E-7
Кол-во итераций метода 5
Листинг программы
unit Xuk;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Grids;
type
TForm1 = class(TForm)
Edit2: TEdit;
Edit4: TEdit;
Label1: TLabel;
Label2: TLabel;
Label4: TLabel;
ComboBox1: TComboBox;
Label7: TLabel;
Label8: TLabel;
Label9: TLabel;
StringGrid1: TStringGrid;
Edit1: TEdit;
Edit6: TEdit;
Edit7: TEdit;
Button1: TButton;
Edit3: TEdit;
Label3: TLabel;
Edit5: TEdit;
Edit8: TEdit;
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
type Tper = class(TObject)
private
one:real;
two:real;
end;
procedure schityvanie;
function func (h:real):real;
procedure sechenie(var c:real);
var
Form1: TForm1;
alfa,t1,t2,x1,x2,e,F:real;
k,j,v,q:integer;
x,y,xp,d:Tper;
xstr,ystr,dstr:string;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
begin
ComboBox1.Items.Add('(x1-2)^4+(x1-2*x2)^2');
ComboBox1.Items.Add('4*x1+8*x2-2*x1^2-2*x2^2');
x:=Tper.Create;
xp:=Tper.Create;
y:=Tper.Create;
d:=Tper.Create;
end;
//считывание начальных значений
procedure schityvanie;
var
o,s,i,p:integer;
str,str1:string;
flaag:boolean;
begin
str1:='';
x.one:=0;
x.two:=0;
flaag:=true;
for o:=0 to 9 do
for s:=0 to Form1.StringGrid1.RowCount do
Form1.StringGrid1.Cells[o,s]:='';
o:=0;
Form1.StringGrid1.RowCount:=10;
s:=2;
x.one:=StrToFloat(Form1.Edit2.Text);
x.two:=StrToFloat(Form1.Edit3.Text);
e:=StrToFloat(Form1.Edit4.Text);
j:=1;
Form1.stringgrid1.Cells[0,0]:='K';
Form1.stringgrid1.Cells[1,0]:='Xk/F(Xk)';
Form1.stringgrid1.Cells[2,0]:='j';
Form1.stringgrid1.Cells[3,0]:='dj';
Form1.stringgrid1.Cells[4,0]:='yj';
Form1.stringgrid1.Cells[5,0]:='shag';
Form1.stringgrid1.Cells[6,0]:='yj+1';
Form1.stringgrid1.Cells[7,0]:='d';
Form1.stringgrid1.Cells[8,0]:='shag';
Form1.stringgrid1.Cells[9,0]:='y3+shag*d';
end;
//вычисление значения функции
function func(h:real):real;
begin
If Form1.ComboBox1.Text='(x1-2)^4+(x1-2*x2)^2' then
func:=((y.one+h*d.one)-2)*((y.one+h*d.one)-2)*((y.one+h*d.one)-2)*((y.one+h*d.one)-2)+
((y.one+h*d.one)-2*(y.two+h*d.two))*((y.one+h*d.one)-2*(y.two+h*d.two))
else func:=4*(y.one+h*d.one)+8*(y.two+h*d.two)-2*(y.one+h*d.one)*(y.one+h*d.one)-2*(y.two+h*d.two)*(y.two+h*d.two);
end;
//метод золотого сечения
procedure sechenie(var c:real);
var
a,b,Fn,Fm,m,n:real;
begin
Fn:=0;
Fm:=0;
a:=StrToFloat(Form1.Edit5.Text);
b:=StrToFloat(Form1.Edit8.Text);
alfa:=0.618;
n:=a+(1-alfa)*(b-a);
m:=a+alfa*(b-a);
Fn:=func(n);
Fm:=func(m);
While (b-a)>=e do
begin
If Fn > Fm then
begin
a:=n;
n:=m;
Fn:=Fm;
m:=a+alfa*(b-a);
Fm:=func(m);
...Многомерная оптимизация методом Хука-Дживса
Теоретические основы метода оптимизации. Разработка компьютерной системы для решения задач многомерной безусловной оптимизации методом Хука-Дживса с м...
Прямой поиск без ограничений. Метод поиска Хука-Дживса для функции Розенброка
Поиск оптимального решения. Простейший способ исключения ограничений. Многомерные методы оптимизации, основанные на вычислении целевой функции. Метод...
Методы оптимизации
Сущность и характеристика метода покоординатного спуска (метод Гаусса-Зейделя). Геометрическая интерпретация метода покоординатного спуска для целевой...
Математические методы оптимизации производственных систем и объектов
Решения алгебраических уравнений методом выделения корней. Аппроксимация функций методом наименьших квадратов; дихотомия, бисекция. Одномерная оптимиз...
Вопросы и ответы по дисциплине Методы оптимизации
Постановка задачи оптимизации, классификация методов оптимизации.Методы одномерной оптимизации.Методы безусловной многомерной оптимизации.Линейное про...