Автор: Пользователь скрыл имя, 25 Декабря 2012 в 11:52, лабораторная работа
В данной работе рассматриваются одномерные методы оптимизации, то есть целевая функция является функцией одной переменной. Формально задача ставится следующим образом:
Задана функция одной переменной f(x), где a<=x<=b. Требуется с заданной точностью ε найти значение x0, при котором f(x0) минимально.
Лабораторная работа по курсу «Методы Оптимизации»
К численным методам оптимизации нулевого порядка относятся вычислительные алгоритмы поиска экстремума, не использующие информации о производных целевой функции. По сравнению с методами более высоких порядков, они отличаются большей вычислительной устойчивостью, но, в большинстве случаев, более медленной сходимостью (сходимость типичных методов нулевого порядка линейная, то есть с каждым шагом точность вычислений возрастает примерно в k раз, где константа k зависит от метода и свойств целевой функции). Кроме того, методы нулевого порядка – единственные методы, которые применимы к функциям, производные которых не определены во всех или в некоторых точках.
В данной работе рассматриваются одномерные методы оптимизации, то есть целевая функция является функцией одной переменной. Формально задача ставится следующим образом:
Задана функция одной переменной f(x), где a<=x<=b. Требуется с заданной точностью ε найти значение x0, при котором f(x0) минимально.
Рис. 1. Унимодальные функции. На отрезке [a, b] функция f1(x) унимодальна, f2(x) – нет.
Метод дихотомии также называется методом деления пополам. Необходимым условием для его применения является требование унимодальности целевой функции f(x): на рассматриваемом промежутке [a,b] функция f(x) должна иметь не более одного экстремума (см. рис 1).
Алгоритм проиллюстрирован рис. 2.
Рис. 2. Метод дихотомии. Показан случай, когда f(x1)<f(c)
Для уменьшения количества вычислений можно воспользоваться тем, что на втором и последующих шагах значение функции в центре нового отрезка всегда будет вычислено на предыдущем шаге, поэтому на каждом новом шаге требуется вычислять целевую функцию только в центрах правого и левого полуотрезков.
Так как каждый последующий отрезок всегда ровно в 2 раза меньше предыдущего, метод дихотомии обеспечивает увеличение точности в 2 раза за каждые 2 вычисления целевой функции, или, в среднем, в 21/2 = 1,41... раза на 1 вычисление целевой функции.
Метод Фибоначчи аналогичен методу деления пополам, но вместо деления отрезка на равные части в нём используется деление в золотой пропорции: φ = (1 + 51/2) / 2 = 1,6817…. Так же , как и метод деления пополам, метод Фибоначчи требует того, чтобы функция была унимодальной.
с = a + (b-a)/ φ
x = a + b - c
Рис. 3. Метод Фибоначчи. Показан случай, когда f(x)<f(c).
Особенностью метода Фибоначчи, позволяющей
экономить дорогостоящие
Например, на рис.3 f(x)<f(c), поэтому новым интервалом поиска становится интервал [a,c]. Точка x в этом случае оказывается внутри нового интервала и делит его в золотом отношении, то есть она становится новой точкой c.
Длина интервала поиска на следующем шаге всегда в φ = 1,68… раз меньше длины на предыдущем шаге. Таким образом, за одно вычисление целевой функции метод Фибоначчи увеличивает точность в 1,68… раз, что больше чем соответствующий показатель метода дихотомии (1.41…).
В лабораторной работе требуется на любом реализовать один из методов поиска экстремума. Метод поиска минимума и целевая функция указаны в варианте задания. Целевая функция содержит два свободных параметра, базовые значения которых также указаны в варианте задания.
Представленная программа
Отчет по лабораторной работе должен содержать следующие элементы:
№ |
Интервал поиска [a, b] |
Метод оптимизации |
Целевая функция f(x) |
Значения свободных параметров A, B | |
A |
B | ||||
1 |
[-2; 2] |
Дихотомия |
Ax2 + Bx |
1 |
-1 |
2 |
[0; π/2] |
Фибоначчи |
A sin(x) + Bx |
1 |
0,5 |
3 |
[-1; 3] |
Дихотомия |
Ax + Bx |
2 |
-1 |
4 |
[-2; 2] |
Фибоначчи |
1 / (x2 + Ax + B) |
0 |
1 |
5 |
[1; 5] |
Дихотомия |
A ln(x) + Bx |
2 |
-1 |
6 |
[-1; 5] |
Фибоначчи |
Ax2 + Bx |
2 |
-4 |
7 |
[1; 5] |
Дихотомия |
A ln(x) + Bx |
3 |
-2 |
8 |
[0; π/2] |
Фибоначчи |
A sin(x) + Bx |
2 |
√2 |
9 |
[0; 3] |
Дихотомия |
Ax + Bx |
1,5 |
-2 |
10 |
[-1; 3] |
Фибоначчи |
1 / (x2 + Ax + B) |
1 |
1 |
11 |
[-2; 3] |
Дихотомия |
Ax2 + Bx |
0,5 |
2 |
12 |
[0; 4] |
Фибоначчи |
1 / (x2 + Ax + B) |
2 |
1 |
13 |
[-2; 2] |
Дихотомия |
Ax + Bx |
½ |
3 |
14 |
[0; π/2] |
Фибоначчи |
A sin(x) + Bx |
1 |
√3 / 2 |
15 |
[-1; 4] |
Дихотомия |
Ax2 + Bx |
1 |
-2 |
16 |
[1; 5] |
Фибоначчи |
A ln(x) + Bx |
-7 |
3 |
17 |
[-3; 3] |
Дихотомия |
Ax + Bx |
e |
-1 |
18 |
[-5; 0] |
Фибоначчи |
1 / (x2 + Ax + B) |
-2 |
5 |
19 |
[1; 7] |
Дихотомия |
A ln(x) + Bx |
6 |
-3 |
20 |
[-1; 2] |
Фибоначчи |
Ax2 + Bx |
2 |
2 |
21 |
[0; π/2] |
Дихотомия |
A sin(x) + Bx |
3 |
√3 |
Точность, с которой необходимо искать минимум целевой функции, одинакова дял всех вариантов и равна 10-6.
Информация о работе Лабораторная работа по "Методам Оптимизации"