Каково ваше рабочее определение «положительный полуопределенный» или «положительно определенный»? В арифметике с плавающей запятой вам придется указать какой-то допуск для этого.
Вы можете определить это в терминах вычисленных собственных значений матрицы. Однако вы должны сначала заметить, что вычисленные собственные значения матрицы линейно масштабируются вместе с матрицей, так что, например, полученная мной матрица путем умножения на коэффициент в миллион, имеет собственные значения, умноженные на миллион. Является ли отрицательным собственным значением? Если все другие собственные значения вашей матрицы положительны и имеют порядок , то фактически равно 0 и не должно рассматриваться как отрицательное собственное значение. Поэтому важно учитывать масштабирование. λ = - 1,0 10 30 λ = - 1,0Aλ=−1.01030λ=−1.0
Разумный подход состоит в том, чтобы вычислить собственные значения вашей матрицы и объявить, что матрица является численно положительной полуопределенной, если все собственные значения больше, чемгде - наибольшее собственное значение. λ макс−ϵ|λmax|λmax
К сожалению, вычисление всех собственных значений матрицы занимает довольно много времени. Другой обычно используемый подход заключается в том, что симметричная матрица считается положительно определенной, если матрица имеет факторизацию Холецкого в арифметике с плавающей запятой. Вычисление факторизации Холецкого на порядок быстрее, чем вычисление собственных значений. Вы можете расширить это до положительной полуопределенности, добавив к матрице небольшое число, кратное единице. Опять же, есть проблемы с масштабированием. Один быстрый подход состоит в том, чтобы сделать симметричное масштабирование матрицы так, чтобы диагональные элементы были равны 1,0 и добавляли к диагонали перед вычислением факторизации Холецкого. ϵ
Вы должны быть осторожны с этим, потому что есть некоторые проблемы с подходом. Например, существуют обстоятельства, когда и положительно определены в том смысле, что они имеют факторизации Холецкого с плавающей запятой, но не имеет факторизации Холецкого. Таким образом, множество «факторизуемых положительно определенных матриц Холесского с плавающей запятой» не является выпуклым! B ( A + B ) / 2AB(A+B)/2