Изменения

Перейти к: навигация, поиск

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

2026 байт добавлено, 23:54, 28 января 2016
Алгоритм
==Алгоритм==
'''Предварительный этап.'''
Выбрать допустимую конечную длину интервала неопределенности <tex>l > 0</tex> и константу различимости <tex>{\epsilon}</tex>. Пусть задан начальный интервал неопределенности <tex>\left(b_1 - a_1\right)</tex>. Выбрать общее число вычислений функции <tex>n</tex> так, чтобы <tex>F_n > \dfrac{b_1 - a_1}{l}</tex>. Положить <tex>{\lambda}_1 = a_1 + \dfrac{F_{n-2}}{F_n}*\left(b_1 - a_1\right)</tex>, <tex>{\mu}_1 = a_1 + \dfrac{F_{n-1}}{F_n}*\left(b_1 - a_1\right)</tex>.Вычислить <tex>f\left({\lambda}_1\right)</tex>, <tex>f\left({\mu}_1\right)</tex>, положить <tex>k = 1</tex> и перейти к основному этапу.  '''Основной этап.'''  ''Первый шаг.'' Если <tex>f\left({\lambda}_k\right) > f\left({\mu}_k\right)</tex>, то перейти ко второму шагу, в противном случае – к третьему шагу. ''Второй шаг.''Положить <tex>a_{k+1} = {\lambda}_k, b_{k+1} = b_k</tex>. Затем положить <tex>{\lambda}_{k+1} = {\mu}_k</tex>, <tex>{\mu}_{k+1} = a_{k+1} + \dfrac{F_{n-k-1}}{F_{n-k}}*\left(b_{k+1} - a_{k+1}\right)</tex>. Если <tex>k = n - 2</tex>, то перейти к пятому шагу, в противном случае вычислить <tex>f\left({\mu}_{k+1}\right)</tex> и перейти к четвертому шагу. ''Третий шаг.'' Положить <tex>a_{k+1} = a_k</tex>, <tex>b_{k+1} = {\mu}_k</tex>, <tex>{\mu}_{k+1} = {\lambda}_k</tex>, <tex>{\lambda}_{k+1} = a_{k+1} + \dfrac{F_{n-k-2}}{F_{n-k}}*\left(b_{k+1} - a_{k+1}\right)</tex>. Если <tex>k = n - 2</tex>, то перейти к пятому шагу, в противном случае <tex>f\left({\lambda}_{k+1}\right)</tex> и перейти к четвертому шагу. ''Четвертый шаг.'' Заменить <tex>k</tex> на <tex>k + 1</tex> и перейти к первому шагу. ''Пятый шаг.'' Положить <tex>{\lambda}_n = {\lambda}_{n-1}</tex>, <tex>{\mu}_n = {\lambda}_n + {\epsilon}</tex>. Если <tex>f\left({\lambda}_n\right) = f\left({\mu}_n\right)</tex>, то положить <tex>a_n = {\lambda}_n, b_n = b_{n-1}</tex>. В противном случае (если <tex>f\left({\lambda}_n\right) < f\left({\mu}_n\right)</tex>), положить <tex>a_n = a_{n-1}, b_n = {\mu}_n</tex>. '''Конец''': оптимальное решение содержится в интервале <tex>[a_n, b_n]</tex>.
Анонимный участник

Навигация