Рассмотренные в предыдущем разделе методы поиска основываются на предположениях об унимодальности и в ряде случаев о непрерывности исследуемой целевой функции. Целесообразно предположить, что если в дополнении к условию непрерывности ввести требование дифференцируемости функции, то эффективность поисковых процедур можно существенно повысить.
2.3.1. Метод Ньютона.
В рамках схемы Ньютона предполагается, что функция f дважды дифференцируема. Работа алгоритма начинается в точках x1, которая представляет начальное приближение и строится по рекурентному соотношению xk+1 = xk - [f'(xk)/f''(xk)], где присутствуют первая и вторая производные. Однако, в зависимости от выбора начальной точки и вида функции алгоритм может как сходиться к истинной стационарной точке, так и расходиться. Несмотря на этот недостаток метод Ньютона требует наименьшего количества расчетов функции.
Алгоритм метода Ньютона.
Начальный этап. Задать начальную точку x1 и точность поиска e. Положить k=1 и перейти к основному этапу.
Основной этап. Шаг 1. Вычислить xk+1 = xk - [f'(xk)/f''(xk)]. Перейти к шагу 2.
Шаг 2. Если / xk+1 - xk /<e, то расчет закончен и экстремум находится в точке xk+1. Иначе вернуться к шагу 1.
Пример расчета экстремума функции методом Ньютона.
Постановка задачи. Найти минимум функции f(x) = (5-x)2 + 2x-10 с точностью e=0,1.
Выбираем начальную точку x1=-10. Результаты расчетов приведены в таблице 2.9.
Таблица 2.9
Расчет экстремума функции f(x) = (5-x)2 + 2x-10 методом Ньютона.
№
x
f(x)
f'(x)
f"(x)
|xk+1-xk|
Критерий
-10,00
195,00
-28,00
2,00
4,00
-1,00
0,00
2,00
14,00
Не достигнут
4,00
-1,00
0,00
2,00
0,00
Достигнут
Таки образом экстремум в точке x =4 найден за две итерации с точностью e=0.
2.3.2 Метод средней точки.
В методе средней точки вычисляется производная функции f'( ) в средней точке =(a1+b1)/2 исходного отрезка и, если значение производной больше нуля, то новый интервал неопределенности будет [a1; ], а если меньше нуля, то [ ; b1]. Полученный интервал обозначается как [a2; b2], и процедура расчета повторяется до тех пор, пока не будет выполняться условие окончания поиска | bk– ak| < l.