Минимизация функций одной переменной



 

 

 

 

 

 

КУРСОВАЯ РАБОТА

На тему

Минимизация функций одной переменной

 

Содержание

 

  1.  МЕТОДЫ МИНИМИЗАЦИИ ФУНКЦИЙ ОДНОЙ ПЕРЕМЕННОЙ

1.1. Необходимые сведения из математики

1.1.1. Постановка  задачи одномерной минимизации

Под одномерной минимизацией понимается раздел численных методов, связанных с вычислением (или оценкой) минимума одномерной функции действительной переменной, заданной, как правило, на некотором ограниченном отрезке найти min f(x)=f(x*),               (1.1)

                                 a£x£b

где x*-искомая точка минимума на [a, b].

Заметим, что max f(x)= min f(-x),                 (1.2)

и поэтому при  дальнейшем изложении мы будем говорить о задачах минимизации (если не оговорено особо).

Методы и  алгоритмы одномерной минимизации  занимают важное место в теории оптимизации в связи с тем, что:

 

  • в инженерной практике достаточно часто встречаются самостоятельные задачи одномерной минимизации;
  • задачи одномерной минимизации являются необходимой составной частью практически каждого метода многомерного поиска минимума.

 

 

 

 

1.1.2. Классификация одномерных функций

Одномерные  функции принято классифицировать на непрерывные, разрывные и дискретные (рис.1.1).

 

     f(x)                    f(x)                      f(x)





  a) непрерывная           б) разрывная             г) дискретная

Рис.1.1. Примеры одномерных функций

 

В дополнение к  перечисленным свойствам добавляются  топологические свойства, которые отражают характерные черты их формы. Например различают:

  • монотонные функции;
  • унимодальные функции.

Введем некоторые  определения, которые нам понадобятся  в дальнейшем.

 

  • Определение. Функция f(x) монотонно возрастает (убывает), если для произвольных x1 и x2, таких что x1 £ x2 выполняется неравенство

                     f(x1)£ f(x2)

      (или, соответственно, f(x1)³f(x2) для убывающей    функции).

 

Особый и  весьма важный класс составляют унимодальные функции.

  • Определение. Функция f(x) называется унимодальной на отрезке a£x£b тогда и только тогда, когда для некоторой точки a£x*£b найдутся такие x1 и x2, для которых из неравенств x*£x1£x2 следует

                   f(x*)£f(x1)£f(x2)

     

и, из неравенств x*³x1³x2 следует

 

                       f(x*)³f(x1)³f(x2).

 

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

 

 

Заметим, что именно унимодальные функции являются целью одномерной минимизации.


         f(x)                                            f(x)




 

                 

а)                                     б)

Рис.1.2. Примеры унимодальных функций

а) непрерывная  унимодальная функция;

б) разрывная  унимодальная функция.

1.1.3. Ряд Тейлора

Любую непрерывную  функцию f можно разложить в окрестности некоторой точки x0 в степенной ряд, называемый рядом Тейлора1:

 

   ,  (1.3)

 

где Оn+1(x-x0)n+1 – сумма остаточных членов, степень приращения в           которых равна (n+1) и выше.

Вводя соответствующие  обозначения, ряд (1.3) будем записывать компактнее:

 

   .  (1.4)

 

Из уравнения (1.4) следует, что любую нелинейную функцию  можно представить в окрестности любой допустимой точки x0 приближением в виде ряда Тейлора, причем точность такого приближения зависит от числа используемых членов ряда. Обычно ограничиваются тремя первыми членами ряда (1.4), т.е. аппроксимируя исходную функцию квадратической функцией.

 

1.1.4. Необходимые  и достаточные условия экстремума функции одной переменной

В самом общем  случае одномерная функция может иметь различные экстремальные точки, а также точку перегиба. Так на рис.1.3 изображена функция, которая содержит все практически важные стационарные точки.

    

 

f(x)

          

 

 

           0 a    b     c    d        e      f    g         h      x  

     

Рис.1.3. Классификация стационарных точек

a,h)глобальный максимум и минимум на отрезке [a,h]; b)-локальный минимум; с,g)-локальный максимум; d-e)-отрезок слабого минимума; f)-точка перегиба.

 

 

Рассмотрим  основную теорему о необходимом условии наличия экстремальной точки для функции одной переменной:

  • Теорема. Для того, чтобы точка x* была точкой локального минимума (максимума) дважды дифференцируемой на [a, b] функции f(x) необходимо, чтобы df(x*)/dx = 0,                  (1.5)

                       и

                         d2f(x*)/dx2 ³ 0 (£ 0).           (1.6)

 

   Доказательство. Предположим вначале, что x*-внутренняя точка минимума на [a, b], а e=Dx-малая величина (отрицательная или положительная).

Запишем с помощью  ряда Тейлора изменение функции f в окрестности анализируемой точки x*:

  .  (1.7)

Тогда очевидно, что

                         f(x)³f(x*).                    (1.8)

 

Из неравенства (1.8) следует, что

 

             .  (1.9)

 

При достаточно малом e первое слагаемое доминирует над остальными, а так как e можно выбрать и положительным, и отрицательным, то неравенство (1.9) будет выполняться только в том случае, если

 

                          f’(x*)=0.                    (1.10)

 

Рассуждая аналогичным  образом, нетрудно установить, что неравенство (1.10) будет справедливым только тогда, когда

 

                          f”(x*)³0.                    (1.11)

 

Замечание. Эта же схема доказательства применима и в случае локального максимума, с той лишь разницей, что знак неравенства (1.9) требуется заменить на противоположный.

 

Вышеприведенная теорема дает только необходимые  условия экстремума, т.е. в случае, когда они не выполняются, точка x* не может быть точкой локального минимума (максимума). С другой стороны, если эти условия выполняются, мы не имеем гарантии, что x* является точкой локального минимума (максимума).

 

Введем следующие  важные определения:

  • Стационарной точкой называется точка x*, в которой f’(x*)=0.
  • Стационарная точка x* называется седловой точкой или точкой перегиба, если она не соответствует локальному экстремуму (минимуму или максимуму).

 

Для идентификации стационарной точки необходимо построить достаточные  условия экстремума, которые даются следующей теоремой.

  • Теорема. Пусть в точке x* первые (n-1) производные функции f(x) обращаются в нуль, а производная порядка n отлична от нуля. Тогда

      (1) если n–нечетное, то x*-точка перегиба;

      (2) если  n–четное, то x*-точка локального оптимума,

причем,

(а) если эта производная  положительная, то x*-точка локального минимума;

   (б) если эта  производная отрицательная, то x*-точка локального максимума.

 

Доказательство. Используем снова разложение f(x) в ряд Тейлора в окрестности стационарной точки x* (2.4). Поскольку порядок первой отличной от нуля производной равен n, формулу (1 f(x).4) можно переписать в следующем виде:

             .           (1.12)

Если n – нечетное число, то правая часть (1.12) может принимать как положительные, так и отрицательные значения в зависимости от того, является ли величина e положительной или отрицательной. Это означает, что в зависимости от знака e разность f(x*+e)-f(x*) либо положительная, либо отрицательная. Следовательно, функция не достигает в точке x* своего минимального или максимального значения, т.е. x* - точка перегиба.

Если n – четное число, то величина en всегда положительная, а знак правой части (1.12) определяется первым слагаемым т.к.   e - достаточно малая величина. Таким образом, если величина f(n)(x*) положительная, то f(x*+e)-f(x*)>0 и точка x* соответствует локальному минимуму. Аналогичные рассуждения нетрудно провести также для случая локального максимума.

 

  • Пример. Классифицировать2 стационарные точки функции

 

                f(x)=5x6-36x5+(165/2)x4-60x3+36,

 

      определенной на всей действительной  оси.  

 

Можно показать, что первая производная этой функции  после преобразований имеет вид

 

                f’(x)=30x2(x-1)(x-2)(x-3),

 

обращаясь в  нуль в точках x*=0,1,2,3, и, следовательно, эти точки являются стационарными.

Вторая производная  функции равна

 

              f”(x)=150x4-720x3+990x2-360x.

 

Вычислим значения второй производной и функции  в стационарных точках (табл. 1.1).

 

                

 

Таблица 1.1.

x

f(x)

f”(x)

 

0

1

2

3

 

  36.0

  27.5

  44.0

   5.5

 

    0

   60

-120

  540


 

Отсюда следует вывод, что x=1,3 – точки локальных минимумов, а x=2 – точка локального максимума. Чтобы идентифицировать точку x=0, необходимо вычислить третью производную в этой точке:

 

            f”’(x*)=(600x3-2160x2+1980x-360)|x=0 = -360.

 

Так как эта  производная отлична от нуля и  имеет нечетный порядок, то точка x=0 является не точкой оптимума, а точкой перегиба (рис.1.4)


 

Рис.1.4. График исследуемой в примере функции

f(x)=5x6-36x5+(165/2)x4-60x3+36

1.1.5. Замечания относительно глобального минимума

Рассмотрим  вкратце вопрос, касающийся определения  глобального минимума (или максимума) функции одной переменной. Как правило такой вопрос возникает тогда, когда целевая функция изначально определена на некотором интервале. Поскольку глобальный оптимум в то же время является и локальным, можно вычислить все локальные оптимумы исследуемой функции и выбрать из них наилучший, используя метод перебора. Рассмотрим алгоритм решения, основанный на таком элементарном подходе.

Итак, пусть  требуется:

 

минимизировать f(x)

при ограничении a£x£b,

 

где a и b – установленные границы изменения значений переменной x.

Так как функция  исследуется на заданном интервале, нетрудно заметить, что проверку наличия  локального оптимума необходимо проводить не только в стационарных точках, но и в граничных точках интервала. Поэтому алгоритм поиска глобального минимума здесь очевиден:

Шаг 1. Приравнять df/dx=0 и найти все стационарные точки.

Шаг 2. Выбрать  все стационарные точки, которые  расположены в интервале [a,b],  обозначив их как xi*, i=1,2,…,K.

Шаг 3. Найти  наименьшее значение f(x) из множества:

         f(a), f(x1), f(x2), …, f(xK), f(b),

т.е. к множеству  всех стационарных точек мы добавили и граничные точки.

Замечание. При построении алгоритма мы не пытались классифицировать стационарные точки как точки локального минимума, максимума или точки перегиба, поскольку в задачах с ограничениями точка перегиба также может быть точкой локального минимума, если она совпадает с граничной точкой.  

1.2. Методы исключения интервалов

1.2.1. Метод деления  пополам

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

Для установления границ интервала унимодальности [a, b] обычно используют эвристические процедуры, в которых выбираются некоторые пробные точки функции f, а затем, путем сравнения значений f находится точка, в которой функция начинает возрастать. Рассмотрим основные процедуры алгоритма Свенна.

Алгоритм  Свенна для поиска интервала унимодальности

    1. Вычислить f(x0), f(x0-D), f(x0+D), где x0-начальная       точка, D-некоторая постоянная.
    2. Если f(x0-D)£ f(x0)£ f(x0+D), то D=-D;

иначе перейти  к 5.

    1. Вычислить следующую пробную точку xk+1=xk+2(k)×D.
    2. Если f(xk+1) £ f(xk), перейти к 3;

иначе xk+1=b, xk-1=b. Стоп.

    1. Положить D=D; перейти к 3.

 

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

Метод деления  пополам (или метод трехточечного поиска на равных интервалах), как и другие методы поиска основывается на следующей теореме, которая называется теоремой исключения интервалов.

 

  • Теорема исключения интервалов. Пусть задана унимодальная функция f на некотором интервале [a, b], и ее минимум достигается в точке x*. Тогда, выбрав x1 и x2 так, чтобы a<x1<x2<b, и, сравнивая значения функции f в этих точках, можно сделать следующие выводы:

1.если f(x1)>f(x2), то точка минимума не лежит в интервале [a, x1];

    2. если f(x1)<f(x2), то точка минимума не лежит в интервале [x1, b].

 

(Заметим,  что при f(x1)=f(x2), то точка минимума лежит в интервале [x1, x2]).

Согласно теореме  исключения, очевидно, можно сконструировать  различные алгоритмы последовательного  уменьшения начального интервала до требумой величины, в котором будет содержаться искомая точка минимума.

 Алгоритм деления пополам

Пользователем задается требуемая точность e локализации точки минимума x*.

1. Вычислить xm=(a+b)/2,  L=b-a

2. Вычислить x1=a+L/4,  x2=b-L/4,  f(x1),  f(x2);

3. Если f(x1)<f(xm), то b=xm, xm=x1; перейти к 6;

     4. Если f(x2)<f(xm), то a=xm, xm=x2; перейти к 6;

     5. Положить a=x1, b=x2;

    1. Вычислить L=(b-a);

        Если ||L|| £ e, то закончить поиск;

        иначе, перейти к 2.

1.2.2. Метод золотого сечения

 

Предыдущий  алгоритм деления интервала пополам  требует на каждой итерации вычисление целевой функции f(x)  в двух новых  пробных точках.

Поскольку местонахождение  искомой точки минимума x* заранее  неизвестно, имеет смысл предположить, что пробные точки x1 и x2 нужно выбирать так, чтобы использовать информацию о значении функции на предыдущем шаге поиска. Это означает, что точки нужно выбирать так, чтобы обеспечить уменьшение интервала в одном и том же отношении. Кроме того, в целях повышения скорости сходимости алгоритма необходимо также потребовать, чтобы указанное отношение было максимальным. Такая стратегия поиска называется минимаксной.

Исходя из этих требований, расположим пробные точки x1 и x2 так, как показано на рис.1.5а.

При таком симметричном расположении точек длина остающегося после исключения интервала всегда равна t независимо от того, какое из значений функции в пробных точках оказывается меньшим.

 

 

 

 

 

                                       (1-t)



 

                                      

          0                                      1



               (1-t)                  t

 

                             a)

 

 


                 (1-t)


          0                                      1


                       t


 

                             б)

 

                           


                           


                            t2


          0                                      1


                 (1-t)


                            в)

 

                      Рис.1.5. Расположение пробных точек

                          в методе золотого сечения

Предположим, что  исключается правый интервал [x2,1]. Тогда для сохранения симметрии поиска расстояние (1-t) должно также составлять t-ю часть длины интервала, которая равна t. При таком выборе t следующая пробная точка размещается на расстоянии, равном t-й части длины интервала (рис.1.5б).

 

Отсюда следует, что t нужно определять из уравнения

 

1-t=t2,                (1.13)

 

решая которое, находим

 

                          t =(-1± ),

 

                          t = 0.6183… .              (1.14)

 

В общем случае, на каждой итерации исключается (1-t)-я часть интервала. Следовательно, после N вычислений функции f, начальный единичный интервал уменьшится до величины t(N-1).

1.2.3. Сравнение методов исключения  интервалов

Для сравнения  методов исключения интервалов в  качестве критерия сравнения принято  выбирать относительное уменьшение исходного интервала E(N) за N вычислений значений f:

 

E(N)=LN/L1,                     (1.15)

 

где L1 - длина исходного интервала [a, b];

    LN - длина конечного интервала.

В методе деления пополам  длина текущего интервала LN равна половине предыдущего, и поэтому можно записать LN= L1(0.5)N/2, тогда

EМДП(N)=0.5N/2.                  (1.16)

 

Аналогичные рассуждения  дают для метода золотого сечения  следующие соотношения:

                    L(N)=L1(0.618)N-1               (1.17)

и

EМЗС(N)=0.618(N-1).              (1.18)

Метод равномерного поиска, в котором сравнивают значения f в N равноотстоящих точках интервала [a, b], локализуют точку x* в конечном интервале равном

(x*-L1/(N+1))£ x* £ (x*+L1/(N+1)),

откуда 

                       LN=2L1/(N+1)                   (1.19)

и эффективность метода равна

       EМРП(N)=2/(N+1).                (1.20)

 

В практической оптимизации пользователь обычно задает требуемую точность одномерного  поиска.

Для того, чтобы  перевести величину абсолютной точности в требуемое количество вычислений функции можно использовать следующие соотношения

NМДП = 2×lnEМДП/ln0.5,              (1.21)

 

NМЗС = 1 + lnEМЗС/ln0.618,         (1.22)

 

NМРП = 2/EМРП - 1.                 (1.23)

 

Если оценивать  эффективность методов одномерного  поиска по количеству вычислений значений функции, то метод золотого сечения является наиболее экономичным.

1.3.  ПОЛИНОМИАЛЬНАЯ  АППРОКСИМАЦИЯ

1.3.1. Квадратичная аппроксимация

Основная идея методов аппроксимации заключается  в том, что исходная функция f(x) описывается в виде некоторого полинома fa(x), достаточно хорошо приближающего исходную функцию. Затем ищется точка минимума x* полинома fa(x), которая является оценкой истинной точки минимума. Ясно, что точность такой оценки определяется тем, насколько хорошо подобрана аппроксимирующая функция.

Согласно теореме Вейерштрасса об аппроксимации, если функция непрерывна в некотором интервале, то ее с любой степенью точности можно аппроксимировать полиномом достаточно высокого порядка. Качество оценок точки минимума аппроксимирующего полинома можно повысить двумя способами: использованием полинома более высокого порядка и уменьшением интервала аппроксимации.

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

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

Если задана последовательность точек x1, x2, x3 и известны соответствующие этим точкам значения функции f1, f2, f3, то можно определить постоянные величины a0, a1 и a2 таким образом, что значения квадратичной функции

 

              q(x)=a0 + a1(x-x1)+a2(x-x1)(x-x2)          (1.24)

 

совпадут со значениями f(x) в трех указанных точках. Перейдем к вычислению q(x) в каждой из трех заданных точек. Прежде всего, так как

 

             f1=f(x1)=q(x1)=a0,              

 

имеем a0=f1.

Далее, поскольку

 

                    f2=f(x2)=q(x2)=f1+ a1(x2-x1),

получаем 

 

                       a1=(f2-f1)/(x2-x1).

 

Наконец, при x=x3

 

         f3=f(x3)=q(x3)=f1+(f2-f1)/(x2-x1)(x3-x1)+a2(x3-x1)(x3-x2).

 

Разрешая последнее  уравнение относительно a2, получаем

 

          a2= .

 

Таким образом  показано, что по трем заданным точкам и соответствующим значениям функции можно оценить параметры a0, a1 и a2 аппроксимирующего квадратичного полинома с помощью приведенных выше формул.

Если точность аппроксимации исследуемой функции  в интервале [x1, x3] c помощью указанного полинома оказывается достаточно высокой, то в соответствии с предложенной стратегией поиска построенный полином можно использовать для оценивания координат точки минимума.

В данном случае, согласно необходимому условию экстремума, найдя первую производную полинома и приравняв ее нулю, получим

 

                q'(x)= a1+a2(x-x2)+a2(x-x1)=0,

 

откуда искомая  оценка минимума равна

 

xa*=(x2-x1)/2 - (a1/2a2).

  • Пример. Методом квадратичной аппроксимации найти точку минимума функции

                   f(x)= 2x2 + (16/x)

в интервале 1£x£5.

Пусть пробные  точки равны x1=1, x2=3, x3=5, и соответствующие значения функции равны

 

f1=18.0,        f2=23.33,        f3=53.2.

 

Вычислим коэффициенты квадратичного приближения:

 

a1=2.67,       a2=3.07,

 

что дает следующую  оценку точки минимума

 

xa*=1.565.

 

Точный минимум  исходной функции равен x*=1.5874.

 

Далее рассмотрим метод последовательного оценивания минимума с использованием квадратичной аппроксимации. Идея метода проста и заключается в последовательном применении квадратичной ап-проксимации на сужающемся интервале. Этот метод, разработанный Пауэллом, представляется следующим алгоритмом.

 Алгоритм последовательной квадратичной аппроксимации

Задано: x1-начальная точка,

        Dx-величина шага по оси x.

  1. Вычислить x2=x1+Dx.
  2. Вычислить f1=f(x1) и f2=f2(x2).
  3. Если f1> f2, то x3=x1+2Dx;
Минимизация функций одной переменной