Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ВМиМОвЭ Очное Шестакович 2011 / ВМиМОвЭ Шестакович 2011 модифицированный.doc
Скачиваний:
24
Добавлен:
13.05.2023
Размер:
4.32 Mб
Скачать

7.2.3. Метод Фибоначчи

На практике количество вычислений значений функции часто бывает ограничено некоторым числом n (тем самым ограничено и число шагов вычислений по методу золотого сечения; оно не превышает n-1). Метод Фибоначчи отличается от метода золотого сечения лишь выбором первых двух симметричных точек и формул их пересчета и гарантирует более точное приближение к точке xmin за n-1 шаг, чем метод золотого сечения за то же количество шагов. Согласно методу Фибоначчи, на нулевом шаге первые две симметричные точки вычисляют по формулам:

x10=a0+Fn(b0–a0)/Fn + 2,

x20=b0-Fn (b0 -a0)/Fn + 2=a0+Fn+1(b0–a0)/Fn + 2,

где Fn , Fn+1, Fn+2 – числа Фибоначчи, определяемые рекуррентной формулой

F1=F2=1, Fk =Fk-1+Fk–2 , k=3, 4, ...

Запишем первые десять чисел Фибоначчи:

F1=1, F2=1, F3=2, F4=3, F5=5, F6=8, F7=13, F8=21, F9=34, F10=55.

В последующем, после сокращения интервала путем отбрасывания неблагоприятной крайней точки, одна из точек пересчитывается по одной из соответствующих формул

x1k=ak+Fn-k(b0–a0)/Fn+2,

x2k=ak+Fn-k+1(b0–a0)/Fn+2,

Выполняется n-1 шаг, при k = 1, 2, ..., n – 1. На последнем шаге две симметричные точки сливаются в одну, которая и принимается за точку минимума xmin =x1n-1. Погрешность вычисления точки минимума не превышает

(b0–a0)/(2Fn+2), т. е. за три вычисления функции (n=2) получают точку минимума с погрешностью, не превышающей 1/6 первоначального интервала, пять вычислений (n=4) – 1/16, девять (n=8) – 1/110.

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

Алгоритм метода.

1. Задаются a, b и число n.

2. Вычисляются d=( b-a )/Fn+2 и две симметричные точки:

x1=a+Fnd, x2=b-Fnd, f1=f(x1), f2=f(x2).

3. Если f1 > f2 , то a=x1, x1=x2, f1=f2, x2 = a+ Fn– k+1 d, f2 = f (x2),

иначе b=x2, x2= x1, f2= f1, x1 = a+ Fn– k d, f1 = f (x1).

4. Пункты 2 – 3 повторяется n-1 раз, при k=1, 2, ..., n-1.

5. Вычисляется .

7.2.4. Метод последовательного перебора

Этот метод не требует предварительного определения местоположения точки минимума. Идея метода состоит в том, что, спускаясь из точки x0 с заданным шагом h в направлении уменьшения функции, устанавливают интервал длиной 2h, на котором находится минимум, который затем последовательно уточняют, повторяя спуск с последней точки, уменьшив шаг и изменив его знак, пока не будет достигнута заданная точность (некое подобие затухающего маятника).

Алгоритм метода.

Задаются , начальный шаг h, (h>0) и погрешность .

  1. Вычисляем

  2. Определяем направление убывания функции.

Если то

  1. Из точки делается шаг и вычисляется .

  2. Если , то и повторить с п. 3.

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

6. Если , то повторить с п. 3.

7.

Скорость сходимости данного метода существенно зависит от удачного выбора начального приближения x0 и шага h. Шаг h следует выбирать как половину оценки расстояния от x0 до предполагаемого минимума xmin.