Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторная работа 3. 6 вар. Трофимов-2019.pdf
Скачиваний:
190
Добавлен:
19.02.2020
Размер:
119.22 Кб
Скачать

2.Многомерная оптимизация по направлению

Дана функция f

f(x) = x12 + 6x22 + x32 + 3x1x2 6x2x3 x2x3 + x1 6x2 + x3

 

(3)

Необходимо найти минимум в точке

2 1

6 по направлению

1 2

1 . Для того, чтобы

реализовать данный функционал на

основе функции одной переменной необходимо исполь-

 

 

 

 

 

зовать функцию перехода g. Вид функции g представлен на рисунке 2.

 

g(t) = f(x0 + t r)

 

 

 

 

(4)

Рис. 2: Вид функции перехода g

Программы, составленные для функции многих переменных лишь проксируют оригинальную функцию. Далее приведены строки этой функции.

static double f(Vector x) =>

Pow(x.Get(0), 2) + V * Pow(x.Get(1), 2) + Pow(x.Get(2), 2) + 3 * x.Get(0) * ,! x.Get(1) - V * x.Get(0) * x.Get(2) - x.Get(1) * x.Get(2) + x.Get(0) - V * ,! x.Get(1) + x.Get(2);

static double g(double t) =>

Lab3Sec2(new Vector(2, 1, V) + t * new Vector(-1, 2, 1));

7

2.1.Метод дихотомии

Метод дихотомии из точки 0 с шагом 0:01 за 7 шагов нашёл область поиска и за 14 шагов нашёл минимум функции перехода g, которым является точка 5=6. При подстановке этой

точки в выражение x0 + t r получается вектор x* =

17=6 2=3

31=6 ; f(x*) = 407=6

 

67:8333

 

 

 

h = 10 4

фукнции оказалось больше

 

 

. При проверке точек вблизи (шаг

 

) значение

 

минимума.

 

 

 

 

 

 

 

 

Для справки приводится последовательное уменьшение области поиска.

 

 

i

Левый

Центр

Правый

 

 

 

 

 

1

-0.645

-0.9675

-1.29

 

 

 

 

 

2

-0.645

-0.80625

-0.9675

 

 

 

 

 

3

-0.80625

-0.88687

-0.9675

 

 

 

 

 

4

-0.80625

-0.84656

-0.88687

 

 

 

 

 

5

-0.80625

-0.82640

-0.84656

 

 

 

 

 

6

-0.82640

-0.83648

-0.84656

 

 

 

 

 

7

-0.82640

-0.83144

-0.83648

 

 

 

 

 

8

-0.83144

-0.83396

-0.83648

 

 

 

 

 

9

-0.83144

-0.83270

-0.83396

 

 

 

 

 

10

-0.83270

-0.83333

-0.83396

 

 

 

 

 

11

-0.83270

-0.83302

-0.83333

 

 

 

 

 

12

-0.83302

-0.83317

-0.83333

 

 

 

 

 

13

-0.83317

-0.83325

-0.83333

 

 

 

 

 

 

14

-0.83325

-0.83329

-0.83333

 

 

 

 

8

2.2.Метод золотого сечения

Метод золотого сечения из точки 0 с шагом 0:01 за 5 шагов нашёл область поиска и за 21 шаг нашёл минимум функции перехода g, которым является точка 5=6. При подстановке

этой точки в выражение x0 +t r получается вектор x* = 17=6 2=3 31=6

; f(x*) = 407=6

67:8333. При проверке точек

вблизи (шаг h = 10 4) значение фукнции оказалось больше

минимума.

 

 

 

 

 

 

 

Для справки приводится последовательное уменьшение области поиска.

 

i

Левый

Центр слева

Центр справа

Правый

 

 

1

0

-0.46978

 

-0.76013

-1.22991

 

 

2

-0.46978

-0.76013

 

-0.93957

-1.22991

 

 

3

-0.46978

-0.64922

 

-0.76013

-0.93957

 

 

4

-0.64922

-0.76013

 

-0.82867

-0.93957

 

 

5

-0.76013

-0.82867

 

-0.87103

-0.93957

 

 

6

-0.76013

-0.80249

 

-0.82867

-0.87103

 

 

7

-0.80249

-0.82867

 

-0.84485

-0.87103

 

 

8

-0.80249

-0.81867

 

-0.82867

-0.84485

 

 

9

-0.81867

-0.82867

 

-0.83485

-0.84485

 

 

10

-0.82867

-0.83485

 

-0.83867

-0.84485

 

 

11

-0.82867

-0.83249

 

-0.83485

-0.83867

 

 

12

-0.82867

-0.83103

 

-0.83249

-0.83485

 

 

13

-0.83103

-0.83249

 

-0.83339

-0.83485

 

 

14

-0.83249

-0.83339

 

-0.83395

-0.83485

 

 

15

-0.83249

-0.83304

 

-0.83339

-0.83395

 

 

16

-0.83304

-0.83339

 

-0.83360

-0.83395

 

 

17

-0.83304

-0.83326

 

-0.83339

-0.83360

 

 

18

-0.83326

-0.83339

 

-0.83347

-0.83360

 

 

19

-0.83326

-0.83334

 

-0.83339

-0.83347

 

 

20

-0.83326

-0.83331

 

-0.83334

-0.83339

 

 

 

21

-0.83331

-0.83334

 

-0.83336

-0.83339

 

 

9

2.3.Метод Ньютона

Метод Ньютона из точки 0 с шагом 0:01 за 2 шага нашёл минимум функции перехода g, которым является точка 5=6. При подстановке этой точки в выражение x0 + t r получается

 

 

 

)

 

 

 

вектор x*

= 17=6

2=3 31=6 ; f(x*) = 407=6 67:8333. При проверке точек вблизи (шаг

h = 10 4

 

значение фукнции оказалось больше минимума.

 

Для справки приводится последовательное уменьшение области поиска.

 

i

xi

 

 

fi0

fi00

 

1

0

 

 

40

48

 

 

2

-0.83333

 

-4.1E-05

48

 

10