![]() |
Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | |
|
Рассмотрим все множество последовательных методов для минимизации унимодальных функций. Установлено, что оптимального метода в данном классе не существует. d-оптимальным методом (позволяющим сколь угодно близко подойти к минимальной точности) является метод Фибоначчи.
Метод основан на использовании чисел Фибоначчи, которые определяются рекуррентными соотношениями:
Ф 0 = 1; Ф 1 = 1; Ф п = Ф п- 2 + Ф п- 1; (п ³ 2).
Используя коэффициенты t» 1,618и x» 0,618,характеризующие золотое сечение, по индукции можно показать, что числа Фибоначчи представимы также в виде уравнения Люкаса:
Второе слагаемое в уравнении Люкаса быстро стремится к нулю. Уже при сравнительно небольших п (п = 5, 6 ) его доля составляет менее одного процента и им можно пренебречь. Следовательно, с высокой точностью при п > 5 можно считать:
Фn» t n+ 1 / 2,236.
Число n (e) необходимых вычислений функции при заданной точности в методе Фибоначчи сокращается за счёт более оптимального выбора последовательности пробных точек. Длина отрезка [ a, b ] интерпретируется как число Фибоначчи Фп+ 1, умноженное на масштабный коэффициент C: (b-a) =СФп+ 1.Затем данное число разбивается пробными точками на числа Фибоначчи более низкого порядка: СФп+ 1 = СФп + СФп- 1и т.д., пока не будет получен доверительный отрезок [ ak, bk ]длины bk - ak £ e, где e - заданная точность. Итоговый доверительный отрезок [ ak, bk ] интерпретируется как число Фибоначчи Ф 1=1, умноженное на масштабный коэффициент С= (b-a) /Фп+ 1:
(bk - ak ) = Ф 1 (b-a)/ Фп+ 1 = (b-a)/ Фп+ 1.
Из соотношений Фn+ 1 » tn+ 2 / 2,236 ³ (b-a)/e = M следует правило приближенного выбора необходимого максимального используемого числа Фибоначчи и величины п: Фп+ 1 ³ (b-a)/e = М, п = ]log t (2,236 (b-a)/e)[ - 2.
Поскольку для программной реализации необходимы точные значения чисел Фп, то можно использовать следующие эмпирические формулы, дающие верный результат для п< 77(при этом Ф 76» 5,52794× 1015).
1. Вначале вычисляется величина
Затем рассматриваем два случая: (n< 46) и (46 £n< 77).
2. n< 46. При четных n, меньших 36: Фп: = [ Р+1 ], иначе: Фп: = [ Р ].
3. 46 £ n < 77. Вначале присваиваем Фп: = [ Р ].
При n > 70 Фп: = Фп + 70 - n.
При n> 74 дополнительно Фп: = Фп + 296 - 4 n.
4. При n ³ 77числа Фибоначчи можно определить по основному рекуррентному соотношению, начиная с чисел Ф75 = 3.416.454.622.906.707, Ф76 = 5.527.939.700.884.757.
Метод работает следующим образом.
Предварительные действия (Шаг 0 ). Рассчитываем масштаб задачи М= (b-а)/e, величины п и чисел Фибоначчи Ф п и Ф п+ 1, при которых Фп £ М £ Фп+ 1. Начальный доверительный отрезок принимаем равным исходному: а 0 = а, b 0 = b. Поскольку метод симметричный, то по формулам, содержащим числа Фибоначчи, теоретически достаточно рассчитать только положение на отрезке[ а 0, b 0]первой точки. Вычисление производим по формуле
х 1 = а + (b - a) Ф п- 1 / Ф п +1 = а + С Ф п- 1.
В полученной точке вычисляем значение функции F (х 1), переходим к Шагу 1.
Шаги i= 1 ¸ (n- 1). К их началу известны:
а) доверительный отрезок [ ai- 1, bi- 1] длины D i = bi- 1 - ai- 1 = С Ф п+ 2 – i,
б) пробная точка х, в которой уже найдено значение функции F(х), отстоящая от ближнего края отрезка [ ai- 1, bi- 1]на расстоянии: D i Ф п – i/ Ф п+ 2 – i.
Расчет новой пробной точки, функции в ней и упорядочение пробных точек и сокращение доверительного отрезка выполняем, как и в методе золотого сечения:
1. Расчет положения новой пробной точки: х¢ = (bi- 1 + аi- 1) - х, расчет значения функции F (x¢).
2. Упорядочение пробных точек х, х¢ и значений функции в них:
если (х < х¢), то { х 1 = х; F (x 1)= F (x); х 2 = х¢; F (x 2)= F (x¢) };
иначе { х 1 = х¢; F (x 1)= F (x¢); х 2 = х; F (x 2)= F (x) }.
3. Сокращение доверительного отрезка:
а) при F (x 1) ³ F (x 2) принимаем: a 1 = х 1, х 1 = х 2, b 1 = b 0,
б) при F (x 1) < F (x 2) принимаем: a 1 = а 0, х 2 = х 1, b 1 = х 2.
Характеристики произвольного i- го шага:
а) длина отбрасываемой части отрезка: d i = D i- 1 Ф п –i / Ф п–i +2 = С Ф п – i+ 1,
б) длина оставшегося доверительного отрезка [ a i,b i ]: D i = D i- 1 - d i = С Ф п– i+ 1.
Шаг n (заключительный ). К началу известен:
а) доверительный отрезок [ an- 1, bn- 1]длины D n- 1 = bn- 1 - an- 1 = С Ф 2,
б) пробная точка х, в которой уже найдено значение функции F (х), отстоящая от ближнего края отрезка [ an- 1, bn- 1]на расстоянии: D n- 1 Ф 1/ Ф 2 =0, 5 Dn-1.
Особенностью заключительного шага является то, что известная пробная точка х теоретически лежит точно в средней точке доверительного отрезка [ an- 1, bn- 1]. В силу этого вторую пробную точку нельзя рассчитывать как симметричную х относительно центра [ an- 1, bn- 1], поскольку она совпадёт с х.
Поэтому на последнем Шаге п принимаем:
x 1 := x; F (x 1): = F (x); x 2:= x 1 + d;
где d - некоторое малое число, можно принять d=0,1e.
После вычисления F (х2)производим по обычной схеме анализ F (х 1), F (х 2)и последнее сокращение доверительного отрезка.
Итоговая длина D п доверительного отрезка равна СФ 1 + d либо С Ф 1.
Если число Фп+ 1близко к М, то из-за сдвига точки x 2 на dдлина D n может незначительно превысить гарантированную точность e.
Скорость сходимости и точность метода. Учитывая, что на первом шаге функция рассчитывается дважды, получим величину n (e) для метода Фибоначчи:
n (e) = ]logt (2,236(b-a)/e)[-1.
Из этого же уравнения находим зависимостьe(n) точности от общего числа вычислений функции:
e(n)» 2,236(b-a)/t п+1=2,236 (b - a)x (n+1).
Разделив точность метода золотого сеченияe (п) = (b - a)x ( n- 1)на эту величину, получим значение 1/(2,236x 2 )» 1,17. Таким образом, при n ® ¥ метод золотого сечения в среднем хуже метода Фибоначчи (при заданном числе вычислений больше длина получаемого доверительного отрезка) приблизительно на 17%.
Замечание. При достаточно больших n, как следует из приближённого уравнения Люкаса, отношение Ф п / Ф п+ 1стремится к коэффициенту x = 1/t. Следовательно, первая пробная точка метода Фибоначчи х 1 = а + (b - a) Ф п- 1 / Фп+ 1 стремится к первой пробной точке х 1метода золотого сечения.
Метод Фибоначчи является самым быстрым из регулярных последовательных методов, применяемых для минимизации однопараметрических унимодальных функций на отрезке.
Пример 1. Найти минимум функции F (х) = х2 – 2 х на исходном доверительном отрезке [0,2; 2]по методу Фибоначчи при заданной точности e =0,5.
Решение.
Шаг 0. Предварительные действия. Масштаб задачи М = (b-a)/e=3,6.Из соотношений Ф 3 =3 < 3,6 < Ф 4 =5следует: n= 3, Фп+ 1 = 5, Фп = 3.
Доверительный отрезок: а 0 = а = 0,2; b 0 = b= 2.
Шаг 1. Пробные точки: х 2 = а 0 + (b 0 - a 0) Ф п / Ф п+ 1 = 1,28; х 1 = а 0 + b 0 - х 2 = 0,92.
Значения функции: F (x 1)=-0,9936; F (x 2)=-0,9216. F (x 1)< F (x 2),поэтому отбрасываем часть отрезка [ x 2 ;b 0].Получаем новый отрезок [ а 1; b 1]= [0,2;1,28].
b 1 -а 1 = 1,08 > e = 0,5;продолжаем поиск.
Шаг 2. Границы доверительного отрезка а 1=0,2; b 1=1,28. Известно значение F (x) = -0,9936при х= 0,92.
Новая пробная точка: х¢ = а 1 + b 1 - х = 0,56. Значение функции в ней: F (x ¢)= -0,8064.
Так как х¢ < х, то принимаем: х 1 = х¢; F (x 1)= F (x¢); х 2 = х; F (x 2)= F (x). Поскольку F (x 1) >F (x 2),то отбрасываем часть доверительного отрезка, равную [ a 1 ;x 1].
Получаем новый доверительный отрезок [ а 2 ;b 2]= [0,56;1,28]. Так как b 2 -а 2 = 0,72 > e;то продолжаем поиск.
Шаг 3 (заключительный). Границы доверительного интервала а 2=0,56; b 2=1,28. Известно значение F (x) = -0,9936при х= 0,92.
Новую пробную точку строим сдвигом известной: х¢ = 0,92+0,01=0,93. Значение функции в ней: F (x¢) = -0,9951.
Поскольку х¢>х, то полагаем х 1 =х; F (x 1)= F (x); х 2 =х¢; F (x 2)= F (x¢).
Так как F (x 1)> F (x 2),то отбрасываем часть доверительного отрезка [ a;x 1].Получаем итоговый отрезок [ а 3 ;b 3]= [0,92;1,28]. b 3 -а 3 = 0,36 < e;поиск завершаем.
Ответ. Выполнено3 шага при 4 пробных точках. Найден доверительный интервал [ а 3, b 3] = [0,92; 1,28]длины 0,36.
По сравнению с методом золотого сечения число вычислений функции осталось прежним, но сократилась длина итогового доверительного интервала с 0,4248 до 0,36.
Несмотря на то, что метод Фибоначчи является самым быстрым из регулярных последовательных методов, применяемых для минимизации однопараметрических унимодальных функций на отрезке, он не намного лучше метода золотого сечения при том, что значительно сложнее в реализации.
Вопросы для проверки знаний.
1. Какая числовая последовательность называется числами Фибоначчи?
2. В каком виде числа Фибоначчи могут быть явно представлены в а) точной и б) приближенной формах?
3. Как по заданному масштабу задачи определить число итераций п, необходимое для ее решения по методу Фибоначчи? Какие дополнительные данные помимо п требуются для начала итераций?
4. Чем отличается первый шаг от последующих в методе Фибоначчи?
5. Какая особенность заключается в выполнении последнего шага в методе Фибоначчи?
6. К какому методу стремятся при числе итераций n ® ¥ положения первых пробных точек в методе Фибоначчи?
Дата публикования: 2015-01-14; Прочитано: 2063 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!