Обчислення визначника при розв’язуванні


11

Я вирішую для величезної розрідженої позитивної визначеної матриці методом спряженого градієнта (CG). Чи можна обчислити визначник за допомогою інформації, отриманої під час вирішення?A AАх=бАА


Чому ви хочете обчислити визначник? Такий результат, безумовно, буде або переливом, або переливом для величезної матриці в будь-якому випадку. Я був би більш благодійним, якби ви попросили обчислити номер умови, але не витрачайте час на визначник!

Ви, мабуть, це вже знаєте, але значення Рітца під час процесу спряженого градієнта сходяться до власних значень матриці, і ви можете отримати прості оцінки для детермінанта.
шухало

Відповіді:


10

Обчислення детермінанта розрідженої матриці, як правило, настільки ж дороге, як і безпосередньо рішення, і я скептично налаштований, що CG допоможе в її обчисленні. Можна було б запустити CG для ітерацій (де A дорівнює n × n ), щоб генерувати інформацію для всього спектру A , а потім обчислити визначник як добуток власних значень, але це було б і повільно, і чисельно нестабільний.нАн×нА

Було б кращою ідеєю обчислити розріджену пряму Чолеського факторизацію вашої матриці, скажімо, , де L нижньо-трикутна. Тоді det ( A ) = det ( L ) det ( L H ) = | det ( L ) | 2 , де det ( L ) - просто добуток діагональних записів нижньо-трикутної матриці L, оскільки власне значення трикутної матриці лежать уздовж її діагоналі.А=LLНL

det(А)=det(L)det(LН)=|det(L)|2,
det(L)L

У випадку загальної несингулярної матриці слід скористатися поворотним розкладанням LU, скажімо, , де P - матриця перестановки, так що det ( A ) = det ( P - 1 ) det ( L ) det ( U ) . Оскільки P - матриця перестановки, det ( P ) = ± 1 , а за побудовою LПА=LUП

det(А)=det(П-1)det(L)det(U).
Пdet(П)=±1Lзазвичай буде мати діагональ всіх, що означає, що . Таким чином, ви можете обчислити det ( A ) як ± det ( U ) і знову визнати, що визначником трикутної матриці є просто добуток її діагональних записів. Таким чином, вартість обчислення визначника по суті є справедливою для факторизації.det(L)=1det(А)±det(U)

А106х106

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

Дякуємо за швидку відповідь та відповідь. На жаль, матриця не має сцизіальної структури (що дозволило б легко факторизувати).
Мануель Шмідт

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

Це частина складної функції розподілу ймовірностей, а не лише константа нормалізації. Я знаю, що дистрибуції можуть бути враховані (і це те, що ми робимо на даний момент), але у нас є багато даних для моделювання, і кожен з факторів стає величезним.
Мануель Шмідт

6

АБтьмянийАтьмянийБтьмянийБ=

БАБАБdetАdetБАБ

detА=j=1тьмянийАλi(А)j=1тьмянийАλi(Б)j=тьмянийА+1тьмянийБλi(Б)
БАтьмянийБ=detАdetБ

Виявляється, існують наші справді красиві та практичні алгоритми, які передбачають обчислення значних визначників. Перевірте www-m3.ma.tum.de/foswiki/pub/M3/Allgemeines/…
Метт Кпліпі

2

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

АА

Ви, напевно, можете інженером, як ця оцінка детермінанти виходить у стандартній реалізації КГ, дотримуючись уважно Розділ 6.7.3 книги.


2

гет(А)=i=1нαк-1,
αк=rкТrкpкТАpкrк0к=1,,нRrкПpк
pк=-rк+i=1к-1γiri.
гет(П)=(-1)нгет(R)rкpкА
к=1нαк=к=1нrкТrкpкТАpк=гет(RТR)гет(ПТАП)=гет(RТR)гет(А)гет(ПТП)=(гет(А))-1.
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.