Инвертирование маленькой матрицы

У меня есть фрагмент кода на Fortran 90, в котором я должен решить как нелинейную (для которой я должен инвертировать матрицу Якоби), так и линейную систему уравнений. Когда я говорю «маленький», я имею в виду n неизвестных для обеих операций с n ‹= 4. К сожалению, n неизвестно a priori. Как вы думаете, какой вариант лучший?

Я подумал написать явные формулы для случаев с n = 1,2 и использовать другие методы для n = 3,4 (например, некоторые функции библиотек Intel MKL) для ради производительности. Разумно ли это, или мне следует написать явные формулы для обратной матрицы также для n = 3,4?


person user2078621    schedule 24.09.2015    source источник
comment
Если «лучший» означает «самый быстрый», возможно, явные формулы. Чтобы получить количественный результат, вам просто нужно протестировать. Связано: stackoverflow.com/questions/1148309/inverting- a-4x4-матрица? rq = 1   -  person xebtl    schedule 24.09.2015
comment
Да, я имел в виду самый быстрый. Немного погуглив, я не совсем уверен, что явные формулы всегда лучше. Я пытался найти сравнительную таблицу производительности для последней версии MKL применительно к небольшой матрице, но безуспешно. Так что тестирование, вероятно, единственный вариант для n = 3,4   -  person user2078621    schedule 24.09.2015
comment
Это часть анализа методом конечных элементов, возможно, с сотнями тысяч элементов, с, скажем, 8 точками интеграции каждая, и он вызывается один раз за итерацию для каждой точки интеграции для каждого элемента, так что да, он вызывается много-много раз, верно. У меня вопрос о производительности. Есть ли какой-либо метод быстрее, чем решение явных выражений для n = _3,4_? Спасибо за ответы.   -  person user2078621    schedule 24.09.2015
comment
Часто вам нужна не инвертированная матрица, а разложение LU или что-то еще. Думаю, было бы разумнее спросить на scicomp.stackexchange.com, где встречаются многие специалисты по числовой линейной алгебре. Ваша проблема на самом деле не связана с Fortran, вам нужен лучший алгоритм.   -  person Vladimir F    schedule 24.09.2015
comment
Я голосую за то, чтобы закрыть этот вопрос как не по теме, потому что он лучше подходит для научных вычислений scicomp.stackexchange.com, и теперь его задали там как scicomp.stackexchange.com/ вопросы / 20812 /.   -  person Vladimir F    schedule 24.09.2015
comment
Согласно этой странице, похоже, используются явные обратные формулы для очень маленьких матриц ( максимум 4х4). Некоторые связанные страницы: stackoverflow.com/questions/18553210/ scicomp.stackexchange.com/questions/3262/ stackoverflow.com/questions/32720478/   -  person roygvib    schedule 24.09.2015