18.1 Методы, используемые для линейной алгебры ¶
Octave включает полиморфный решатель, который выбирает подходящий метод разложения матрицы в зависимости от свойств самой матрицы. Как правило, стоимость определения типа матрицы невелика по сравнению со стоимостью фактического разложения матрицы. В любом случае тип матрицы кэшируется после его вычисления, чтобы он не пересчитывался каждый раз при использовании в линейном уравнении.
Дерево выбора решения линейного уравнения или построения обратной матрицы представлено следующим образом:
- Если матрица является верхней или нижней треугольной разреженной, используется прямой или обратный ход с помощью функции LAPACK xTRTRS, и переходим к пункту 4.
- Если матрица квадратная, эрмитова с действительной положительной диагональю, попробуйте разложение Холецкого с помощью функции LAPACK xPOTRF.
- Если разложение Холецкого потерпело неудачу или матрица не эрмитова с действительной положительной диагональю, и матрица квадратная, выполните разложение с помощью функции LAPACK xGETRF.
- Если матрица не квадратная или любой из предыдущих решателей отмечает сингулярную или почти сингулярную матрицу, найдите решение методом наименьших квадратов с помощью функции LAPACK xGELSD.
Пользователь может принудительно задать тип матрицы с помощью функции matrix_type. Это позволяет избежать затрат на определение типа матрицы. Однако следует отметить, что неправильная идентификация типа матрицы может привести к непредсказуемым результатам, поэтому следует использовать matrix_type с осторожностью.
Следует отметить, что проверка, является ли матрица кандидатом для разложения Холецкого, выполненная выше, и функцией matrix_type, не гарантирует, что матрица эрмитова. Однако попытка разложить матрицу быстро обнаружит неэрмитовую матрицу.
© 1996–2023 The Octave Project Developers
Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice are preserved on all copies.
Permission is granted to copy and distribute modified versions of this manual under the conditions for verbatim copying, provided that the entire resulting derived work is distributed under the terms of a permission notice identical to this one.Permission is granted to copy and distribute translations of this manual into another language, under the above conditions for modified versions.
https://docs.octave.org/v9.2.0/Techniques-Used-for-Linear-Algebra.html