Мне нужно вычислить гессиан (матрицу вторых производных) и изменить его, если он не является положительно определенным.Разложение Холецкого не выполняется, если матрица не является симметричной положительной (полу) определенной, а гессианы симметричны.Поэтому я могу использовать numpy.linalg.cholesky
на своей матрице, и это, кажется, один из самых эффективных способов проверки.См. в этом сообщении, например .
. Теперь я не уверен, как выполнить условие, чтобы разложение Холецкого выполнялось без ошибок.Например
H=hessian(X)
if np.linalg.cholesky(H) ...??? :
'modification'