Лапак призывает инвертировать матрицу
-
16-09-2019 - |
Вопрос
Насколько я понимаю, требуется разложение/факторизация (LU, QR, Холески и т. д.), а затем обратный матричный расчет на основе факторизации.Есть ли другие способы обойти это (я пытаюсь выяснить, смогу ли я использовать 6 функций, предоставляемых бесплатно в пробной версии CULAинструменты)?Заранее спасибо за комментарии.
Решение
Конечно, найдите матрицу адъюгата;это простой способ инвертировать небольшие матрицы.Матрица сопряжения — это просто транспонирование матрицы сомножителей, а обратная квадратная матрица — это просто сопряжение, разделенное на (скалярный) определитель.Посмотрите эти термины в Википедии, если они вам не знакомы.
Если вы работаете с большими матрицами, я бы купил пакет.
Павел
Другие советы
Подпрограммы LAPACK, которые вычисляют обратную матрицу: xyyTRI
, где x
указывает тип данных («S» для вещественного числа одинарной точности, «D» для вещественного числа двойной точности, «C» для комплексного значения одинарной точности и «Z» для комплексного значения двойной точности) и yy
указывает тип матрицы («GE» для общего случая несимметричных матриц;для других типов матриц существует более 20 других двухбуквенных кодов).Для матриц с действительным знаком вы обычно используете DGETRI
, а для матриц с комплексными значениями вы обычно используете ZGETRI
.