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

Положим, что в ограниченном интервале функцию f(x) можно аппроксимировать квадратичным полиномом. Пусть задана последовательность точек x1, x2, x3 и известны значения функции в этих точках: f(x1) = f1, f(x2) = f2, f(x3) = f3. Тогда можно определить постоянные коэффициенты a0, a1 и a2 таким образом, что значения квадратичного полинома [4]:

clip_image002 (32)

совпадут со значениями функции f(x) в трех указанных точках. Для этого вычислим значение j(x) в трех заданных точках.

Так как clip_image004, получаем clip_image006. Поскольку clip_image008 получаем clip_image010. При clip_image012 имеем clip_image014 или

clip_image016 (33)

Если точность аппроксимации функции f(x) на отрезке [x1, x2] квадратичным полиномом оказывается достаточно высокой, то построенный полином далее используется для оценивания координаты точки минимума функции f(x).

Стационарные точки полинома определяются посредством приравнивания к нулю его первой производной и последующим нахождением корней полученного таким образом уравнения. Имеем

clip_image018. (34)

Тогда для оценки координаты точки минимума функции f(x) получаем формулу

clip_image020 (35)

Приведем описание алгоритма метода последовательного оценивания с использованием квадратичной аппроксимации, разработанного Пауэллом [4].

1 Пусть f(x) – оптимизируемая функция, х1 – начальная точка, Dх – величина шага по оси абсцисс. Вычислить х2 = х1+Dх и значения функции f(x1) и f(x2).

2 Если f(x1) >f(x2), то положить х3 = х1 +2 Dх. Если f(x1) £ f(x2), то положить х3 = х1 -Dх.

3 Вычислить значение функции f(x3). Найти fmin = min{ f(x1), f(x2), f(x3)}, xmin – точка, которой соответствует fmin.

4 По трем точкам x1, x2, x3 вычислить clip_image022 по формуле (34).

5 Произвести проверку на окончание поиска минимума. Если разности clip_image024 и clip_image026 являются достаточно малыми величиннами, то закончить поиск; иначе перейти к п. 6.

6 Выбрать «наилучшую» точку (clip_image028 или clip_image022[1]) и две точки по обе стороны от нее. Обозначить эти точки в естественном порядке и перейти к п. 3.

Пример 6. Найти минимум clip_image031 [9], с e1 =0.003, e2 = 0.03. Пусть начальная точка х1 = 1 и длина шага Dх = 1. Находим минимум f(x) методом квадратичной аппроксимации.

Решение:

Итерация 1.

1 х2 = х1 +Dх = 2;

2 f(x1) = 18; f(x2) = 16; f(x1) > f(x2), следовательно, х3 = 1+2 =3;

3 f(x3) =23.33, fmin =16, xmin = x2.

4 Находим значения коэффициентов полинома по формулам (32) – (34):

clip_image033

5 Проверка на окончание поиска

clip_image035 ,

следовательно, поиск продолжается.

6 Наилучшей точкой является clip_image037, а х1 =1 и х2 = 2 – точки, которые ее окружают. Обозначаем выбранные точки в естественном порядке, т.е. х1 =1, х2 = 1.714, х3 = 2.

Итерация 2.

3 x1 =1, f1 =18, x2 = 1.714, f2 =15.210, x3 =2, f3 =16.

Получаем xmin = x2, fmin = 15.210.

4 a1 = - 3.908, a2 = 6.671, clip_image037[1]=1.1650, f(clip_image037[2]) =15.42.

5 Проверка на окончание поиска

clip_image039.

Условие не выполняется и поиск продолжаем.

6 Наилучшая точка clip_image037[3], х1 =1 и х2 = 1.714 – ее окружают. Следовательно, х1 =1, х2 = 1.650, х3 = 1.714.

Итерация 3.

3 x1 =1, f1 =18, x2 = 1.650, f2 =15.42, x3 =1.714, f3 =15.210.

Получаем xmin = 1.65, fmin = 15.42.

4 a1 = - 4.397, a2 = 7.647, clip_image037[4]=1.6125, f(clip_image037[5]) =15.123.

5 Проверка на окончание поиска

clip_image041, clip_image043.

Следовательно, поиск закончен и xmin = 1.6125, fmin = 15.123.

Предлагаю ознакомиться с аналогичными статьями: