fmin_ncg#
- scipy.optimize.fmin_ncg(f, x0, fprime, fhess_p=None, fhess=None, args=(), avextol=1e-05, эпсилон=np.float64(1.4901161193847656e-08), maxiter=None, full_output=0, disp=1, retall=0, callback=None, c1=0.0001, c2=0.9)[источник]#
Безусловная минимизация функции с использованием метода Ньютона-КГ.
- Параметры:
- fcallable
f(x, *args) Целевая функция для минимизации.
- x0ndarray
Начальное приближение.
- fprimecallable
f'(x, *args) Градиент f.
- fhess_pcallable
fhess_p(x, p, *args), опционально Функция, вычисляющая гессиан f, умноженный на произвольный вектор p.
- fhesscallable
fhess(x, *args), опционально Функция для вычисления матрицы Гессе функции f.
- argsкортеж, необязательный
Дополнительные аргументы, передаваемые в f, fprime, fhess_p и fhess (один и тот же набор дополнительных аргументов передаётся всем этим функциям).
- эпсилонfloat или ndarray, опционально
Если fhess аппроксимируется, используйте это значение для размера шага.
- callbackвызываемый объект, необязательный
Необязательная пользовательская функция, которая вызывается после каждой итерации. Вызывается как callback(xk), где xk — текущий вектор параметров.
- avextolfloat, опционально
Сходимость предполагается, когда средняя относительная ошибка в минимизаторе падает ниже этой величины.
- maxiterint, необязательный
Максимальное количество итераций для выполнения.
- full_outputbool, необязательно
Если True, возвращает дополнительные выходные данные.
- dispbool, необязательно
Если True, выводить сообщение о сходимости.
- retallbool, необязательно
Если True, возвращает список результатов на каждой итерации.
- c1float, по умолчанию: 1e-4
Параметр для правила условия Армихо.
- c2float, по умолчанию: 0.9
Параметр для правила условия кривизны
- fcallable
- Возвращает:
- xoptndarray
Параметры, минимизирующие f, т.е.,
f(xopt) == fopt.- foptfloat
Значение функции в xopt, т.е.,
fopt = f(xopt).- fcallsint
Количество выполненных вызовов функций.
- gcallsint
Количество вызовов градиента.
- hcallsint
Количество вызовов гессиана.
- warnflagint
Предупреждения, сгенерированные алгоритмом. 1 : Превышено максимальное количество итераций. 2 : Сбой поиска по линии (потеря точности). 3 : Обнаружен результат NaN.
- allvecslist
Результат на каждой итерации, если retall равен True (см. ниже).
Смотрите также
minimizeИнтерфейс к алгоритмам минимизации многомерных функций. См. 'Newton-CG' метод в частности.
Примечания
Только один из fhess_p или fhess должны быть заданы. Если fhess предоставляется, тогда fhess_p будет проигнорировано. Если ни fhess ни fhess_p предоставлен, то произведение гессиана будет аппроксимировано с использованием конечных разностей на fprime. fhess_p должен вычислять гессиан, умноженный на произвольный вектор. Если он не задан, используются конечные разности на fprime используются для вычисления его.
Методы Newton-CG также называются усеченными методами Ньютона. Эта функция отличается от scipy.optimize.fmin_tnc, потому что
- scipy.optimize.fmin_ncg написан полностью на Python с использованием NumPy
и scipy, в то время как scipy.optimize.fmin_tnc вызывает C-функцию.
- scipy.optimize.fmin_ncg предназначен только для безусловной минимизации
в то время как scipy.optimize.fmin_tnc предназначен для безусловной минимизации или минимизации с ограничениями типа "коробка". (Ограничения типа "коробка" задают нижние и верхние границы для каждой переменной отдельно.)
Параметры c1 и c2 должно удовлетворять
0 < c1 < c2 < 1.Ссылки
Wright & Nocedal, 'Численная оптимизация', 1999, стр. 140.