Проверка, является ли матрица положительной полуопределенной


11

У меня есть список симметричных матриц, которые мне нужно проверить на положительную полуопределенность (т.е. их собственные значения неотрицательны).L

Приведенный выше комментарий подразумевает, что это можно сделать, рассчитав соответствующие собственные значения и проверив, являются ли они неотрицательными (возможно, придется позаботиться об ошибках округления).

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

Следовательно, идея состоит в том, что с учетом матрицы можно проверить, является ли положительно определенным. Если это не так, то не является положительно-полуопределенным, в противном случае можно вычислить собственные значения чтобы убедиться, что оно действительно положительно-полуопределено. B + ϵ I B BBLB+ϵIBB

Мой вопрос сейчас:

Существует ли более прямой и эффективный способ проверки, является ли матрица положительной полуопределенной, при условии, что дан эффективный тест на положительную определенность?


1
Тест, который вы заметили в библиотеке, скорее всего, основан на предположении, что симметричная вещественная матрица положительно определена тогда и только тогда, когда каждый ведущий второстепенный принцип дает положительную детерминанту, что можно проверить путем исключения без точного арифметического вычисления. Тонкая трудность распространения этого на полуопределенный случай заманила многих авторов в искажение. Я знаю, что тема была затронута в вопросе Math.SE, поэтому я постараюсь предоставить ссылку. A
суровый


1
Для этих более знающих людей - будет ли работать сдвиг спектра на положительный, добавив для большого , затем найти минимальное собственное значение сдвинутой системы (например, с обратной итерацией), затем проверьте, является ли наименьшее собственное значение из сдвинутая система меньше, чем сдвиг ? Сдвиг может быть, например, самым большим по величине собственным значением, которое может быть найдено быстро. C C CB+cIccc
Ник Алджер

Да, вы можете сдвинуть собственные значения и вычислить наименьшее собственное значение, но у вас все еще есть проблема установки некоторого допуска для того, что вы примете (и обеспечения того, чтобы ваши собственные значения вычислялись, по крайней мере, до такого допуска!)
Брайан Борчерс

Не уверен, будет ли это полезно, но учтите, что, как только вы узнаете, что матрица не является положительно определенной, чтобы проверить, является ли она положительной полуопределенной, вам просто нужно проверить, не является ли ее ядро ​​непустым.
Абель Молина

Ответы:


20

Каково ваше рабочее определение «положительный полуопределенный» или «положительно определенный»? В арифметике с плавающей запятой вам придется указать какой-то допуск для этого.

Вы можете определить это в терминах вычисленных собственных значений матрицы. Однако вы должны сначала заметить, что вычисленные собственные значения матрицы линейно масштабируются вместе с матрицей, так что, например, полученная мной матрица путем умножения на коэффициент в миллион, имеет собственные значения, умноженные на миллион. Является ли отрицательным собственным значением? Если все другие собственные значения вашей матрицы положительны и имеют порядок , то фактически равно 0 и не должно рассматриваться как отрицательное собственное значение. Поэтому важно учитывать масштабирование. λ = - 1,0 10 30 λ = - 1,0Aλ=1.01030λ=1.0

Разумный подход состоит в том, чтобы вычислить собственные значения вашей матрицы и объявить, что матрица является численно положительной полуопределенной, если все собственные значения больше, чемгде - наибольшее собственное значение. λ максϵ|λmax|λmax

К сожалению, вычисление всех собственных значений матрицы занимает довольно много времени. Другой обычно используемый подход заключается в том, что симметричная матрица считается положительно определенной, если матрица имеет факторизацию Холецкого в арифметике с плавающей запятой. Вычисление факторизации Холецкого на порядок быстрее, чем вычисление собственных значений. Вы можете расширить это до положительной полуопределенности, добавив к матрице небольшое число, кратное единице. Опять же, есть проблемы с масштабированием. Один быстрый подход состоит в том, чтобы сделать симметричное масштабирование матрицы так, чтобы диагональные элементы были равны 1,0 и добавляли к диагонали перед вычислением факторизации Холецкого. ϵ

Вы должны быть осторожны с этим, потому что есть некоторые проблемы с подходом. Например, существуют обстоятельства, когда и положительно определены в том смысле, что они имеют факторизации Холецкого с плавающей запятой, но не имеет факторизации Холецкого. Таким образом, множество «факторизуемых положительно определенных матриц Холесского с плавающей запятой» не является выпуклым! B ( A + B ) / 2AB(A+B)/2


Не могли бы вы уточнить этот последний абзац или опубликовать ссылку на источник? Это довольно странно.
Даниэль Шаперо

1
Классическая ссылка на это масштабирование - A. van der Slui. Числа условий и уравновешивание матриц Numerische Mathematik 14 (1): 14-23, 1969. Это также обсуждается в учебниках, таких как Голуб и Ван Лоан. Бит в последнем абзаце взят из личного опыта поиска строк кода в полуопределенном программном коде - я сталкивался с ситуациями, когда и имеют разложения Холецкого по LAPACK, но не имеет факторизации Холецкого согласно LAPACK. Подобные проблемы начинают возникать, когда вы почти одиноки. X + α Δ X X + 0,95 α Δ XXX+αΔXX+0.95αΔX
Брайан Борчерс

Также нередко обнаруживается, что некоторые матрицы могут быть вычислены по Холески с расширенной или четырехкратной точностью, но не с обычной арифметикой с плавающей запятой или с одинарной точностью.
Брайан Борчерс

3
Некоторые из первично-двойных кодов внутренних точек для SDP (CSDP, SDPT3, SDPA) всегда возвращают матрицы, которые являются положительно определенными и имеют факторизации Холецкого, в то время как другой популярный решатель (SeDuMi) использует разложение по собственным значениям и возвращает решения, которые имеют очень маленькие отрицательные значения. собственные значения.
Брайан Борчерс

3

4
Похоже, что имя пользователя в значительной степени раскрывает отношения между автором ответа и автором статей. Немного больше информации о том, что содержится в статье, было бы неплохо; хотя, в любом случае, это очень интересный и актуальный для вопросов список документов!
Антон Меньшов
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.