Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология Образование Политология Производство Психология Стандартизация Технологии |
ЧИСЛЕННЫЕ МЕТОДЫ МИНИМИЗАЦИИ ФУНКЦИЙ ОДНОЙ ПЕРЕМЕННОЙ
1. Основные понятия. Прямые методы минимизации. Пусть на множестве U Í R определена функция f( x). Под минимизацией функции f(x) на множестве U будем понимать решение следующей задачи: найти хотя бы одну точку минимума x* и минимум f*= f( x*) этой функции на множестве U. Задача нахождения точки максимума и максимального значения функции f(x) сводится к задаче минимизации заменой f(x) на -f(x), поэтому ниже будут рассматриваться только задачи на минимизацию. Напомним, что число x* Î U называется точкой абсолютного (глобального) минимума или просто точкой минимума функции f(x) на множестве U, если f( x*) ≤ f( x) для всех x Î U. Значение называется абсолютным (глобальным) минимумом или просто минимумом f(х) на U. Множество всех точек минимума функции f(x) на множестве U будем обозначать U*. Число Î U называется точкой локального минимума функции f(x), если существует такое число d > 0, что f( ) ≤ f(x) для всех . Значение f( ) называется локальным минимумом f( x). Всякая точка глобального минимума f(х) является и точкой локального минимума этой функции. Обратное, вообще говоря, неверно. Отметим, что минимум функции f (х) на множестве U может и не существовать, т.е. множество U* может быть пустым. В этом случае используют обобщение понятия минимума - точную нижнюю грань функции f(х) на множестве U. Пусть f(х) ограничена снизу на U, т.е. f(х) ³ А ³ - ¥ для всех x Î U. Число f * называется точной нижней гранью функции f(х) на множестве U ( ), если f(х) ³ f * при всех x Î U и для любого e> 0 найдется точка x Î U такая, что f(хe) < f * +e. Для неограниченных снизу функций f ( x ) полагают f * = - ¥ . Если U* ¹ Æ, то . Существование локальных минимумов функции f(х), отличных от абсолютного, почти всегда затрудняет поиск точек x* Î U*, поэтому многие приближенные методы минимизации применимы только тогда, когда любой локальный минимум f(х) является одновременно и глобальным. Один из классов функций, удовлетворяющих этому условию, составляют унимодальные функции. Функция f(х) называется унимодальной на отрезке [а; b], если она непрерывна на [а; b] и существуют числа α и β, такие, что; 1) если α < а, то на отрезке [а; α ] f (х) монотонно убывает; 2) если β < b, то на отрезке [β; b] f (x) монотонно возрастает; 3) при хÎ [α ; β ] Отметим, что возможно вырождение в точку одного или двух из отрезков [а; α ], [α ; β ] и [β; b]. Некоторые варианты расположения и вырождения в точку отрезков монотонности и постоянства унимодальной функции показаны на рис. 8.8.
Рис.8.1. Примеры унимодальных функций Множество функций, унимодальных на отрезке [а; b], будем обозначать Q[а; b]. Для проверки унимодальности функции f(х) на практике обычно используют следующие критерии: 1) если функция f(х) дифференцируема на отрезке [а; b] и производная f'(х) не убывает на этом отрезке, то f( x) Î Q[а; b]. 2) если функция f ( x ) дважды дифференцируема на отрезке [а; b] и f”(х) ³ 0 при x Î [а; b], то f ( x ) Î Q[а; b]. Пример 8.3. Показать, что функция унимодальна на отрезке [3; 5]. Вторая производная функции f( x) равна . Корни полученного квадратного трехчлена х1==2 и х2=3. Следовательно, f" ( x) ³ 0, если х ³ 3 и, в частности, при xÎ [3; 5]. Используя второй критерий унимодальности, получаем, что f( x) Î Q[3; 5]. Большую группу приближенных методов минимизации функции составляют прямые методы минимизации, основанные на вычислении только значений минимизируемой функции в некоторых точках и не использующее значений ее производных. Метод перебора является простейшим из прямых методов минимизации. Пусть f( x) Î Q[а; b]и требуется найти какую-либо из точек минимума х* функции f(х) на отрезке [а; b] с абсолютной погрешностью e > 0. Разобьем [а; b] на п равных частей точками деления , где . Вычислив значения f(х) в этих точках, путем сравнения найдем точку хт, для которой Далее полагаем . При этом максимальная погрешность ε n определения точки х* равна . Пример 8.4. Найти минимальное значение f* и точку минимума х* функции на отрезке [1, 5; 2]. Точку х* найти с погрешностью ε = 0, 05. f( x) Î Q[1, 5; 2], так как при x Î [1, 5; 2]. Выбрав , вычислим значения , поместив их в таблице 8.8. Таблица 8.1
Из таблицы 8.1 находим х*» 1, 75, f* » -92, 12. Метод перебора, предполагающий предварительный выбор точек xi, называется также пассивной стратегией поиска точки минимума х*. На практике точки х выбираются заранее, когда удобно провести п+1 независимых экспериментов по измерению значений f( x), а последовательное измерение этих значений трудоемко или невозможно, например ввиду нехватки времени. Однако использование уже полученной в предыдущих экспериментах информации о функции f( x)для выбора очередной точки xi измерения (вычисления) f( x) приводит к более эффективному поиску точки х*. Методы минимизации, в которых точки xi определяются в процессе поиска точки минимума с помощью найденных ранее значений функции f( x), называются последовательными методами. Метод деления отрезка пополам является простейшим последовательным методом минимизации. Он позволяет для любой функции f( x) Î Q[а; b]построить последовательность вложенных отрезков , каждыйизкоторых содержит хотя бы одну из точек минимума х* функции f(х) Пусть e> 0 - требуемая точность определения точки х*. Выбрав , построим последовательности , используя рекуррентные формулы: если (8.1) если Переход от отрезка к отрезку методом деления отрезка пополам иллюстрируется на рис. 8.2а), если и на рис. 8.2б), если
а) б) Рис.8.2. Метод деления пополам Полагая , находим х* с абсолютной погрешностью, не превосходящей величины Используя условие , из последнего выражения можно найти необходимое число шагов п для обеспечения требуемой точности e. Однако на практике часто поступают иначе: определив границы отрезка , вычисляют и сравнивают с заданной точностью e. Пример 8.5. Решить пример 8.4 методом деления отрезка пополам. Положим d=0, 02 < 2e=0, 8. Построим последовательность вложенных отрезков по формулам (8.1), записывая результаты вычислений в таблицу 8.2: Таблица 8.2
Следовательно, х* »1, 72, и f* » f (1, 72)=92, 13. Для увеличения скорости сходимости метода величину целесообразно выбирать как можно меньшей, однако этот выбор ограничен снизу используемым количеством верных десятичных знаков при задании аргумента х. В любом случае δ должно быть больше машинного нуля применяемого вычислительного средства. Метод золотого сечения также является последовательным методом минимизации. Опираясь на свойства золотого сечения отрезка, этот метод использует найденные значения f(х) более рационально, чем метод деления отрезка пополам, что позволяет переходить к очередному отрезку, содержащему точку х* после вычисления одного, а не двух значений f(х). Деление отрезка на две неравные части так, что отношение длины всего отрезка к длине большей его части равно отношению длины большей части к длине меньшей части, называется золотым сечением этого отрезка. Золотое сечение отрезка[а; b]осуществляется двумяточками: причем x1 есть вторая точка золотого сечения отрезка [а; х2]. а х2 - первая точка золотого сечения отрезка [х1; b]. Зная одну из точек золотого сечения отрезка [а; b], другую можно найти по одной из формул (8.2) Пусть f( x) Î Q[а; b]и требуется найти точку минимума функции f(х) на [а; b]. Построим последовательности , следующим образом: , если (8.3) если
где - первая и вторая точки золотого сечения отрезка . Для определения чисел по найденным необходимо выполнить следующие операции: 1) найти одну из точек золотого сечения отрезка по известной другой точке , используя формулы (8.2); 2) вычислить значение f(х) во вновь найденной точке золотого сечения (значение в другой точке уже вычислено на одном из предыдущих шагов); 3) сравнить значения и и найти по формулам (8.3). Таким образом, на каждом шаге определения требуется вычисление одного значения f(х). Положив , найдем точку минимума х* с точностью : откуда следует, что число шагов п метода золотого сечения, обеспечивающее заданную точность ε нахождении точки х*, должно удовлетворять неравенству (8.4) Пример 8.6. Решить предыдущий пример методом золотого сечения. Вычисления проведем по формулам (8.3), представив результаты в таблице 8.3. Т а б л и ц а 8.3
Из таблицы 8.3 получаем . Заметим, что если воспользоваться формулой (8.4), то необходимое число шагов п можно определить заранее. В нашем случае п ≥ 4, 79, т. e. п =5, и отпадает необходимость во втором столбце таблицы 8.3. В прямых методах минимизации, рассмотренных выше, требуется, чтобы функция f(х) была унимодальной. Если f(х) этим свойством не обладает, то применение указанных методов приводит, вообще говоря, к неверному результату. Кроме того, во многих случаях доказательство унимодальности функции f(х) бывает затруднительно. Метод ломаных является последовательным методом, рассчитанным на минимизацию произвольных (не обязательно унимодальных) функций, удовлетворяющих условию Липшица. Говорят, что функция f(х) удовлетворяет на отрезке [а; b] условию Липшица, если существует такое число L > 0 (константа Липшица), что \ f( x')- f( x" )\< L\ x'- x" \ (8.5) для всех х', х" Î [а; b]. Для проверки условия Липшица на практике используют следующий факт: если функция f(х) имеет на отрезке [а; b] ограниченную производную, то она удовлетворяет условию (8.5), где . Пусть функция f(х) удовлетворяет на [а; b]условию Липшица с константой L. Опишем метод ломаных для минимизации f(х). Положим и реализуем следующую схему вычислений: Шаг 1. Вместо пары чисел образуем двеновые пары и следующим образом: где . Шаг 2. Из полученных двух пар и выберем ту, у которой вторая компонента минимальна. Обозначим ее и исключим из рассматриваемого множества (очевидно, на данном шаге в качестве можно взять любую из пар , ). Вместо пары добавляем две новые пары и , компоненты которых находятся по формулам где . В результате получим множество, состоящее из трех пар чисел (х, р). Шаг п. Из п полученных на предыдущих шагах пар (х, р)выбираем ту, у которой вторая компонента р минимальна. Обозначим ее . Исключаем эту пару из рассматриваемого множества и добавляем вместо нее две новые пары чисел и по формулам где . (8.6) Полагая х* ≈ , f* ≈ f( ), получим приближенное решение задачи минимизации. Точность определения f* характеризуется неравенствами . Геометрически метод ломаных состоит в построении последовательности ломаных, приближающихся к графику функции f(х) снизу и имеющих угловые коэффициенты всех звеньев, равные ±L (рис. 8.3).
Рис. 8.3. Метод ломаных Пример 8.7. Методом ломаных найти минимум f* функции на отрезке [10; 15] с точностью 0, 01 и точку минимума х*. Функция f(х) дифференцируема на указанном отрезке. Так как при хÎ [10; 15], то f(х) удовлетворяет условию Липшица с константой L=0, 18. Найдя = 12, 056, =-0, 281, продолжим вычисления, используя соотношения (8.6). Результаты вычислений представим в таблице 8.4. Т а б л и ц а 8.4
Из таблицы 8.4 находим х* » 10, 891, f* » f (10, 891) =-0, 098. Отметим, что f (х) Ï Q[10; 15], поэтому из методов минимизации, рассмотренных выше, в данном случае применим только метод ломаных. 2. Методы минимизации, основанные на использовании производных функции. Если вычисление или измерение производных функции f(х) не представляет больших затруднений, то при решении задачи минимизации можно применять непрямые методы, основанные на использовании производных f(х). Во многих случаях эти методы обеспечивают более быструю сходимость, чем прямые методы минимизации. Mетод касательных применяется для минимизации выпуклых дифференцируемых функций. Функция f (х) называется выпуклой на отрезке [а; b], если (8.7) для произвольных х', х" Î [а; b]и . Проверка условия (7) почти всегда вызывает затруднения, поэтому на практике используют следующий критерий выпуклости: Для того, чтобы дважды дифференцируемая на отрезке [а; b] функция f(х) была выпуклой на отрезке [а; b], необходимо и достаточно, чтобы f" [ x)≥ 0 при всех х Î [а; b]. Опишем метод касательных. Пусть f(х) - выпуклая дифференцируемая на отрезке [а; b]функция, причем . Построим последовательности , в соответствии с рекуррентными соотношениями , (8.8) при , (8.9) при . После п шагов полагаем . Требуемая точность минимизации f( x) считается достигнутой, если производная f'(c) достаточно близка к нулю, т. е. | f'(cп)| £ e, где e> 0 - заданное число, характеризующее точность. Метод касательных имеет простой геометрический смысл: величина с n -1 из (8.8) - это абсцисса точки пересечения касательных к графику f ( x ), проведенных в граничных точках отрезка (рис. 8.4а)). Рис. 8.4б) и 8.4в) поясняют формулы (8.9) для случаев и соответственно. Отрезок выбирается так, чтобы x * Î .Если условие не выполняется, то а) х*=а при f’ (а) > 0, f’ ( b) > 0; б) х*= b при f’ (а) < 0, f’ ( b) < 0; в) х*=а, если f'( a)=0, и х*= b, если f’( b)=0. Пример 8.8. Убедиться, что функция выпукла на [-1; 1] и минимизировать ее методом касательных с точностью | f'(c)| £ 0, 05. Так как > 0, то f(х) - выпуклая функция; кроме того, . Проведем вычисления по формулам (8.8), (8.9), поместив результаты вычислений в таблицу 8.5. Таблица 8.5
Из таблицы 8.5 находим х* »-0, 347; f* » f (-0, 347)= 0, 827. Метод Ньютона, использующийне только первую, но и вторую производные функции f( x), при определенных условиях обеспечивает значительно более высокую, чем рассмотренные выше методы минимизации, скорость сходимости к точке минимума х*. Пусть f( x) - выпуклая дважды дифференцируемая на R функция. Выбрав начальное приближениех0, построим последовательность (8.10) Считая неравенство | f'(хп)| £ e (e - достаточно малое число) условием достижения требуемой точности вычислений, положим х* ≈ , f* ≈ f( ). При неудачном выборе Хц последовательность (10) может расходиться. Если же точка х0 достаточно близка к х*, то эта последовательность сходится к х* достаточно быстро. Оценка скорости сходимости может быть сформулирована следующим образом. Пусть f( x) - дважды дифференцируемая на R функция, причем при всех x Î R . и f" '(х) удовлетворяет условию Липшица на R с константой L. Тогда, если начальное приближение х0 удовлетворяет условию , то последовательность (8.10) сходится к единственной точке минимума х* функции f(х) на R, причем Пример 8.9. Методом Ньютона найти точку минимумах*и минимальное значение f* функции с точностью | f'(хп)| £ 10-7. Выберем х0=3 и проведем вычисления по формуле (8.10), записывая результаты в таблице 8.6. Таблица 8.6
Окончательно х* » 2, 4662656, f'*»-0, 8554408. Метод Ньютона часто используется на завершающем этапе минимизации, когда точка минимума х* грубо найдена другим, менее трудоемким методом и требуется найти х* с большой точностью. |
Последнее изменение этой страницы: 2019-10-04; Просмотров: 1019; Нарушение авторского права страницы