Изменения

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

Поиск с помощью золотого сечения

301 байт добавлено, 19:05, 4 сентября 2022
м
rollbackEdits.php mass rollback
==Алгоритм==
===МотивацияОбоснование===
Рассмотрим одну итерацию алгоритма [[Троичный поиск|троичного поиска]]. Попробуем подобрать такое разбиение отрезка на три части, чтобы на следующей итерации одна из точек нового разбиения совпала с одной из точек текущего разбиения. Тогда в следующий раз не придется считать функцию в двух точках, так как в одной она уже была посчитана.
===Псевдокод===
'''intdouble''' goldenSectionSearch(f: '''double -> double''', l: '''double''', r: '''double''', eps: '''double'''):
phi = (1 + sqrt(5)) / 2
resphi = 2 - phi
x2 = r - resphi * (r - l)
f2 = f(x2)
'''while''' abs(r - l) > < eps
'''return''' (x1 + x2) / 2
 
===Ошибки псевдокода===
1. Используются вычислительно-неустойчивые формулы.
2. Учитывается только абсолютная длина отрезка.
Подробнее:
http://mech.math.msu.su/~iliagri/zip/sem2book.pdf
==Время работы==
1632
правки

Навигация