Есть ли быстрый способ инвертировать матрицу в Matlab?

У меня есть много больших (около 5000 x 5000) матриц, которые мне нужно инвертировать в Matlab. На самом деле мне нужна инверсия, поэтому я не могу использовать вместо нее mldivide, который намного быстрее решает Ax = b только для одного b.

Мои матрицы связаны с проблемой, которая означает, что у них есть несколько хороших свойств. Во-первых, их определитель равен 1, поэтому они определенно обратимы. Однако их нельзя диагонализовать, иначе я бы попытался их диагонализировать, перевернуть, а затем вернуть обратно. Все их записи - действительные числа (на самом деле рациональные).

Я использую Matlab для получения этих матриц и для всего этого, что мне нужно сделать с их обратными, поэтому я предпочел бы способ ускорить Matlab. Но если я могу использовать другой язык, который будет быстрее, то, пожалуйста, дайте мне знать. Я не знаю много других языков (немного, кроме C, и немного, кроме Java), поэтому, если это действительно сложно на каком-то другом языке, я, возможно, не смогу его использовать. Пожалуйста, предложите его на всякий случай.

13
задан Daniel 4 July 2011 в 23:33
поделиться