Студенческий сайт КФУ - ex ТНУ » Учебный раздел » Учебные файлы »ПРОГРАММИРОВАНИЕ

Методы многомерной оптимизации: многомерная оптимизация методом Хука и Дживса

Тип: лабораторная работа
Категория: ПРОГРАММИРОВАНИЕ
Скачать
Купить
Сравнение методов многомерной оптимизации Хука-Дживса и Розенброка по числу вычислений и по числу вызова оптимизируемой функции в процессе оптимизации. Особенности применения алгоритмов ускоряющего шага, в которых используется поиск по направлению.
Краткое сожержание материала:

Размещено на

Размещено на

МОСКОВСКИЙ АВИАЦИОННЫЙ ИНСТИТУТ

(НАЦИОНАЛЬНЫЙ ИССЛЕДОВАТЕЛЬСКИЙ УНИВЕРСИТЕТ)

Отчет по лабораторной работе за курс:

«Теория оптимального планирования и управления»

кафедры 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);

...
Другие файлы:

Многомерная оптимизация методом Хука-Дживса
Теоретические основы метода оптимизации. Разработка компьютерной системы для решения задач многомерной безусловной оптимизации методом Хука-Дживса с м...

Прямой поиск без ограничений. Метод поиска Хука-Дживса для функции Розенброка
Поиск оптимального решения. Простейший способ исключения ограничений. Многомерные методы оптимизации, основанные на вычислении целевой функции. Метод...

Методы оптимизации
Сущность и характеристика метода покоординатного спуска (метод Гаусса-Зейделя). Геометрическая интерпретация метода покоординатного спуска для целевой...

Математические методы оптимизации производственных систем и объектов
Решения алгебраических уравнений методом выделения корней. Аппроксимация функций методом наименьших квадратов; дихотомия, бисекция. Одномерная оптимиз...

Вопросы и ответы по дисциплине Методы оптимизации
Постановка задачи оптимизации, классификация методов оптимизации.Методы одномерной оптимизации.Методы безусловной многомерной оптимизации.Линейное про...