Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методы безусловной оптимизации.rtf
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
7 Мб
Скачать
☆

1.7. Метод средней точки.

Все методы, рассмотренные до сих пор, основаны на предположении об унимодальности исследуемой функции. Эти методы используют вычисление значений функции в некоторых точках и не требуют вычисления значений производной функции. Использование информации о производной позволит повысить эффективность решения задачи оптимизации.

Рассмотрим метод средней точки, который называется также методом бисекции или методом деления отрезка пополам.

Пусть f(x) – унимодальная, непрерывно дифференцируемая на отрезке [a, b] функция и на этом отрезке точка x* является единственной стационарной точкой. Сведем задачу нахождения минимума функции f(x) к решению нелинейного уравнения

f '(x) = 0. (1.14)

Положим a0 = a, b0 = b.

Так как функция f '(x) удовлетворяет условию (1.14), то она принимает на концах отрезка [a0, b0] значения разных знаков, т.е.

f(a0)f(b0) < 0.

Разделим отрезок [a0, b0] пополам. Получим точку x0 = . Вычислим f '(x0). Если f '(x0) = 0, то x0 – искомый корень, и задача решена. Если f '(x0)  0, то f '(x0) – число определенного знака: f '(x0) > 0, либо f '(x0) < 0. Тогда либо на концах отрезка [a0, x0], либо на концах отрезка [x0, b0] значения функции f '(x) имеют разные знаки. Обозначим такой отрезок [a1, b1]. Очевидно, что x* [a1, b1], и длина отрезка [a1, b1] в два раза меньше, чем длина отрезка [a0, b0]. Поступим аналогично с отрезком [a1, b1]. В результате получим либо корень x*, либо новый отрезок [a2, b2], и т.д. (рис.1.4 ).

Рис. 1.4

Середина n-го отрезка xn = . Очевидно, что длина отрезка [an, bn] будет равна , а т. к. x* [an, bn], то

| xn – x*|   . (1.15)

Оценка (1.15) характеризует погрешность метода средней точки и указывает на скорость сходимости: метод сходится со скоростью геометрической прогрессии, знаменатель которой q = 1/2.

Если задана требуемая точность , то процесс вычислений следует закончить, когда выполнится условие  f '(xn)  , после чего полагают x*xn.

Алгоритм 1.5 (Алгоритм метода средней точки).

Шаг 1. Ввести исходные данные: a, b, .

Шаг 2. Определить x0 = .

Шаг 3. Вычислить f '(x0).

Шаг 4. Проверить критерий окончания вычислений. Если f '(x0)  , , перейти к шагу 6, иначе – к шагу 5.

Шаг 5. Перейти к новому отрезку локализации [a, b]. Если f '(x0) > 0, то положить b = x0. Иначе положить a = x0. Перейти к шагу 2.

Шаг 6. Положить x*x0. Вычислить f'(x*).

Пример 1.6.

Методом средней точки решим задачу, рассмотренную ранее:

f(x) = x4 + e - xmin, x  [0, 1], = 0.02.

Очевидно, что f '(x) = 4x3 – e –x.

Результаты вычислений приведены в табл. 1.7.

Таблица 1.7

Номер

итерации

a

b

x0

f '(x0)

Знак

f '(x0)

1

2

3

4

5

0

0.5

0.5

0.5

0.5

1

1.000

0.750

0.625

0.563

0.5

0.750

0.625

0.563

0.531

-0.107

1.215

0.441

0.142

0.012

–

+

+

+

Вычисления прекращаются после 5-ой итерации, так как требуемая точность достигнута (0.012 < 0.02).

Таким образом, x*  0.531 и f(x*)  0.668.