scipy.optimize.

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

Параметр для правила условия кривизны

Возвращает:
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, потому что

  1. scipy.optimize.fmin_ncg написан полностью на Python с использованием NumPy

    и scipy, в то время как scipy.optimize.fmin_tnc вызывает C-функцию.

  2. scipy.optimize.fmin_ncg предназначен только для безусловной минимизации

    в то время как scipy.optimize.fmin_tnc предназначен для безусловной минимизации или минимизации с ограничениями типа "коробка". (Ограничения типа "коробка" задают нижние и верхние границы для каждой переменной отдельно.)

Параметры c1 и c2 должно удовлетворять 0 < c1 < c2 < 1.

Ссылки

Wright & Nocedal, 'Численная оптимизация', 1999, стр. 140.