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

Автор работы: Пользователь скрыл имя, 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 Мб (Скачать файл)

иначе x3=x1-2Dx.

  1. Вычислить f3=f(x3)

   и найти

             fmin=min{f1, f2, f3},

             xmin-точка, которой соответствует fmin.

  1. Вычислить xa* по трем точкам x1, x2 и x3 в соответствии с   формулой квадратичной аппроксимации.
  2. Вычислить [fmin-f(xa*)] и (xmin- xa*).

Если обе  разности достаточно малы, то Стоп.

  1. Выбрать "наилучшую" точку из xmin и xa* и две точки по обе стороны от нее. Пронумеровать эти точки в естественном порядке и перейти к 4.

 

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

 

  • Пример. Методом Пауэлла минимизировать

 

f(x)= 2x3 + (16/x).

 

Пусть начальная точка  x1=1 и длина шага Dx=1. Для проверки правила окончания поиска (или правила останова) будем использовать следующие параметры сходимости:

 

           ||(разность значений x)/x|| £ 3×10-2,

 

           ||(разность значений f)/f|| £ 3×10-3.

 

Итерация 1

Шаг 1.    x2=x1+Dx=2.

Шаг 2.    f(x1)=18, f(x2)=16 .

Шаг 3.    f(x1)> f(x2), следовательно, положить x3=1+2=3.

Шаг 4.    f(x3)=22.33,  Fmin=16,   Xmin=x2=2.

Шаг 5.    a1=(16-18)/(2-1)=-2,

          a2= ,

          x=

          f(x)=15.210.

 

 

Шаг 6. Проверка на окончание поиска:

 

          > 0.003.

Следовательно, поиск продолжается.

Шаг 7. Выбираем x как "наилучшую" точку, а x1=1 и x2=2 - как точки, которые ее окружают. Обозначаем эти точки в ес-тественном порядке и переходим к итерации 2, которая на-чинается с шага 4.

 

Итерация 2.

Шаг 4.    x1=1,          f1=18,

          x2=1.714,      f2=15.210=Fmin,    Xmin=x2=171,

          x3=2,          f3=16.

 

Шаг 5.    a1=(15.21-18)/(1.714-1)=-3.908,

          a2= ,

          x=

          f(x)=15.142.

 

Шаг 6. Проверка на окончание  поиска:

 

          > 0.003.

Условие не выполняется, следовательно, поиск продолжается.

 

Шаг 7.        Выбираем x как "наилучшую" точку, а x1=1 и x2=1.714 - как точки, которые ее окружают.

 

Итерация 3.

Шаг 4.    x1=1,          f1=18,

          x2=1.65,       f2=15.142=Fmin,    Xmin=x2=1.65,

          x3=1.714,      f3=15.210.

 

Шаг 5.    a1=(15.142-18)/(1.65-1)=-4.397,

          a2= ,

          x=

          f(x)=15.123.

 

Шаг 6. Проверка на окончание поиска:

 

          < 0.003,

 

          < 0.003.

Следовательно, поиск закончен.

1.3.2. Кубическая  аппроксимация

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

Работа алгоритма  начинается в точке x1, задаваемой пользователем, а затем находится другая точка x2, такая, что производные f'(x1) и f'(x2) имеют разные знаки. Это означает, что стационарная точка x*, в которой f'(x*)=0, будет лежать в интервале между выбранными точками x1 и x2.

Аппроксимирующая  кубическая функция записывается в виде:

 

       fa(x)=a0+a1(x-x1)+a2(x-x1)(x-x2)+ a3(x-x1)2(x-x2).  (1.25)

 

Параметры уравнения (1.25) подбираются таким образом, чтобы  значения fa(x) и ее производной в точках x1 и x2 совпадали со значениями f(x) и f’(x) в этих точках. Первая производная fa(x) равна

 

fa’(x)=a1+a2(x-x1)+a2(x-x2)(x-x2)+a3(x-x1)2+2a3(x-x1)(x-x2).(1.26)

 

Коэффициенты a0, a1, a2 и a3 уравнения (1.26) определяются по известным значениям f(x1), f(x2), f’(x1) и f’(x2) путем решения следующей системы линейных уравнений:

 

f1 = f(x1)=a0,

f =f(x2)=a0+a1(x2-x1),

f1’=f’(x1)=a1+a2(x1-x2),

f2’=f’(x2)=a1+a2(x2-x1)+a3(x2-x1)2.

 

Заметим, что  данная система легко решается рекурсивным  методом. После того как коэффициенты найдены, действуя по аналогии со случаем  квадратичной аппроксимации, можно оценить координату стационарной точки функции f c помощью аппроксимирующего полинома (1.25). При этом приравнивание к нулю производной (1.26) приводит к квадратному уравнению. Используя формулу для вычисления корней квадратного уравнения, запишем решение, определяющее стационарную точку аппроксимирующего кубического полинома, в следующем виде:

 

            xa*= ,               (1.27)

где

              m =(f2’+w-z)/(f2’-f1’+2w),

 

              z =3(f1-f2)/(x2-x1)+f1’+f2’,

 

                 ì   (z2-f1’f2’)1/2,  если x1<x2,

              w =í  

                 î -(z2-f1’f2’)1/2,   если x1<x2.

 

Формула для w обеспечивает надлежащий выбор одного из двух корней квадратного уравнения; для значений m, заключенных в интервале от 0 до 1, формула (1.27) гарантирует, что получаемая точка xа* расположена между x1 и x2.

Затем снова  выбираются две точки для реализации процедуры кубической аппроксимации - xа* и одна из точек x1 и x2, причем значения производной исследуемой функции в этих точках должны быть противоположны по знаку, и процедура кубичной аппроксимации повторяется.

 

1.4. МЕТОДЫ С ИСПОЛЬЗОВАНИЕМ  ПРОИЗВОДНЫХ

 

1.4.1. Метод Ньютона-Рафсона

 

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

Метод, разработанный  Ньютоном, а затем уточненный Рафсоном предполагает, что f(x) дважды дифференцируема. Работа алгоритма начинается в точке x1, которая представляет начальное приближение (или начальную оценку) искомой точки минимума, или корня уравнения f’(x)=0. Затем строится линейная аппроксимация функции f’(x) в точке x1, и точка, в которой аппроксимирующая линейная функция обращается в нуль, принимается в качестве следующего приближения.

Формализм метода заключается в следующем. Пусть xk является текущим приближением к стационарной точке. Тогда линейная аппроксимация fa’ производной f’(x) в точке xk равна

 

               fa’(x, xk)= f’(x)+ f’’(xk)(x-xk)         (1.28)

 

Приравнивая правую часть (1.28) нулю, получим следующее  приближение:

 

               xk+1 = xk-[f’(xk)/f’’(xk)].


 

 

0   xk             xk+2 xk+1    

 

Рис.1.6. Метод  Ньютона-Рафсона

На рис.1.6 дана геометрическая интерпретация метода Ньютона-Рафсона.

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


f’(x)

 

 

                                   0   x*     x0    xk    xk+1    xk+2  х

 

                      Рис.1.7. Случай отсутствия

                  сходимости метода Ньютона-Рафсона

 

Рекомендации  для выбора начальной точки, гарантирующие сходимость метода заключаются в следующем:

 

  • x0 должна быть достаточно близка к корню уравнения f’(x)=0;
  • производная f’(x0) не слишком близка к нулю;
  • производная f”(x0) не слишком велика.

 

 

1.4.2.  Методы  средней точки и секущих

 

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

 

       Алгоритм метода средней точки  (метод Больцано)

Задать интервал унимодальности [a, b] и параметр сходимости e.

  1. Положить R=b, L=a; (при этом f’(a)<0 и f’(b)>0).
  2. Вычислить z=(R+L)/2 и f’(z).
  3. Если |f’(z)|£ e, то Стоп;

   иначе,  если f’(z)<0, то L=z; перейти к 2;

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

 

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

Метод секущих  как раз и использует информацию не только о знаке производной, но и о величине этой производной. Предположим, что в процессе поиска стационарной точки функции f(x) в интервале унимодальности [a, b] обнаружены две точки L и R, в которых знаки производных различны. В этом случае алгоритм метода секущих позволяет аппроксимировать функцию f’(x) «секущей прямой» (или «хордой») и найти точку, в которой секущая графика f’(x) пересекает ось абсцисс (рис.1.8). Таким образом следующее приближение к стационарной точке x* определяется по формуле

 

                   z= .

 

Если модуль f’(z) не больше параметра сходимости e, то поиск точки минимума завершен. В противном случае нужно выбрать одну из точек L или R, чтобы знаки производной в этой точке и точке z были различны, а затем повторить итрерацию. Например, в ситуации, изображенной на рис.1.8, в качестве этих точек должны быть выбраны точки z и R. Этот метод в ряде случаев позволяет исключать более половины интервала неопределенности.


       f’(x)    

L z x* R

 

              

                      

                 

Рис.1.8. Метод  секущих 

 

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

1.4.3.  Численная  аппроксимация производных

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

Схема конечно-разностной аппроксимации вытекает из ряда Тейлора, если мы будем решать обратную задачу: аппроксимировать неизвестные значения производных в точке по известным значениям функции в окрестности некоторой точки. В одномерном случае из  тейлоровского разложения в окрестности точки x0 дважды дифференцируемой функции f(x) следует, что оценка первой производной может быть записана в виде:

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