Решебник_МО
.pdfизмерения, то можно существенно повысить эффективность поиска. Наиболее эффективным является такое расположение пары измерений, при котором текущий интервал неопределенности сокращается практически вдвое.
МЕТОД ДИХОТОМИИ
Метод дихотомии является самым естественным и наиболее распространенным на практике.
В этом методе оба эксперимента должны быть расположены в районе середины интервала, как можно ближе друг к другу, но так, чтобы можно было отличить значения функции в этих точках друг от друга.
Пусть имеется единичный интервал исследования. Если после
проведения пары экспериментов в оставшемся интервале L2= |
1 |
|
|||||||||||||||
|
|||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2 |
2 |
провести |
|
|
еще |
|
|
пару |
экспериментов, |
то |
получим |
||||||||
L4 |
1 |
|
1 |
|
|
|
|
|
1 |
|
3 |
|
|
|
|
|
|
|
|
|
|
|
|
|
. |
Если в L4 провести |
еще |
пару |
|||||||
|
|
|
|
|
|||||||||||||
|
2 |
|
2 |
|
2 |
|
2 |
|
4 |
|
4 |
|
|
|
|
|
|
|
|
|
1 |
|
1 |
|
3 |
|
|
|
1 |
|
7 |
|
|
экспериментов, то можно получить |
L6 |
|
|
|
|
|
|
|
|
. |
|||||
|
|
|
|
|
|
||||||||||
|
|
|
2 |
|
4 |
|
4 |
|
2 |
|
8 |
|
8 |
|
Продолжая действовать по этому алгоритму, после k пар экспериментов, получим интервал неопределенности L2k=2-k+(l–2-k)ε.
План проведения эксперимента методом дихотомии приведен на рис. 5.
|
|
1 |
|
|
/2 |
1/2 |
|
0 |
1 |
||
|
(1+ )/2
/2 (1+3 )/4 (1+7 )/8
Рис, 5, План проведения поиска методом дихотомии
При использовании метода дихотомии интервал неопределенности Ln после проведения k = n/2 пар экспериментов практически
41
будет равен L0/2n/2. Эффективность метода характеризуется величиной (L0/Ln)дих=2n/2. Уже при n = 10 эффективность метода дихотомии примерно в шесть раз выше метода перебора.
Для сокращения единичного интервала неопределенности до
размера l0 методом дихотомии |
потребуется сделать |
n |
2 |
ln |
1 |
|
||||
ln 2 |
l0 |
|||||||||
|
|
|
|
|
|
|
||||
экспериментов. Для произвольного интервала L0 = [а,в] |
эта формула |
|||||||||
будет иметь вид n |
2 |
ln |
(b a) |
. С ростом n эффективность метода |
||||||
ln 2 |
l0 |
|||||||||
|
|
|
|
|
|
|
|
дихотомии экспоненциально возрастает.
Алгоритм метода дихотомии состоит из следующих шагов.
Ша г 1. Исходный интервал L0 =[a,b] исследования делится пополам.
Ша г 2. Вблизи точки деления (по разные ее стороны) дважды
вычисляется значение целевой функции у(х1), у(х2), где x1= a+L0/2–ε/2; x2=a+L0/2 + ε/2, где ε – наименьший интервал изменения переменной х, при котором возможно обнаружить отличие между y(х1) и у(х2).
Ш а г 3. Используя свойство унимодальных функций, определяют интервал, в котором находится экстремальное значение целевой функции, а затем процесс расчета повторяют по аналогичной схеме до тех пор, пока не будет получен интервал Ln, где Ln 2ε, содержащий точку оптимума х*.
Пример 8. Найти минимум функции f(х) = х4–х3+5х2+х–1 методом дихотомии, отрезок, на котором выполняются замеры, L0= [–2; 2], а минимально допустимый интервал неопределенности, соответствующий минимальному расстоянию между экспери ментами, при котором они различны ε = 0,2 и максимально допустимый интервал неопределенности l0= 0,4.
Решение. Число замеров, необходимых для получения интервала неопределенности заданной точности, можно определить с
помощью формулы |
2 |
ln |
(a b) |
|
2 |
ln |
3,8 |
8,5 . В качестве n |
|
ln 2 |
l0 |
ln 2 |
0,2 |
||||||
|
|
|
|
|
берется ближайшее большее четное число, следовательно, n=10. Согласно оптимальной стратегии поиска первые два замера
42
необходимо выполнить |
в точках |
x 2 |
(2 ( 2)) |
0,1 и |
||||
|
||||||||
|
|
|
|
|
1 |
2 |
|
|
|
|
|
|
|
|
|
||
x2 |
2 |
(2 ( 2)) |
0,1 . |
Значения |
функции в этих точках будут |
|||
2 |
||||||||
|
|
|
|
|
|
|
следующие:
f(x1) = f(–0,1) = х41–х31+5х21+х1–1 = (–0,1)4–(–0,1)3+5٭(–0,1)2+(–0,1)–1≈ ≈ –1,049;
f(x2) = f(0,1) = х41–х32+5х22+х2–1 = (0,1)4–(0,1)3+5*(0,1)2+(0,1)–1≈ –0,851.
Таким образом, в силу унимодальности функции, интервал
неопределенности сократился до L2 = [–2; |
0,1] = 2,1. |
|
|||||||||
|
|
На |
отрезке L2 |
выбираем |
две |
точки |
эксперимента |
||||
x |
|
2 |
(0,1 ( 2)) |
1,05 и |
x 2 |
(0,1 ( 2)) |
0,85 |
вблизи центра |
|||
|
3 |
|
|
2 |
|
4 |
|
2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
||
интервала |
и получаем |
f(x3) = 5,836, |
f(x4) = 2,899. Интервал |
||||||||
неопределенности стал L4 = [–1,05; 0,1]=1,15. |
|
|
|
||||||||
|
|
Далее в близи центра отрезка L4 |
находим точки х5 = –0,575 и |
x6 = –0,375, в которых f(x5) = 0,378 и f(x6) = –0,599, а так как f(х5) > f(х6),
то получим интервал L6=[–0,575;0,1] = 0,675. Далее определяем х7 = –0,338 и х8 = –0,138, где f(x7) = –0,715 и f(x8) = –1,04, и так как. f(х7) > f(х8), то интервал неопределенности L8 = [–0,338;0,1] = 0,438. Вновь вблизи центра отрезка неопределенности находим точки
х9 = –0,219 и x10 = –0,019, в которых f(x9) = –0,966 и f(x10) = –1,017.
Интервал неопределенности после пяти пар экспериментов
сократился до L10 = [–0,219;0,1] = 0,319 < 10. Принимаем fmin = f(x10) = = –1,17. Этот минимум достигается в точке х*= x10 = –0,019.
Пример 9. Найдите максимум функции f(х)=3х–2х2–4 методом дихотомии, отрезок, на котором выполняются замеры, L0=[–2,8], минимально допустимый интервал неопределенности, соответствующий минимальному расстоянию между экспериментами, при котором они различны, ε = 0,2, и максимально допустимый интервал неопределенности l0 = 1.
Решение. Число замеров, необходимых для получения интервала неопределенности заданной точности, можно определить с
помощью формулы n |
2 |
ln |
(a b) |
|
2 |
ln |
9,8 |
8. |
|
ln 2 |
l0 |
ln 2 |
0,8 |
||||||
|
|
|
|
|
43
Согласно оптимальной стратегии поиска первые два замера |
|
||||||
необходимо |
выполнить |
в |
точках |
x 2 |
(8 ( 2)) |
2,9 |
и |
|
|||||||
|
|
|
|
1 |
2 |
|
|
|
|
|
|
|
|
|
x 2 |
(8 ( 2)) |
3,1 . Значения функции в этих точках следующие: |
|
||
2 |
2 |
|
|
|
f(x1) = 3х1–2х21–4 = 3*(2,9)–2*(2,9)2–4 ≈ –12,12; f(x2) = 3х2–2х22–4 = 3*(3,1)–2*(3,1)2–4 ≈ –13,92.
В силу унимодальности функции, интервал неопределенности сократится до L2=[–2; 3,1] = 5,1. В близи центра интервала L2 выбираем две точки для эксперимента х3 = 0,5 и x4 = 0,7, в которых f(x3) = –3,12, f(x4) = –2,88. Интервал неопределенности стал L4 = [0,5;3,1] = 2,6. Проведя третью пару экспериментов получаем: х5 = 1,7 и x6 = 1,9, в которых f(x5) = –4,68 и f(x6) = –5,52, а так как f(х5) > f(х6), то получим интервал L6 = [0,5;1,9] = 0,8.
Вновь вблизи центра отрезка неопределенности L6 находим
точки х7 = 1,1 и х8 = 1,3, где f(x7) = –3,12 и f(x8) = –3,48, и, так как f(х7) >f(х8), интервал неопределенности L8 = [0,5;1,3] = 0,8 < 10. Принимаем
fmax = f(x7) = –3,12. Этот максимум достигается в точке х*= x7 = 1,1. Схема проведения эксперимента приведена на рис. 6.
– 8
– |
|
|
2,9 |
3,1 |
||
0,5 |
|
|
3,1 |
|||
0,7 |
||||||
|
||||||
0,5 |
|
|
3,1 |
|||
|
|
|||||
|
|
1,7 1,9
0,5 1,9
1,1 1,3
Рис. 6. Схема поиска для примера 9
МЕТОД ФИБОНАЧЧИ
Числами Фибоначчи называют рекуррентную последователь-
ность чисел F0, F1, F2, F3, F4,…, где F0=1, F1=1, Fi=Fi-1+Fi-2, i=2,3,4,…
Сущность метода состоит в том, что эксперименты, проводимые последовательно, располагаются таким образом, чтобы для соседних интервалов неопределенности выполнялось условие Lj=Lj+1+Lj+2. Исключения из этого правила составляют два эксперимента – первый
44
и последний. Так как проведение первого эксперимента не меняет начальный интервал неопределенности, то следует считать L0=L1, а проведение последнего эксперимента фактически соответствует методу дихотомии, поэтому Ln Ln-1/2.
Пусть величина |
|
b a |
|
|
. Тогда b–a=FnΔ, т.е. весь |
|
Fn |
2 |
|||||
|
|
|
|
интервал исследования можно разделить на каждая часть будет иметь длину, меньшую ε ( <ε).
Разобьем отрезок [a,b] на три части с длинами Fn–2* , Fn–3* ,
Fn–3* (это можно сделать, потому что Fn= Fn–1+Fn–2=(Fn–2 + Fn–3)+Fn–2). Точки деления x1 и x2 определяются по формулам (рис. 7):
x1 a Fn 2 , x2 x1 Fn 3 a Fn 1 .
Рис. 7. Положение первых двух точек метода Фибоначчи
В найденных точках вычисляются значения целевой функции f(х1), f(х2) и среди них выбирается большее при поиске максимума (соответственно меньшее – при поиске минимума). Если искомое экстремальное значение достигнуто в точке xi, то в качестве следующего интервала неопределенности выбирается интервал [a,xi], в противном случае [xi-1,b]. В полученном интервале находится точка замера, где значение функции было экстремальным. Для продолжения поиска необходимо точку следующего замера расположить симметрично этому имеющемуся замеру, а далее поиск осуществляется аналогично рассмотренному. На последнем шаге длина интервала будет равна F3* =3*Δ, а точки деления разделят его на три отрезка длиной F1* =F0* = . Таким образом, точка искомого экстремума определяется с точностью 2Δ≤ε.
Из сказанного нетрудно установить, что для любого (n–k)-го эксперимента справедлива формула Ln-k=Fk+1Ln, где через Fk – числа Фибоначчи.
Эффективность метода Фибоначчи характеризуется величиной (L0/Ln)фиб=(L1/Ln)фиб=Fn и при n=10 превышает метод дихотомии более,
45
чем в 2,5 раза. С ростом n преимущество метода еще больше возрастает. Недостаток метода состоит в том, что им нельзя пользоваться, не зная заранее общего числа экспериментов n. Если поиск методом Фибоначчи начат, то на любом шаге действия определяются просто: каждый последующий эксперимент располагается симметрично относительно предыдущего, попавшего в этот же интервал неопределенности. Однако для определения места приложения первых двух экспериментов необходимо найти величину Ln, которая определяется по формуле L2=L1(Fn-1/Fn) и зависит от числа экспериментов n.
Алгоритм метода Фибоначчи следующий.
Ш а г 1. По заданной точности ε рассчитывается
вспомогательное число N b a . l0
Ш а г 2. Для полученного значения N находится такое число Фибоначчи Fn, чтобы выполнялось неравенство Fn-1<N Fn.
Ш а г 3. Определяется минимальный шаг поиска по формуле
m b a . Fn
Ша г 4. Рассчитывается значение функции f(x) в начале интервала, т.е. f(a).
Ша г 5. Следующая точка, в которой вычисляется значение
f(x): х1=аn+mFn–2.
Ша г 6. Если f(x1)>f(a) (шаг удачный при поиске max f(x)), то следующая точка определяется как x2 = x1+mFn–3; при f(x1) ≤ f(a) (шаг неудачный при поиске max f(x)) определим х2 = х1–mFn–3.
Ша г 7. Последующие шаги выполняются с уменьшающейся величиной шага в соответствии со следующим правилом. Если при
выполнении шага значение функции в точке xi+1 = xi+ xi оказывается больше, т.е. f(xi+1) > f(xi) – шаг удачный, то следующий (i+2)-й шаг выполняется из точки хi+1: xi+2 = xi+1+ xi+1. Если (i+1)-й шаг неудачный, т.е. f(xi+1) ≤ f(xi), то следующий (i+2)-й шаг выполняется из точки хk – точки последнего лучшего результата в обратном направлении, т.е. xi+2 = xk–Δxi+1. Для каждого i-го шага Δxi вычисляется
по формуле x |
mF |
. |
i |
n i 2 |
|
46
Указанный процесс продолжим до тех пор, пока не будут исчерпаны все числа Фибоначчи в убывающей последовательности. Точка последнего измерения берется посередине отрезка Ln–1.
Пример 10. Найдите положение минимум функции f(х)=х4–х3+5х2+х–1 методом Фибоначчи. Отрезок, на котором исследуется функция L0=[–2; 2], максимально допустимый интервал неопределенности l0 = 0,2, минимально допустимый интервал, соответствующий минимальному расстоянию между экспериментами, при котором они различны ε = 0,1.
|
Решение. В соответствии с алгоритмом найдем N= |
b a |
= |
||||||
|
|
|
|
||||||
|
|
|
|
|
|
l0 |
|
||
= |
2 ( 2) |
=20. Имеем F6<N=20<F7, откуда Fn=F7=21 и n=7. |
|
|
|
|
|||
0,2 |
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
Определим максимальный шаг поиска: m |
2 ( 2) |
|
4 |
|
0,19 . |
|||
|
|
|
|
|
|||||
|
|
|
F7 |
21 |
|
Вычислим в начале интервала (в точке а = –2) значение исследуемой функции: f(a) = f(–2) = 41.
Найдем точку х1: x1 = a+mFn–2 = a+mF5 = –2+0,19*8 = –0,476, в
которой вычислим значение f1:
f(x1) = (–0,476)4–(–0,476)3+5*(–0,476)2+(–0,476)–146–29,6 = –0,183.
Так как f(x1) < f(a) (это удачный шаг при поиске минимум функции), то следующая точка х2 определяется по формуле
x2 = x1+mFn–3 = х1+mF4 = –0,476+0,19*5 = 0,386. Значение функции f(х2) = 0,553, а L2 = [–2; –0,386] = 2,386.
Так как f(x2) > f(x1) (шаг неудачный), то, в соответствии с алгоритмом, следующий шаг выполняется из точки х1 в противоположную сторону, т.е.
xi+1 = х3 = x1–mFn–i–2= x1–mF3= –0,476–0,19*3 = –1,048 и f3 = 5,794. Из результатов вычисления следует, что L3 = [–1,048 ;0,386] = 1,134.
Так как f3 > f1 (шаг неудачный), то направление шага (т.е. знак приращения) вновь меняется, и следующий шаг выполняется из точки х1: х4 = х1+mF2 = –0,476+0,19*2 = –0,095, f4 = –1,049. Из условия f3 > f4 следует, что L4 = [–0,476; 0,386] = 0,862.
Так как f4<f1 (шаг удачный), то направление шага не меняется:
47
х5 = х4+mF1 = –0,095+0,19*l = 0,095, f5 = –0,86. Из условия f5 > f4 следует, что L5 = [–0,476; 0,095] = 0,571.
Так как f5>f4 (шаг неудачный), то меняем направление шага:
х6 = х4–mF0 = –0,095–0,19*l = –0,285, f5 = –0,848. Из условия f6 > f4 следует, что L6 = [–0,285; 0,095] = 0,38.
Точка последнего измерения x7 находится путем деления отрезка L6 пополам: x7 = –0,095, т.е. мы вернулись в точку х4, значение функции в которой уже вычислялось, а L7 = [–0,095; 0,095] = 0,19 < l0.
За семь измерений лучший результат получен в точке х4 = х7, следовательно решением является точка: х*= –0,095 и f(x*) = –1,049.
Пример 11. Найдите максимум функции f(х) = 3х+2х2–4 методом Фибоначчи, отрезок, на котором выполняются замеры, L0=[–2; 8], минимально допустимый интервал неопределенности, соответ-ствующий минимальному расстоянию между экспериментами, при котором они различны, ε = 0,4, и максимально допустимый интервал неопределенности l0 = 0,8.
Решение. В соответствии с алгоритмом найдем N= b a = l0
= |
8 ( 2) |
=10. Имеем F5 < N = 10 <F6, откуда Fn= F6 = 13 и n = 6. |
|||||||
0,8 |
|||||||||
|
|
|
|
|
|
|
|
||
Определим максимальный шаг поиска: |
m |
b a |
|
10 |
0,77 . |
||||
|
|
|
|||||||
|
|
|
|
Fn |
13 |
|
Вычислим значение исследуемой функции в начале и конце интервала
(в точках а = –2, в = 8): f(–2) = –18, f(8) = –108. В силу того, что определяется максимум функции, поиск целесообразно начинать в начальной точке интервала исследования и двигаться к его концу.
Найдем точку х1: x1 = а+mFn–2 = в–mF4 = –2+0,77*5 = 1,85, в
которой вычислим значение: f(x1) = –5,295.
Так как f(x1) > f(а) (шаг удачный), то следующая точка х2
определяется по формуле: x2 = x1+mFn–3 = х1+mF3 = 1,85+0,77*3 = 4,16
и f(x2) = –26,13. Поскольку f2 < f1, то, учитывая унимодальность функции, получим L2 = [–2; 4,16] = 6,16.
Так как f2 < f1 (шаг неудачный), то направление шага (т.е. знак приращения) меняется, и следующий шаг выполняется из точки х1:
48
х3 = х1–mF2 = 1,85–0,77*2 = 0,31, f3 = –3,26. Из условия f3 > f1 следует, что L3 = [–2; 1,85] = 3,85.
Так как f3>f1 (шаг удачный), то направление следующего шага не меняется: х4 = х3–mF1 = 0,31–0,77*l = –0,46, f4 = –5,8. Из условия f4 < f3 следует, что L4 = [–0,46; 1,85] = 2,31.
Так как f4<f3 (шаг неудачный), то направление шага (т.е. знак приращения) меняется, и следующий шаг выполняется из точки х3:
х5 = х3+mF0 = 0,31+0,77*1 = 1,01, f5 = –3,01. Из условия f5>f3 следует, что L5 = [0,31; 1,85] = 1,54.
Точка последнего измерения x6 находится путем деления отрезка L5 пополам: x6 = 1,08, , f6 = –3,09. Из условия f6 < f5 следует,
что L6 = [0,31; 1,01] = 0,7 < l0.
За шесть измерений лучший результат получен в точке х5, следовательно решением является точка: х*= х5 = 1,01 и f(x*) = –3,01.
МЕТОД ЗОЛОТОГО СЕЧЕНИЯ
Метод Фибоначчи требует предварительного знания необходимого числа опытов. Однако задача поиска может быть поставлена таким образом, что необходимо найти не собственно максимум, а то значение аргумента, при котором выполняется некоторое условие, например f(x) Y. В этом случае оценить заранее требуемое число измерений не представляется возможным. Значит, нельзя определить и положение первого эксперимента для поиска по методу Фибоначчи.
Избежать зависимости первого опыта от числа опытов позволяет метод золотого сечения. Метод золотого сечения (ЗC), как и метод Фибоначчи, требует выполнения условия Lj=Lj+1+Lj+2. Однако в отличие от последнего он предполагает постоянство отношений длин последовательных интервалов неопределенности: Lj/Lj+1=Lj+1/Lj+2=C,
где C (1 5) / 2 1,618.
Поиск по методу ЗС производится так же, как и по методу Фибоначчи. Отличие заключается лишь в проведении первых двух
экспериментов. Первое измерение делается на расстоянии L1 |
L0 |
от |
|
||
|
C |
любого края исходного интервала неопределенности, где L0=b–a. Второе измерение делается симметрично первому. Поэтому
49
координаты |
|
первых |
двух замеров определяются по |
формулам: |
||||
x a |
b a |
, |
x |
|
b |
b a |
. |
|
1 |
c |
|
2 |
|
c |
|
|
|
|
|
|
|
|
|
|||
|
Два |
|
замера |
позволяют сократить исходный |
интервал |
неопределенностей до величины L2=x2–а, если искомое экстремальное значение функции достигается в точке x1, или до величины L2=b–x1, если экстремальное значение достигается в точке x2. В полученном интервале уже имеется один замер, а следующий замер располагается симметрично ему.
Замеры выполняются до тех пор, пока величина интервала, содержащая искомый экстремум, не сократится до величины Ln≤ ε или будет достигнута заданная точность решения.
Нетрудно видеть, что после проведения n экспериментов интервал неопределенности метода станет Ln=L0/Cn-1. Эффективность
метода характеризуется величиной (L0/Ln)зол=Cn-1. |
|
||||||||
На рис. 8 |
приведено взаимное расположение первых |
двух |
|||||||
|
|
|
1/с |
|
|
1/с2 |
|
||
|
|
|
х2 |
х1 |
|
|
|
||
0 |
|
|
|
|
|
|
|
1 |
|
|
|
|
|
|
|
|
|||
|
|
|
2 |
1/с |
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
1/с |
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
Рис, 8, Расположение первых двух точек по методу ЗС |
|
||||||||
измерений по методу золотого сечения. |
|
||||||||
Математик |
Люкас вывел |
уравнение, связывающее |
числа |
Фибоначчи Fn и величину С: при больших n получается Fn Cn+1/ 5 . Это соотношение дает возможность получить связь величины интервалов неопределенности Ln после n опытов проведенных по методу золотого сечения и по методу Фибоначчи:
(Ln)зол/(Ln) Сn+1/( 5 Cn–1)=C2/ 5 =1,17.
Пример 12. Найдите значение аргумента, при котором значение функции f(х) = х4–х3+5х2+х–1, заданной на интервале L0 = [–2; 2], будет меньше (–1).
Решение. Применяя метод «золотого сечения», получим
50