Почему Matlab inv медленный и неточный?

Я читал в нескольких местах (в документе и в этом сообщении в блоге: http://blogs.mathworks.com/loren/2007/05/16/purpose-of-inv/), что использование inv в Matlab не рекомендуется, потому что он медленный и неточный.

Я пытаюсь найти причину этой неточности. На данный момент Google не дал интересного результата, поэтому я думал, что кто-то здесь может мне помочь.

Спасибо!

Ответ 1

Неточность, о которой я упоминал, связан с методом INV, а не с внедрением MATLAB. Вы должны использовать QR, LU или другие методы для решения систем уравнений, поскольку эти методы обычно не требуют возведения в квадрат числа условий рассматриваемой системы. Использование inv обычно требует операции, которая теряет точность путем возведения в квадрат номера условия исходной системы.

- Loren

Ответ 2

Я думаю, что в блоге Лорена не так, что функция MATLAB inv особенно медленнее или более неточна, чем любая другая численная реализация вычисления обратной матрицы; скорее, в большинстве случаев обратный сам по себе не нужен, и вы можете действовать другими способами (например, решать линейную систему, используя \ - оператор обратной косой черты, а не вычислять обратный).

Ответ 3

inv(), конечно, медленнее, чем \, если у вас нет нескольких векторов правой стороны для решения. Тем не менее, рекомендации MathWorks относительно неточности обусловлены чрезмерно консервативной оценкой результата численной линейной алгебры. Другими словами, inv() НЕ является неточным. Далее ссылка развивается: http://arxiv.org/abs/1201.6035

Несколько широко используемых учебников заставляют читателя поверить, что решение линейной системы уравнений Ax = b путем умножения вектора b на вычисленный обратный inv (A) является неточным. Практически все другие учебники по численному анализу и численной линейной алгебре советуют не использовать вычисляемые обратные, не указывая, является ли это точной или нет. Фактически, при разумных предположениях о том, как вычисляется обратное, x = inv (A) * b так же точно, как решение, рассчитанное лучшими устойчивыми к обратному решению.