Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Решебник_МО

.pdf
Скачиваний:
160
Добавлен:
01.06.2015
Размер:
3 Mб
Скачать

измерения, то можно существенно повысить эффективность поиска. Наиболее эффективным является такое расположение пары измерений, при котором текущий интервал неопределенности сокращается практически вдвое.

МЕТОД ДИХОТОМИИ

Метод дихотомии является самым естественным и наиболее распространенным на практике.

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

Пусть имеется единичный интервал исследования. Если после

проведения пары экспериментов в оставшемся интервале 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х211–1 = (–0,1)4–(–0,1)3+5٭(–0,1)2+(–0,1)–1≈ ≈ –1,049;

f(x2) = f(0,1) = х41–х32+5х222–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

частей Fn, причем

и последний. Так как проведение первого эксперимента не меняет начальный интервал неопределенности, то следует считать 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): х1n+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