У меня есть список симметричных матриц, которые мне нужно проверить на положительную полуопределенность (т.е. их собственные значения неотрицательны).
Приведенный выше комментарий подразумевает, что это можно сделать, рассчитав соответствующие собственные значения и проверив, являются ли они неотрицательными (возможно, придется позаботиться об ошибках округления).
Вычисление собственных значений довольно дорого в моем сценарии, но я заметил, что библиотека, которую я использую, имеет довольно быстрый тест на положительную определенность (то есть, если собственные значения матрицы строго положительны).
Следовательно, идея состоит в том, что с учетом матрицы можно проверить, является ли положительно определенным. Если это не так, то не является положительно-полуопределенным, в противном случае можно вычислить собственные значения чтобы убедиться, что оно действительно положительно-полуопределено. B + ϵ I B B
Мой вопрос сейчас:
Существует ли более прямой и эффективный способ проверки, является ли матрица положительной полуопределенной, при условии, что дан эффективный тест на положительную определенность?
источник
Ответы:
Каково ваше рабочее определение «положительный полуопределенный» или «положительно определенный»? В арифметике с плавающей запятой вам придется указать какой-то допуск для этого.
Вы можете определить это в терминах вычисленных собственных значений матрицы. Однако вы должны сначала заметить, что вычисленные собственные значения матрицы линейно масштабируются вместе с матрицей, так что, например, полученная мной матрица путем умножения на коэффициент в миллион, имеет собственные значения, умноженные на миллион. Является ли отрицательным собственным значением? Если все другие собственные значения вашей матрицы положительны и имеют порядок , то фактически равно 0 и не должно рассматриваться как отрицательное собственное значение. Поэтому важно учитывать масштабирование. λ = - 1,0 10 30 λ = - 1,0A λ=−1.0 1030 λ=−1.0
Разумный подход состоит в том, чтобы вычислить собственные значения вашей матрицы и объявить, что матрица является численно положительной полуопределенной, если все собственные значения больше, чемгде - наибольшее собственное значение. λ макс−ϵ|λmax| λmax
К сожалению, вычисление всех собственных значений матрицы занимает довольно много времени. Другой обычно используемый подход заключается в том, что симметричная матрица считается положительно определенной, если матрица имеет факторизацию Холецкого в арифметике с плавающей запятой. Вычисление факторизации Холецкого на порядок быстрее, чем вычисление собственных значений. Вы можете расширить это до положительной полуопределенности, добавив к матрице небольшое число, кратное единице. Опять же, есть проблемы с масштабированием. Один быстрый подход состоит в том, чтобы сделать симметричное масштабирование матрицы так, чтобы диагональные элементы были равны 1,0 и добавляли к диагонали перед вычислением факторизации Холецкого.ϵ
Вы должны быть осторожны с этим, потому что есть некоторые проблемы с подходом. Например, существуют обстоятельства, когда и положительно определены в том смысле, что они имеют факторизации Холецкого с плавающей запятой, но не имеет факторизации Холецкого. Таким образом, множество «факторизуемых положительно определенных матриц Холесского с плавающей запятой» не является выпуклым! B ( A + B ) / 2A B (A+B)/2
источник
Керр, TH, « Матрицы тестирования на определенность и примеры применения, которые порождают потребность », AIAA Journal of Guidance , Control and Dynamics, Vol. 10, № 5, с. 503-506, сентябрь-октябрь 1987 г.
Керр, TH, « О искажениях теста для положительных полуопределенных матриц », AIAA Journal of Guidance, Control and Dynamics , Vol. 13, № 3, с. 571-572, май-июнь. 1990. (как это происходило в ПО Navigation & Target Tracking в 1970-х и 1980-х годах с использованием контрпримеров)
Керр, TH, « Ошибки в вычислительном тестировании матричной положительной определенности / полуопределенности », IEEE Transactions on Aerospace and Electronic Systems , Vol. 26, No. 2, pp. 415-421, Mar. 1990. [Перечисляет ошибочные алгоритмы, которые автор обычно обнаруживал в подводном навигационном и военном программном обеспечении ВМС США в конце 1970-х и начале 1980-х годов, используя контрпримеры, чтобы указать на проблемы. ]
источник