|
Методич_стат-исправлено. Методические указания по курсу Информатика
Метод равномерного поиска
Этот метод основан на том, что переменной x присваиваются значения x+∆x с шагом ∆x = const и вычисляются значения F(x). Если F(x n+1)>F(xn), переменной x даётся новое приращение. Как только F(xn+1)станет меньше F(x) поиск останавливается. При малой заданной погрешности этот метод неэкономичен по затратам машинного времени.
Метод поразрядного приближения Этот метод является разновидностью метода равномерного поиска и реализуется следующим алгоритмом:
Задаём начальное приближение x=x₀ слева от максимума F(x) и вычисляем F(x₀). Задаём D=h, где h=∆x – начальный шаг поиска.
Полагаем, что G=F(xn), где вначале F(xn)=F(x₀), задаём x=x+D и вычисляем F(x n+1)=F(x).
Проверяем условие F(x n₊₁)>G; если оно выполняется, идём к п.2, если нет, то к п.4.
Полагаем D=-D/4. Проверяем условие |D|>E/4, где E – заданная погрешность вычисления xn в точке максимума. Если оно выполняется, идём к п.2, т.е. обеспечиваем поиск максимума в другом направлении с шагом в 4 раза меньше прежнего. Если данное условие выполняется, процесс вычисления заканчиваем.
Метод дихотомии Метод дихотомии (деление интервала поиска [a, b] пополам) реализуется следующим алгоритмом:
Проверяем условие |b-a|<2E, где E – заданная погрешность вычисления xn. Если это условие выполняется, идём к п.6; если не выполняется, идём к п.2.
Делим интервал поиска [a, b] пополам и вычисляем две абсциссы, симметрично расположенные относительно точки
x=(a + b)/2
x1=(a + b - E)/2 и x2=(a + b + E)/2
Для этих значений x вычисляем F(x₁)>F(x₂).
Проверяем условие F(x₁)>F(x₂). Если оно выполняется, полагаем b=x₂ и идём к п.1. Если не выполняется, идём к п.5.
Полагаем a=x₁ и идём к п.1.
Выводим на печать xn=(a+b)/2 и вычисляем F(xn).
Метод Фибоначчи В методе Фибоначчи точка деления интервала исследования определяется с каждым новым расчётом (в методе дихотомии необходимо на каждом шаге выполнять два расчёта). В интервал исследования попадет предыдущий расчёт и для продолжения поиска достаточно произвести расчёт симметрично имеющемуся.
Допустим, задано число расчётов (шагов) N. Необходимо их произвести так, чтобы интервал, в котором лежит оптимум, был минимальным. Числа Фибоначчи, используемые в этом методе, определяются следующим образом:
FN=FN-1+FN-2
F0=F1=1
Алгоритм метода Фибоначчи состоит из следующих этапов:
Изменяют масштаб исходного интервала, в котором лежит оптимум. В качестве единицы измерения принимают 1=X₀/FN, или если задана длина l, в котором лежит оптимум, находят его на исходном интервале длиной X₀. Для этого, разделив X₀ на 1, находят ближайшее большее число Фибоначчи FN, а по нему определяют N – число необходимых расчётов для определения интервала.
Расставляют первые две точки и на интервале исследования X0 на расстоянии FN-2 от конца b.
Вычисляют значение целевой функции в этих точках для сужения интервала исследования. Пусть > , тогда интервал [, FN] исключается из рассмотрения.
На новом интервале исследования снова расставляют две точки и , но в одной из них уже известно значение целевой функции = .
Переходят к этапу 3 и т.д., пока не достигают искомого интервала, в котором находится значение переменной, максимизирующее её целевую функцию.
На рис. 6 показан процесс сужения интервала исследования:
Рис. 6. Процесс сужения интервала исследования.
Последний N–й расчёт определяет интервал длиной l, в котором находится экстремум целевой функции.
|
|
|