|
||||||||||||||||||||||||
АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция |
Поиск методом золотого сечения
Пусть f(x) – непрерывная функция независимой переменной x, обладающая по крайней мере одним минимумом. Предположим, что задано значение аргумента x0, от которого следует начать поиск. Прежде всего необходимо найти конечный отрезок [a, b], внутри которого содержится минимум (и притом единственный). Эта часть алгоритма носит название локализующего поиска. Выберем некоторый шаг h и вычислим значение функции в точке x0+h. Если окажется, что f(x0+h) < f(x0), то шаг сделан в правильном направлении; перенесем начальную точку в новое положение и увеличим размер шага в a раз (обычно a=2). В противном случае изменим знак h на обратный и попытаемся двигаться в противоположном направлении. Движение в сторону понижения продолжается со все увеличивающимся шагом до тех пор, пока значение функции в очередной точке не окажется больше предыдущего, т. е. возникнет ситуация, показанная на рис. 1. Если смещение от x0 на шаг h как в положительном, так и в отрицательном направлении приводит к увеличению значения функции, то дальнейшие шаги не нужны (минимум локализован на отрезке [x0-h, x0+h]). Следующая стадия — уточнение положения минимума путем последовательного сжатия найденного отрезка. Применяемый для этого алгоритм напоминает метод деления отрезка, которым пользуются для нахождения корня нелинейного уравнения. Так же, как и там, первоначальный отрезок на каждом шаге делится на две части, и выбирается та часть, внутри которой содержится искомая точка. Однако, как мы увидим ниже, оптимальная стратегия поиска минимума требует делить отрезок не пополам, а в некотором ином отношении.
Итак, пусть минимум локализован, т. е. найдены три точки x1<x2<x3 такие, что f(x1)>f(x2)<f(x3) (см. рис. 2). Можно утверждать, что минимум находится между x1 и x3, так что длина интервала неопределенности на первом шаге равна L1=x3-x1. Не будем пока уточнять положение точки x2; заметим лишь, что она смещена влево или вправо от середины отрезка, которая отмечена вертикальной пунктирной линией. Добавим новую точку x4, как показано на рис. 3, и вычислим значение функции f(x4). Если окажется, что f(x4)<f(x2), то минимум находится на отрезке [x1, x2]; в противном случае — на отрезке [x4, x3] (второй вариант изображен на рис 3 пунктиром). Куда же следует поместить точку x4? Разумно потребовать, чтобы новый интервал неопределенности не зависел от того, окажется f(x4) больше или меньше, чем f(x2), т. е. чтобы метод гарантировал постоянный коэффициент сокращения отрезка независимо от поведения функции. Таким образом, приходим к условию L2=x2-x1= x3-x4. Следовательно, точку x4 следует расположить симметрично x2 относительно середины отрезка. При аналогичном выборе следующей точки x5 (симметрично к x2 или x4 относительно середины нового отрезка) длина интервала неопределенности L3=x3-x2= x4-x1. Очевидно, три последовательных интервала неопределенности L1, L2 и L3 связаны следующим образом: L1=L2+L3 (1) Требование постоянства коэффициента t сокращения интервала неопределенности на каждом шаге алгоритма записывается в виде: . (2) Отношение с учетом (1) можно представить как , то есть или , откуда (3) Это известное отношение «золотого сечения» (целое так относится к большей из двух своих частей, как бо¢льшая часть к меньшей). Длины интервалов неопределенности L2 и L3 выражаются через L1 следующим образом: (4) Таким образом, точка x2 должна делить отрезок [x1, x3] в отношении золотого сечения; точка x4 должна таким же образом делить отрезок [x1, x2] и т. д. Только в этом случае будет обеспечена постоянная и максимально возможная скорость сокращения отрезка неопределенности. При любом другом способе выбора последовательных точек стабильность результатов не гарантирована. Возможно, на некоторых шагах продвижение окажется более быстрым, чем в случае золотого сечения, но эти успешные шаги не компенсируют неизбежное замедление сходимости на остальных шагах. Рассмотренный выше алгоритм уточнения положения минимума путем последовательного деления отрезка в отношении t носит название метода золотого сечения. Он обладает линейной сходимостью, так как погрешность (отрезок неопределенности) на n-м шаге, согласно уравнению (4), пропорциональна погрешности предыдущего шага с коэффициентом пропорциональности t-1»0.61803¼ Поиск по сайту: |
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.003 сек.) |