Вычисление определителя при решении


11

Я решаю для огромной разреженной положительно определенной матрицы используя метод сопряженного градиента (CG). Можно вычислить детерминант А, используя информацию, полученную в ходе решения?AAИксзнак равнобAA


Почему вы хотите вычислить определитель? Такой результат наверняка будет либо недостаточным, либо переполнением для огромной матрицы в любом случае. Я был бы более благотворительным, если бы вы попросили вычислить номер условия, но не тратьте свое время на определитель!

Вы, вероятно, уже знаете это, но значения Ритца в процессе сопряженного градиента сходятся к собственным значениям матрицы, и из этого можно вывести простые оценки для определителя.
Шухало

Ответы:


10

Вычисление детерминанта разреженной матрицы обычно так же дорого, как и прямое решение, и я скептически отношусь к тому, что CG очень поможет в ее вычислении. Можно было бы запустить CG для итераций (где A - n × n ), чтобы сгенерировать информацию для всего спектра A , а затем вычислить определитель как произведение собственных значений, но это будет как медленно, так и численно нестабильный.NAN×NA

Лучше было бы вычислить разреженную факторизацию Холецкого вашей матрицы, скажем, , где L - нижнетреугольная. Тогда det ( A ) = det ( L ) det ( L H ) = | дет ( L ) | 2 , где det ( L ) является просто произведением диагональных элементов нижней треугольной матрицы L, поскольку собственные значения треугольной матрицы лежат вдоль ее диагонали.Aзнак равноLLЧАСL

йе(A)знак равнойе(L)йе(LЧАС)знак равно|йе(L)|2,
йе(L)L

В случае общей неособой матрицы следует использовать развернутое LU-разложение, скажем, , где P - матрица перестановок, так что det ( A ) = det ( P - 1 ) det ( L) ) дет ( U ) . Поскольку P - матрица перестановок, det ( P ) = ± 1 и, по построению, LпAзнак равноLUп

йе(A)знак равнойе(п-1)йе(L)йе(U),
пйе(п)знак равно±1Lбудет обычно иметь диагональ всех единиц, что означает, что . Таким образом, вы можете вычислить det ( A ) как ± det ( U ) и снова признать, что определитель треугольной матрицы является просто произведением ее диагональных элементов. Таким образом, стоимость вычисления детерминанта, по сути, равна стоимости факторизации.йе(L)знак равно1йе(A)±йе(U)

A106Икс106

@ManuelSchmidt Разреженные матрицы такого размера, возникающие в результате дискретизации типа конечных элементов, обычно могут быть легко учтены, например, мультифронтальными методами. Я согласен, что факторизацию Холецкого следует использовать, если ваша матрица HPD (и обобщение моего рассуждения очевидно).
Джек Полсон

Спасибо за ваш быстрый ответ и ответ. К сожалению, матрица не имеет специальной структуры (что позволило бы легко факторизовать).
Мануэль Шмидт

2
Мне любопытно, почему вам нужно вычислить определитель матрицы. Являются ли самые высокие и самые низкие собственные значения недостаточными?
Джек Полсон

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

6

AВтусклыйA«тусклыйВтусклыйВзнак равно

ВAВAВйеAйеВAВ

йеAзнак равноΠJзнак равно1...тусклыйAλя(A)ΠJзнак равно1...тусклыйAλя(В)ΠJзнак равнотусклыйA+1...тусклыйВλя(В)
ВAтусклыйВзнак равнойеAйеВ

Оказывается, есть некоторые действительно красивые и практичные алгоритмы, которые включают вычисление значительных определителей. Проверьте www-m3.ma.tum.de/foswiki/pub/M3/Allgemeines/…
Мэтт Кнепли

2

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

AA

Вы можете, вероятно, перепроектировать, как эта оценка детерминанта происходит в стандартной реализации CG, следуя внимательно Разделу 6.7.3 книги.


2

dеT(A)знак равноΠязнак равно1NαК-1,
αКзнак равнорКTрКпКTAпКрК0Кзнак равно1,...,NррКпpК
пКзнак равно-рК+Σязнак равно1К-1γяря,
dеT(п)знак равно(-1)NdеT(р)рКпКA
ΠКзнак равно1NαКзнак равноΠКзнак равно1NрКTрКпКTAпКзнак равноdеT(рTр)dеT(пTAп)знак равноdеT(рTр)dеT(A)dеT(пTп)знак равно(dеT(A))-1,
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.