Я вирішую для величезної розрідженої позитивної визначеної матриці методом спряженого градієнта (CG). Чи можна обчислити визначник за допомогою інформації, отриманої під час вирішення?A A
Я вирішую для величезної розрідженої позитивної визначеної матриці методом спряженого градієнта (CG). Чи можна обчислити визначник за допомогою інформації, отриманої під час вирішення?A A
Відповіді:
Обчислення детермінанта розрідженої матриці, як правило, настільки ж дороге, як і безпосередньо рішення, і я скептично налаштований, що CG допоможе в її обчисленні. Можна було б запустити CG для ітерацій (де A дорівнює n × n ), щоб генерувати інформацію для всього спектру A , а потім обчислити визначник як добуток власних значень, але це було б і повільно, і чисельно нестабільний.
Було б кращою ідеєю обчислити розріджену пряму Чолеського факторизацію вашої матриці, скажімо, , де L нижньо-трикутна. Тоді det ( A ) = det ( L ) det ( L H ) = | det ( L ) | 2 , де det ( L ) - просто добуток діагональних записів нижньо-трикутної матриці L, оскільки власне значення трикутної матриці лежать уздовж її діагоналі.
У випадку загальної несингулярної матриці слід скористатися поворотним розкладанням LU, скажімо, , де P - матриця перестановки, так що det ( A ) = det ( P - 1 ) ⋅ det ( L ) ⋅ det ( U ) . Оскільки P - матриця перестановки, det ( P ) = ± 1 , а за побудовою L
Не вникаючи (знову) в те, чому і як детермінанти є злими, припустимо, що ваш оператор або не є легко факторним чи просто не доступний як матриця і що вам дійсно потрібно оцінити його детермінант.
Ви, напевно, можете інженером, як ця оцінка детермінанти виходить у стандартній реалізації КГ, дотримуючись уважно Розділ 6.7.3 книги.