Вычислительная математика: Методические указания к практическим и лабораторным работам, страница 17

Примечания:

1) при выполнении работы студенты должны составить головную программу, в которой необходимо осуществить:

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

б) ввод значения параметра останова e,

в) обращение к подпрограмме GLS, где реализован алгоритм "золотого сечения",

г) обращение к подпрограмме N1YWFP, в которой определяются погрешности e и e0 между оценками , u() и истинными значениями проектного параметра x* и целевой функции u(x*),

д) запись полученных результатов в файлы данных (см. табл. 6.1 ¸ 6.5);

2) все расчеты в подпрограммах производятся с удвоенной точностью, следовательно вещественные данные в головной программе должны быть описаны как REAL*8.

Содержание отчета

1. Цель работы.

2. Постановка задачи.

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

4. Листинг головной программы.

5. Результаты вычислений (см. табл. 6.1 ¸ 6.5).

6. График целевой функции u(x).

7. График зависимости KM = f(DK).

8. Графики зависимостей lg Eо = f(lg e), KM = f(lg e).

9. Графики = f(k) (сходимость оценки проектного параметра к истинному значению x*) и d = f(k) (изменение длины интервала неопределенности) на одном рисунке.

10. Выводы.

Методические указания

1.  Основные теоретические положения, необходимые для выполнения работы

Метод золотого сечения является одним из самых эффективных методов одномерной оптимизации, используемых при решении практических задач. Последовательное уменьшение интервала неопределенности осуществляется за счет вычисления целевой функции на каждом шаге (кроме первого) лишь в одной, выбираемой специальным образом, точке, которая называется золотым сечением. Геометрически это иллюстрирует рис. 6.1, где ищется минимум целевой функции. Пусть на нулевом шаге длина интервала неопределенности [a,b] задана в виде d = b – a = x20 – x 10 . Внутри [a,b] выбираются две точки x1 и x2 и вычисляются u(x1) и u(x2). Оказывается, что u(x1) < u(x2), следовательно, искомый минимум располагается между x11 = x10 и x21 = x2 . В полученном новом интервале неопределенности [x11,x21] длиной d1 = x21 – x11  необходимо опять выбрать две точки, но одна из них x1 уже есть, поэтому выбирается точка x3 и вычисляется u(x3) < u(x1). Границы нового интервала неопределенности x12 = x1, x22 = x21, а  d2 = x22 –x12 .

Рис. 6.1

      Описанная процедура продолжается до тех пор пока не будет выполнено соотношение

 dk = x2k – x1k £ e×d0, k = 0, 1, 2, ....

          Точка золотого сечения выбирается из условия

l2/ l = l1/ l2 ,

где l = l1 + l2 представляет собой длину интервала неопределенности. Проделав элементарные преобразования с приведенным выше соотношением

получим

l1 = r1×l,   r1 = (3 – )/2 » 0,381966,

l2 = r2×l,   r2 = ( – 1)/2 » 0,618034.

          Таким образом, метод золотого сечения можно представить в виде итерационного процесса, на каждом k–ом (k = 1, 2, ...) шаге которого выполняются следующие операции:

          1) определяется k–е значение x1k в виде

x1k = x1(k–1) + r1×d(k–1)

и вычисляется u1k = u(x1k);

          2) определяется k–е значение x2k в виде

x2k = x2(k–1) + r2×d(k–1)

и вычисляется u2k = u(x2k);

          3) определяется k–й интервал неопределенности [x1k, x2k] согласно следующим соображениям

          – если u1k £ u2k, то принимается x1k = x1(k–1), а x2k вычислено в операции 2),

          – если u1k > u2k, то принимается x2k = x2(k–1), а x1k вычислено в операции 1);

          4) находится длительность k–го интервала неопределенности

dk = x2k – x1k = ×d0

и производится сравнение

          – если dk > e×d0, то осуществляется переход на (k + 1)–й шаг,