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

Автор работы: Пользователь скрыл имя, 29 Октября 2012 в 11:35, курсовая работа

Краткое описание

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

Содержание

1. МЕТОДЫ МИНИМИЗАЦИИ ФУНКЦИЙ ОДНОЙ ПЕРЕМЕННОЙ 3
1.1. НЕОБХОДИМЫЕ СВЕДЕНИЯ ИЗ МАТЕМАТИКИ 3
1.1.1. Постановка задачи одномерной минимизации 3
1.1.2. Классификация одномерных функций 4
1.1.3. Ряд Тейлора 6
1.1.5. Замечания относительно глобального минимума 12
1.2. МЕТОДЫ ИСКЛЮЧЕНИЯ ИНТЕРВАЛОВ 13
1.2.1. Метод деления пополам 13
Алгоритм Свенна для поиска интервала унимодальности 13
Алгоритм деления пополам 14
1.2.2. Метод золотого сечения 15
1.2.3. Сравнение методов исключения интервалов 17
1.3. ПОЛИНОМИАЛЬНАЯ АППРОКСИМАЦИЯ 18
1.3.1. Квадратичная аппроксимация 18
Алгоритм последовательной квадратичной аппроксимации 22
1.3.2. Кубическая аппроксимация 25
1.4. МЕТОДЫ С ИСПОЛЬЗОВАНИЕМ ПРОИЗВОДНЫХ 28
1.4.1. Метод Ньютона-Рафсона 28
1.4.2. Методы средней точки и секущих 30
1.4.3. Численная аппроксимация производных 31
Расчет коэффициентов аппроксимации в Microsoft Excel. 35
Построение графиков в Excel и использование функции ЛИНЕЙН. 44
Программа на языке Pascal. 47
Схема алгоритма. 47
Результаты расчета Pascal. 53
Заключение. 54
Список литературы 55

Вложенные файлы: 1 файл

Качковский.doc

— 1.32 Мб (Скачать файл)

Для установления границ интервала унимодальности [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;

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