Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Практикум

.pdf
Скачиваний:
57
Добавлен:
28.01.2022
Размер:
1.52 Mб
Скачать

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

3. Результаты выполнения функции, реализующей метод золотого сечения и длина отрезка, содержащего точку минимума после трех итераций. Значение параметра d метода дихотомии выберем равным 0.01.

Для проведения расчетов по методу дихотомии следует создать сценарий и выполнить расчеты 3-х итераций. Ниже приведен пример 1-й итерации:

1).

 

2.5;

 

3.5;

 

 

 

 

a

b

d 2.995;

 

 

a

b

d 3.3005;

a

b

 

x

 

0

 

0

x

0

0

0

 

0

 

 

1

 

 

2

 

 

 

2

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

f (x ) 3.109;

f (x

) 3.113;

f (x )

f (x2)

 

 

 

 

 

1

 

 

 

2

 

 

 

 

 

 

1

 

 

 

 

 

a

2.995;

 

b b

3.5;

 

 

0.505;

 

 

 

 

 

1

 

 

1

0

 

 

 

 

1

 

 

 

 

 

 

 

 

Вычислить аналогично следующие 2 итерации, а результаты расчетов свести в табл. 5.3:

 

n

 

 

a

 

 

b

 

 

х1

 

 

х2

 

 

f(x1)

 

 

f(x2)

 

 

n

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

2.5

 

 

3.5

 

 

2.995

 

 

3.005

 

 

-3.109

 

 

-3.113

 

0.505

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

 

2.995

 

 

3.5

 

 

3.2425

 

 

3.2525

 

 

-3.125

 

 

-3.122

 

0.2575

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3

 

 

2.995

 

 

3.2525

 

 

3.119

 

 

3.129

 

 

-3.1407

 

 

-3.141

 

0.134

 

 

4

 

 

3.119

 

 

3.2525

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Для метода дихотомии длина отрезка неопределенности после трех итераций равна

 

 

(b a) 2δ

 

1 10

2

2

 

 

 

10

0.13375.

 

 

 

 

3

3

2

3

 

 

 

2

 

 

 

 

 

4.Число итераций, необходимых для локализации точки минимума и Е=10-4

Теоретическая величина погрешности для метода дихотомии определяется длиной конечного отрезка неопределенности после N

итераций: L

 

 

L

0

. Отсюда, принимая во внимание,

 

 

 

 

 

 

 

 

 

 

 

N

 

 

 

N

 

 

 

 

 

 

 

2

 

 

можно определить соответствующее число итераций:

N log2 (

что

b a E

L

N

 

 

E ) .

,

Если точностьЕ=0.0001, а параметр метода d=

log2 (3.5 2.5 0.00002) 13.6996 13 N 14 . 0.0001 0.00002

=0.00002, то получим:

В результате расчета на ПК при N=13 длина отрезка равна 0.00014. Точность достигнута при N=14,т. е. расчет совпадает с теоретической оценкой.

41

5.Решение задачи оптимизации с использованием средств пакета Scilab

//Построение графика функции x=2.5:0.1:3.5; y=x.*cos(x)-sin(x); plot(x,y)

xtitle('График функции f(x)=x*cos(x)-sin(x)','x','y'); xgrid();

//Решение задачи оптимизации

deff('y=f0(x)','y=x*cos(x)-sin(x)'); //Описание целевой функции function [f,g,ind]=costf(x,ind)

f=f0(x)

g=numderivative(f0,x) endfunction

x0=2.5;

[fmin,xmin]=optim(costf,x0)

-->exec(‘graf.sce’,0);

-->exec(‘opt1.sce’,0); xmin =

3.1415927 fmin = -3.1415927

Контрольные вопросы по теме «Одномерная оптимизация»

1.Какое значение функции называют оптимальным?

2.Какой минимум называют локальным?

3.Какой минимум называют глобальный?

42

4.Каковы необходимые и достаточные условия экстремума функции?

5.Когда применяются численные методы одномерной оптимизации?

6.В чем суть методов одномерного поиска?

7.Что означает понятие «унимодальная функция»?

8.Почему в методах одномерной оптимизации при переходе к следующей итерации часть отрезка можно отбросить?

9.Что влияет на значение параметра метода дихотомии?

10.Какое деление отрезка называют золотым сечением?

11.Влияет ли вид функции на скорость сходимости метода дихотомии? 12.Влияет ли вид функции на скорость сходимости метода золотого сечения? 13.В чем заключается основное достоинство метода золотого сечения? 14.Во сколько раз на очередной итерации уменьшается длина отрезка

неопределенности в методе дихотомии?

15.Во сколько раз на очередной итерации уменьшается длина отрезка неопределенности в методе золотого сечения?

16.Как оценивается погрешность методов оптимизации?

Можно ли с использованием численных методов одномерной оптимизации найти максимум функции?

43

Лабораторная работа по теме №6

«Методы многомерной оптимизации»

6.1.Вопросы, подлежащие изучению

1.Постановка задачи многомерной оптимизации.

2.Классификация задачи оптимизации.

3.Основные понятия: выпуклое множество, целевая функция, линии уровня, поверхности уровня, градиент скалярной функции и его свойства, локальный и глобальный минимум, выпуклая функция, условия существования минимума функции нескольких переменных.

4.Градиентные методы и алгоритмы оптимизации: метод с дроблением шага; метод наискорейшего спуска аналитический; метод наискорейшего спуска численный.

5.Основные свойства градиентных методов оптимизации, различия методов.

6.Начальная точка траектории поиска минимума, свойства траектории, условия окончания процесса оптимизации.

7.Решение задачи многомерной оптимизации средствами пакета Scilab.

6.2.Задание

1.Выбрать индивидуальное задание из табл. 6-1 для решения задачи оптимизации функции двух переменных:

Функцию – f(x, y);

Методы, заданные для ручного расчета и для

2.Проверить условия существования точки минимума заданной функции f(x,y).

3.Решить задачу многомерной оптимизации аналитическим методом.

4.Выбрать начальную точку x0, y0 итерационного процесса оптимизации.

5.Провести расчет 3-х итераций 1-м заданным методом, а результаты расчета свести в табл. 6-2.

6.Написать программу получения координат минимума функции 2-м заданным методом с точностью 10-4, результаты расчета свести в табл. 6-3.

7.Используя данные 3-х итераций, построить в одном графическом окне две траектории спуска (НСА и ГДШ). и сделать вывод о правильности проведенных расчетов.

8.Решить задачу многомерной оптимизации с использованием функции optim пакета Scilab, сравнить полученные координаты точки минимума, вычисленные с использованием пакета, с координатами, полученными аналитическим методом.

44

6.3. Варианты задания

Таблица 6-1

Целевая функция

Ручной

Программа

1

f(x,y) = 2 x2 + 3 y2 – 5 x + 6

ГДШ

НСА

2

f(x,y) = x2 + 2 y2 – 3 y + 7

НСА

ГДШ

3

f(x,y) = 3 x2 + y2 – 15

ГДШ

НСА

4

f(x,y) = 3 x2 + 5 y2 + x – 2

НСА

ГДШ

5

f(x,y) = 2 x2 + 3 y2 + 2 x – 3 y

ГДШ

НСА

6

f(x,y) = 5 x2 + 2 y2 + 3 x + 10

НСА

ГДШ

7

f(x,y) = 4 x2 + 3 y2 – 3 y – 7

ГДШ

НСА

8

f(x,y) = 5 x2 + 6 y2 + 3 x – 2 y + 3

НСА

ГДШ

 

 

 

 

9

f(x,y) = 3 x2 + y2 + - 3 x + y – 2

ГДШ

НСА

10

f(x,y) = 6 x2 + 5 y2 – 10

НСА

ГДШ

 

 

 

 

11

f(x,y) = 5 x2 + 2 y2 – 2 x

ГДШ

НСА

12

f(x,y) = x2 + 2 y2 – 3 x + 5 y + 1

НСА

ГДШ

13

f(x,y) = x2 + 4 y2 – 2 x

ГДШ

НСА

14

f(x,y) = 4 x2 + 3 y2 + y + 3

НСА

ГДШ

 

 

 

 

15

f(x,y) = 3 x2 + y2 + 3

ГДШ

НСА

16

f(x,y) = 6 x2 + 4 y2 – 5 x + 3 y –13

НСА

ГДШ

17

f(x,y) = 5 x2 + y2 + x

ГДШ

НСА

18

f(x,y) = x2 + 4 y2 – 2 x + 3 y + 5

НСА

ГДШ

19

f(x,y) = 2 x2 + 5 y2 + 2 y + 3

ГДШ

НСА

20

f(x,y) = x2 + 3 y2 – x + 2 y + 7

НСА

ГДШ

21

f(x,y) = 3 x2 + y2 – y + 3

ГДШ

НСА

22

f(x,y) = 6 x2 + 3 y2 + 10

НСА

ГДШ

 

 

 

 

23

f(x,y) = 5 x2 + 4 y2 – 4 x – 11

ГДШ

НСА

 

 

 

 

24

f(x,y) = x2 + 2 y2 – x – y

НСА

ГДШ

25

f(x,y) = 3 x2 + 2 y2 – 5 y + 1

ГДШ

НСА

 

 

 

 

26

f(x,y) = 3 x2 + 4 y2 – 2 x + 3 y – 5

НСА

ГДШ

27

f(x,y) = 4 x2 + 5 y2 + 2 x – 4 y + 12

ГДШ

НСА

28

f(x,y) = 6 x2 + 3 y2 – 4 x + 17

НСА

ГДШ

29

f(x,y) = x2 + 5 y2 – x + 2 y + 10

ГДШ

НСА

 

 

 

 

30

f(x,y) = 3 x2 + y2 – 10

НСА

ГДШ

 

 

 

 

45

6.4.Содержание отчета

1.Индивидуальное задание, целевая функция, метод для ручного расчета 3-х итераций и метод для программного расчета с заданной точностью.

2.Результаты проверки условия существования точки минимума функции f(x,y).

3.Аналитическое решение задачи оптимизации.

4.Выбор начальной точки численного процесса оптимизации.

5.Результаты решения задачи оптимизации 1-м методом (3 итерации), представленные в табл. 6-2.

 

k

 

 

x

 

y

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

1

2

3

f (x, y)

g1 g 2

Таблица 6-2

6.Программа и результаты ее выполнения 2-м методом оптимизации.

7.График 2-х траекторий спуска к точке минимума (3 итерации).

8.Результаты выполнения задания, полученные с помощью математического пакета Scilab.

6.5.Пример выполнения задания

1.Задание для решения задачи многомерной оптимизации:

функция –

f(x,y) x

2

 

3y

2

 

26

;

метод оптимизации для «ручного расчета» - значение параметра p=3;

метод оптимизации для расчета на ПК – значение параметра t=1.

2.Проверка существования минимума функции

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

Проверим, что функция

f(x,y)

множестве R.

 

Матрица Гессе для функции

x

2

 

 

 

f(x,y)

3y

2

26

является выпуклой на

 

 

 

x2 3y2 26 :

 

 

 

2

f

 

2

f

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x

2

x y

 

2

 

 

 

 

G(x,y)

 

 

 

 

 

 

 

 

 

 

 

2

f

 

2

f

 

 

0

 

 

 

 

 

 

 

 

 

 

 

 

 

y x

y

2

 

 

 

 

 

 

 

 

0

6

 

 

,

а угловые миноры:

 

 

2f

2 0,

 

 

2f

 

2f

12

0 .

1

x2

2

x2

y2

 

 

 

 

 

 

Таким образом, функция f(x,y) - выпуклая на множестве R.

46

3.Решение задачи многомерной оптимизации аналитическим методом

Необходимые условия существования точки экстремума:

f

 

x

 

 

f

 

 

 

y

 

 

0,

0,

2x 0,

 

0,

6y

откуда

x

*

0,

 

 

*

0,

y

 

*

(0,0)

f

26

.

4.Начальная точка итерационного процесса численного решения задачи многомерной оптимизации

Выберем начальную точку спуска -

x

0

1,

 

 

y

0

 

0.5

.

5.Пример выполнения 1-й итерации методом наискорейшего спуска (НСА):

Вывод формулы для расчета шага спуска:

 

 

 

 

 

xk

λ

f

 

 

 

 

 

 

 

 

 

 

xk 1

x x

,y

 

 

 

f

 

 

 

 

 

 

 

 

 

k

 

 

 

 

 

 

 

 

 

 

 

 

k

 

, где k 0,1...

 

 

2x,

 

 

 

 

 

 

 

 

f

 

 

 

 

x

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

y

 

y

 

λ

 

 

 

 

,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

k 1

k

y x

,y

 

 

 

 

 

 

 

 

 

 

 

 

 

k

 

 

 

 

 

 

 

 

 

 

 

 

 

 

k

 

 

 

 

 

 

Построим функцию

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

3(yk λk

2

,

 

 

 

Ф (xk λk 2xk )

6yk ) 26

 

 

 

Ф

4x

2

(1 2λ

) 36y

2

(1 6λ ) 0.

 

 

 

 

k

k

 

 

 

 

λ

 

 

 

k

 

 

 

 

 

k

 

 

 

 

Из условия

Φ'λ 0 определим параметр

:

f

6y.

y

 

 

 

 

9y

2

x

2

 

λ

 

 

k

k

 

 

 

 

 

 

 

 

 

 

 

 

 

 

k

 

2x

2

54y

2

 

 

 

k

k

 

 

 

 

 

 

 

, k=0, 1,…

Пример выполнения 1-й итерации по методу НСА:

1) x 1, y

 

 

 

 

 

) x2

3y2

26 27.75;

 

9 y2

x2

0.2097

 

0.5, f (x , y

 

0

0

 

2x2

54 y2

 

0

 

0

 

 

 

 

0 0

 

0

0

 

 

 

 

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

 

0

 

g1

df (x

, y

)

2x

 

2, g2

df (x , y

)

6 y

 

3

 

 

 

 

 

0

 

 

0

 

 

 

0

0

 

 

 

 

 

 

 

dx

 

 

 

0

 

dy

 

 

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Важно: Аналогично выполнить еще 2 итерации, полученные результаты свести в таблицу:

 

k

 

 

x

 

 

y

 

 

f (x, y)

 

g1

 

g 2

 

k

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

 

 

1

 

 

0.5

 

 

27.75

 

2

 

3

 

0.2097

 

 

1

 

 

0.5806

 

 

-0.1290

 

 

26.3871

 

1.1613

 

-0.7742

 

0.3095

 

 

2

 

 

0.2212

 

 

0.1105

 

 

26.0857

 

0.4424

 

0.66359

 

0.2097

 

 

3

 

 

0.1284

 

 

-0.0285

 

 

26.0189

 

 

 

 

 

 

 

После 3-х итераций: Xmin=0.1284, ymin=-0.0285, f=21.0189.

47

Пример выполнение 1-й итерации по методу ГДШ:

x

1, y

0.5, f (x

, y

) x

2

3y

2

26

27.75;

 

0

0

0

0

0

0

 

 

 

g1

df (x

, y

)

2x

 

2, g2

df (x

, y

)

6 y

 

3

0

0

 

 

0

0

 

 

dx

 

0

dy

 

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1)λ0

x1 x0 0 g1 0, y0 y0 0 g2 1

λ=0.5;

Проверим условие ГДШ:

 

 

 

 

) f (x

, y )

 

2

g2

2

)?( 1.25

 

 

 

 

 

 

0.25

f (x

, y

0

3.25)?

нет

 

0

 

(g1

 

 

 

 

0

 

0

 

1

 

1

 

2

 

 

 

 

 

 

 

 

 

0

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x

x

 

g1(x

, y

) 0.5, y

 

y

 

 

g2(x

, y ) 0.25

 

 

 

 

 

1

 

0

 

0

 

0

0

 

 

1

0

0

0

0

 

 

 

 

 

 

 

 

 

 

) f (x

, y )

 

2

g2

2

)?(1.31 1.65)?

 

 

 

 

0.125

f (x

, y

0

нет

0

 

(g1

 

 

 

0

 

0

 

1

 

1

 

2

 

 

 

 

 

 

 

 

0

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x

0.75,

1

 

 

 

f (x

, y

)

 

0

0

 

 

y

 

0.125,

f (x

, y ) x

2

3y

2

 

0

 

 

 

 

 

 

 

 

 

1

1

1

1

 

, y )

 

2

g2

2

 

 

0.81)?

 

f (x

0

)?(1.14

 

 

(g1

 

 

1

 

1

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

26 26.75;

да

Следовательно: x1 x0 0 g1(x0 , y0 ) 0.75, y1 y0 0 g2(x0 , y0 ) 0.125

Важно: Аналогично выполнить еще 2 итерации, полученные результаты свести в таблицу:

 

k

 

 

x

 

 

y

 

 

f (x, y)

 

g

1

 

 

g

2

 

 

 

k

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

 

 

1

 

 

0.5

 

 

27.75

 

 

2

 

 

3

 

 

0.125

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

0.75

 

 

0.125

 

 

26.75

 

 

1.5

 

 

0.75

 

 

0.25

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

 

0.375

 

 

-0.0625

 

 

26.1523

 

 

0.75

 

 

-0.375

 

 

0.25

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3

 

 

0.1875

 

 

0.0313

 

 

26.0318

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

После 3-х итераций: Xmin=0.1875, ymin=0.0313, f=26.0318.

6.Построение траектории поиска минимума методами НСА и ГДШ.

--> x1=[1,0.5806,0.2212,0.1284];, y1=[0.5,-0.129,0.1105,-0.0285]; --> x2=[1,0.75,0.375,0.1875]; , y2=[0.5,0.125,-0.0625,0.0313]; --> scf(1); plot(x1,y1,'r-o',x2,y2,'b-o');

--> xtitle('Траектории спуска НСА и ГДШ');

--> xgrid

--> legend('- НСА', '- ГДШ',1)

48

//Описание целевой функции function y=gg(x)

y=x(1).^2+3*x(2).^2+26 endfunction

function [f,g,ind]=cst(x,ind) //вспомогательная функция f=gg(x);

g=numderivative(gg,x); endfunction

[f,xopt]=optim(cst,x0) //вычисление координат точки минимума

--> x0=[1,1]; -->exec(‘opt2.sce’,0);

xopt

=

-0.0000004 7.970D-08

f

=

26.

Вывод: Координаты точки минимума, найденные аналитическим методом и методом, заложенным в функции optim пакета Scilab, совпадают с точностью 7.970D-08.

Контрольные вопросы по теме «Многомерная оптимизация»

1.На какие задачи делится задача оптимизации в зависимости от количества параметров целевой функции?

2.Какая функция называется целевой функцией?

3.Как называется задача оптимизации, если на значения параметров оптимизации существуют ограничения?

49

4.Что такое градиент?

5.Куда направлен антиградиент?

6.Чему равен модуль антиградиента в точке минимума?

7.Что такое линия уровня?

8.Что такое траектория спуска?

9.Что является условием окончания итерационного процесса по отысканию точки минимума в методах спуска?

10.Что является условием существования минимума для функции от двух переменных?

11.Как выбирается начальная точка при решении задачи многомерной оптимизации?

12.С каким направлением в градиентных методах совпадает движение к точке минимума?

13.Что является достаточным условием существования минимума функции нескольких переменных?

14.Какая точка называется точкой стационарности (x) ?

15.Что показывает модуль градиента?

16.Какое значение в методе ГДШ принимается за начальное значение шага λ ?

17.Как осуществляется поиск очередной точки траектории спуска в методе наискорейшего спуска?

18.Что нужно сделать, чтобы с использованием метода наискорейшего спуска найти максимум функции f(x1, x2)?

19.Для чего используется метод одномерной оптимизации в численном методе наискорейшего спуска (НСЧ)?

20.Как называется множество точек, для которых целевая функция

принимает постоянное значение

f(x ,x

,...x

m

)

1

2

 

 

C

?

Список литературы

1.Семенова Т.И., Кравченко О.М., Шакин В.Н., Вычислительные модели и алгоритмы решения задач численными методами: учебное пособие. - М.:ЭБС МТУСИ, 2017.- 82с. Режим доступа: http://www.mtuci.ru/structure/library/catalogue/download.php?book_id=1819.

2.Семенова Т.И., Юсков И.О., Юскова И.Б. Алгоритмизация вычислительных задач, [Электронный ресурс] / МТУСИ. – М., 2017. – 62с. Режим доступа: http://www.mtuci.ru/structure/library/catalogue/download.php?book_id=1833.

3.Шакин В. Н., Семенова Т. И., Фриск В. В. Базовые средства математического пакета Scilab. Учебник для вузов. – М.: Горячая линия – Телеком, 2019 – 336 с.: ил.

50

Соседние файлы в предмете Численные методы