Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции / 2_Дифференцирование в методах нелинейного программирования.doc
Скачиваний:
59
Добавлен:
20.06.2014
Размер:
427.01 Кб
Скачать
      1. Численное дифференцирование

        1. Вычисление первых производных

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

Рассмотрим дифференцируемую функцию одной переменной разложенную в окрестности точки xпо формуле Тейлора:

Из этого, отбросив производные высших порядков, получаем:

          1. Правая конечно-разностная аппроксимация.

          1. Левая конечно-разностная аппроксимация.

          1. Центральная конечно-разностная аппроксимация.

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

        1. Ошибки при численном дифференцировании

          1. Виды ошибок

Численная аппроксимация значений производной связана со следующими ошибками:

  1. Ошибка отбрасывания

Ошибка отбрасывания равна остаточному числу тейлоровского разложения.

  1. Абсолютная ошибка

Абсолютная ошибка равна ошибке вычисления функции в точке х и (х+h). Это означает, что вместо f(x) иf(x+h) в формулу войдут некоторые величины .

Тогда:

  1. Ошибка округления при машинных арифметических операциях

Эти ошибки малы по сравнению с предыдущими ошибками и их, как правило, не учитывают.

          1. Выбор приращения при численном дифференцировании

Таким образом, первая ошибка прямо пропорциональна конечно-разностному интервалу h, а вторая ошибка обратно пропорциональна ему. Следовательно, последствия варьированияhпротиворечивы и суммарная ошибка зависит от удачного выбораh.

Все рассуждения справедливы и в многомерных задачах.

Рассмотрим аппроксимацию матрицы Якоби.

Тогда (i,j) компонент матрицы ЯкобиJ(x) с помощью правой разности можно записать:

,

где - единичный вектор.

Или

Если при вычислении F(x) имеетсяtдостоверных разрядов, то целесообразно стремиться к тому, чтобыF(x+hej) отличалась отF(x) правой половиной этих разрядов, т.е. если относительная ошибка равна, то мы хотели бы иметь ошибку:

Тогда для каждой координаты вектора х можно использовать длину шага:

Для несложной F(x) часто полагают, что10-t macheps.

Однако, в случае если близко к 0, то такой способ оценки шага может дать слишком малое значение. Поэтому на практике целесообразно использовать формулу:

, (*)

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

Соответственно элементы A.j иJ(x).j будут совпадать в первыхt/2 десятичных разрядах.

        1. Вычисление вторых производных

          1. Расчет матрицы Гессе

Рассмотрим использование конечно-разностной аппроксимации для .

Если задается аналитически, то все рассуждения справедливы для матрицы Гессе.

Если f(x) не задан аналитически, то формулу для вычисленияH(k)можно записать в виде:

          1. Выбор приращения при расчете матрицы Гессе

Однако в этом случае при использовании (*) результат может оказаться неприемлемым. Неверные результаты можно объяснить следующим образом. Если взять:

,

то знаменатель в будет равен .

Т.о. суммарная ошибка увеличится за счет абсолютной ошибки . Поэтому при вычислении приращенийицелесообразно вносить возмущения в правые 2/3 достоверных разрядов при вычисленииf(x).

      1. Дифференцирование на потоковых графах

        1. Представление сложной функции в виде потокового графа

          1. Составляющие сложной функции

Сложная функция задается с помощью суперпозиции некоторого набора «простых». Простые функции принадлежат исходно задаваемому конечному множеству F.Формально они выделены только принадлежностью к множествуF- никаких обязательных иных отличий этих функций от всех прочих в общем случае не предполагается.

Функцию можно представить с помощью следующих элементов (термов):

  1. C - множество символов, обозначающих константы;

  2. V- множество символов, обозначающих переменные;

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

Термы определяются индуктивно:

  1. любой символ из есть терм;

  2. если - термы и, то- терм.