Выходы Гессиана

fminunc и fmincon решатели возвращают приблизительный Гессиан как необязательный выход.

[x,fval,exitflag,output,grad,hessian] = fminunc(fun,x0)
% or
[x,fval,exitflag,output,lambda,grad,hessian] = fmincon(fun,x0,A,b,Aeq,beq,lb,ub,nonlcon)

В этой теме описывается смысл возвращенного Гессиана, и точность, которую вы можете ожидать.

Можно также задать тип Гессиана, который решатели используют в качестве входных аргументов Гессиана. Для fminunc, см. «Включая градиентов и гессиан». Для fmincon, смотрите Гессиан как Вход.

fminunc Мешковина

Гессиан для задачи без ограничений является матрицей вторых производных целевой функции f:

Hessian Hij=2fxixj.

  • Алгоритм Квази-Ньютона - fminunc возвращает предполагаемую матрицу Гессия в решении. fminunc вычисляет оценку по конечным различиям, поэтому оценка в целом точна.

  • Алгоритм доверительной области - fminunc возвращает матрицу Гессия в итерации «следующий к последнему».

    • Если вы поставляете Гессиана в целевой функции и устанавливаете HessianFcn опция для 'objective', fminunc возвращает этого Гессиана.

    • Если вы поставляете HessianMultiplyFcn функция, fminunc возвращает Hinfo матрица из HessianMultiplyFcn функция. Для получения дополнительной информации смотрите HessianMultiplyFcn в trust-region раздел fminunc options таблица.

    • В противном случае, fminunc возвращает приближение из разреженного алгоритма конечного различия на градиентах.

    Этот Гессиан точен для следующего-последнего итерата. Однако следующая итерация может оказаться не близкой к конечной точке.

    The trust-region алгоритм возвращает Hessian при следующей до последней итерации эффективности. fminunc использует Гессиан внутренне, чтобы вычислить его следующий шаг. Когда fminunc достигает условия остановки, ему не нужно вычислять следующий шаг и, следовательно, не вычисляет Гессиан.

fmincon Мешковина

Гессиан для ограниченной задачи является Гессиан Лагранжа. Для f целевой функции, нелинейного вектора c ограничения неравенства и нелинейного вектора ceq ограничения равенства, Лагранжиан является

L=f+iλici+jλjceqj.

λi являются множителями Лагранжа; см. Меры оптимальности первого порядка и структуры множителя Лагранжа. Гессиан Лагрангиан есть

H=2L=2f+iλi2ci+jλj2ceqj.

fmincon имеет несколько алгоритмов с несколькими опциями для Гессианов, как описано в fmincon Trust Region Reflective Algorithm, fmincon Active Set Algorithm и fmincon Interior Point Algorithm.

  • active-set, sqp, или sqp-legacy Алгоритм - fmincon возвращает Гессианское приближение, которое он вычисляет при следующей до последней итерации. fmincon вычисляет квазиньютоновское приближение матрицы Гессия в решении в ходе его итераций. В целом это приближение не совпадает с истинным Гессианом в каждом компоненте, а только в определенных подпространствах. Поэтому Гессиан вернулся fmincon может быть неточным. Для получения дополнительной информации о active-set вычисление, см. «Реализация SQP».

  • trust-region-reflective Алгоритм - fmincon возвращает Гессиан, который он вычисляет при следующей до последней итерации.

    • Если вы поставляете Гессиана в целевой функции и устанавливаете HessianFcn опция для 'objective', fmincon возвращает этого Гессиана.

    • Если вы поставляете HessianMultiplyFcn функция, fmincon возвращает Hinfo матрица из HessianMultiplyFcn функция. Для получения дополнительной информации см. Trust- Области Отражающий Алгоритм вfmincon options.

    • В противном случае, fmincon возвращает приближение из разреженного алгоритма конечного различия на градиентах.

    Этот Гессиан точен для следующего-последнего итерата. Однако следующая итерация может оказаться не близкой к конечной точке.

    The trust-region-reflective алгоритм возвращает Hessian при следующей до последней итерации эффективности. fmincon использует Гессиан внутренне, чтобы вычислить его следующий шаг. Когда fmincon достигает условия остановки, ему не нужно вычислять следующий шаг и, следовательно, не вычисляет Гессиан.

  • interior-point Алгоритм

    • Если на HessianApproximation опция 'lbfgs' или 'finite-difference', или если вы поставляете HessianMultiplyFcn функция, fmincon возвращает [] для Гессиана.

    • Если на HessianApproximation опция 'bfgs' (по умолчанию), fmincon возвращает квазиньютоновское приближение к Гессиану в конечной точке. Этот Гессиан может быть неточным, подобным active-set или sqp алгоритм Гессиана.

    • Если на HessianFcn опция является указателем на функцию, fmincon возвращает эту функцию в качестве Гессиана в конечной точке.

Похожие темы