1. Методы одномерного поиска


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

Точки img01выбираются на расстоянии img02 от середины отрезка:

img03  (1)        

И в каждой из найденных точек вычисляем значения функции: img04 и img05.

Далее сокращаем интервал неопределенности и получаем интервал img06 следующим образом.

Если img07, то img08 и img09.

В противном случае, если img10, то img11 и img12.


За одну итерацию интервал неопределенности уменьшается примерно в два раза (рис. 1). За img13 итераций длина интервала будет примерно равна img14. Для достижения точности img15 потребуется img16 итераций. На каждой итерации минимизируемая функция вычисляется дважды.

img17

Рис. 1. Метод дихотомии

Поиск заканчивается, если длина интервала неопределенности  img18 на текущей итерации становится меньше заданной точности: img19.


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

Точки img20 находятся симметрично относительно середины отрезка img21 и делят его в пропорции золотого сечения, когда длина всего отрезка относится к длине большей его части также, как длина большей части относится к длине меньшей части:


img22 и img23.


Отсюда

img24

img25               (2)

Сокращаем интервал неопределенности.

1) Если img26, то img27, img28, img29.

2) В противном случае, если img30, то img31, img32, img33.

На последующих итерациях производим расчет только той точки и ее функции, которую необходимо обновить.

Поиск прекращается при выполнении img34.


Для достижения точности img35 потребуется img36 итераций.

      Неточное задание величины img37 на ЭВМ уже при достаточно небольшом количестве итераций может приводить к погрешностям и потере точки минимума, так как она выпадает из интервала неопреде­ленности. Поэтому, вообще говоря, при реализации алгоритма возможность такой ситуации должна быть предусмотрена.


img38


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


  1. Метод Фибоначчи.

Числа Фибоначчи подчиняются соотношениям:

img39,

где img40 и img41.


С помощью индукции можно показать, что img42-е число Фибоначчи вычисляется по формуле:

img43,

где img44

Из данной формулы видно, что при больших значениях img45 выполняется соотношение:

img46,так, что числа Фибоначчи с увеличением img47 растут очень быстро.

На начальном интервале вычисляют точки

img48                                       (3)

где img49 выбирается исходя из точности и начальной длины интервала (см. ниже соотношение (5)).

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


На img50-й итерации получаем точку минимума, которая совпадает с одной из точек, которые вычисляются по формулам

img51,

img52

и расположены на отрезке img53 симметрично относительно его середины.

Нетрудно заметить, что при img54 точки:

img55  и  img56

совпадают и делят отрезок img57 пополам.

Следовательно, img58.

Отсюда можно выбрать img59 из условия img60.

Таким образом, это условие позволяет до начала работы алгоритма определить число итераций, необходимое для определения минимума с точностью img61 при начальной величине интервала img62.

С ростом img63 из-за того, что img64- бесконечная десятичная дробь, возможно “искажение” метода и потеря интервала с точкой минимума (вследствие погрешностей вычислений).

Следует также отметить, что при практическом применении метод золотого сечения по эффективности, скорости сходимости и точности получаемого решения практически не уступает методу Фибоначчи. А алгоритмически реализация метода золотого сечения является более простой.



img65


Рис. 3. Метод Фибоначчи


  1. Метод квадратичной интерполяции (метод парабол)

Идея метода заключается в следующем:

Если на отрезке [a,b] с внутренней точкой x*=arg min{φ(x): xÎ[a,b]} функция φ(х) достаточно хорошо аппроксимируется многочленом второй степени, то за приближенное значение х* целесообразно взять точку минимума этого многочлена.


Метод целесообразно применять после того, как найден отрезок достаточно малой длинны, содержащий x*, например, после того как найдены [ak,bk] и xk в результате k шагов по золотого сечения.


Пусть известна удачная тройка чисел х1, х2 и х3 (x1<x2<x3, φ2<=min{φ1,φ3} φ2<max{φ1,φ3}), т.о. отрезку [x1,x3] обязательно принадлежит точка минимума.

Многочлен второго порядка, график которого проходит через точки (х1,φ1), (х2,φ2) и (х3,φ3) достигает минимального значения в точке

img66

Схема:

      Имеем х1, х2, х3 и соответствующие φ1, φ2, φ3 и задана точность e определения интервала, содержащего точку х*.

      Шаг 1. Вычислим img67.

      Шаг 2. Если |img68-x2|<=e, закончить поиск, положив х*~img69. Если |img70-x2|>e, то вычислить φ(img71).

      Шаг 3. Из чисел х1, х2, х3 и img72 выбираем удачную тройку чисел и переходим на 1.


Выбираем удачную тройку:

      Имеем (х1, φ1), (x2, φ2), (x3, φ3) и (x4, φ4), такие что

x1<x2<x3<x4, φ<=min{ φ1, φ4}, φ3<=min{ φ1, φ4}

При φ2< φ3 удачная тройка х1, х2, х3.

При φ2> φ3 удачная тройка х1, х2, х4.

При φ1= φ3 – обе удачные.


Hosted by uCoz