Бодигрим писал(а):
а Вы попробуйте выписать практически универсальное условие, а потом ехидничайте
Нам на парах давали что-то в духе

.
. . . . . . . . . . . . . . . . .
[quote="Alcohol_frei
сообщении #143262"]Сравниваем предыдущее и полученное значение, учитывая погрешность.
Проверять

недостаточно для хорошего результата алгоритма. Дело в том, что если у вас на некотором шаге перемещение было малым, на следующем оно может быть снова очень и очень большим. ИМХО лучше делать, как я писал выше.[/quote]
Так Ваш вышний рецепт как раз именно от этой-то проблемы и не спасает ( не говоря уж о том, что и выглядит странно -- совсем разного типа величины почему-то сравниваются с одной и той же; впрочем, это, видимо, из-за "что-то в духе").
Фактически достаточно отслеживать только

, но -- обязательно беря максимум по некоторой группе последних приближений. Например, по

последним, где

-- размерность задачи (после каждых

шагов условия сходимости более-менее повторяются).
Но и это ещё не всё. Метод градиентного сходится спуска (усреднённо) со скоростью геометрической прогрессии, т.е. усреднённые разности соседних приближений убывают примерно как

. Беда в том, что

запросто может оказаться очень близкой к единице (величина

оценивается через отношение минимального и максимального собственных чисел матрицы вторых производных в окрестности экстремума). Поэтому сравнивать надо не просто с

, а с

, т.е. с некоторым запасом. Причём на практике величина

тоже неизвестна, и её нужно оценивать по мере вычислений через усреднённые отношения усреднённых же приращений.