18.1 Методы, используемые для линейной алгебры
Octave включает полиморфный решатель, который выбирает подходящий разложение матрицы в зависимости от свойств самой матрицы. Как правило, стоимость определения типа матрицы невелика по сравнению со стоимостью факторизации самой матрицы. В любом случае тип матрицы кэшируется после его вычисления, чтобы он не определялся заново каждый раз, когда он используется в линейном уравнении.
Дерево выбора того, как решается линейное уравнение или формируется обратная матрица, задается следующим образом:
- Если матрица является верхнетреугольной или нижнетреугольной разреженной, используйте прямую или обратную подстановку, используя функцию LAPACK xTRTRS, и перейдите к шагу 4.
- Если матрица квадратная, эрмитова с вещественной положительной диагональю, попробуйте факторизацию Холецкого, используя функцию LAPACK xPOTRF.
- Если факторизация Холецкого не удалась или матрица не эрмитова с вещественной положительной диагональю, и матрица квадратная, выполните факторизацию, используя функцию LAPACK xGETRF.
- Если матрица не квадратная или любой из предыдущих решателей отмечает сингулярную или почти сингулярную матрицу, найдите решение методом наименьших квадратов, используя функцию LAPACK xGELSD.
Пользователь может принудительно задать тип матрицы с помощью функции matrix_type. Это позволяет избежать затрат на определение типа матрицы. Однако следует отметить, что некорректное определение типа матрицы приведет к непредсказуемым результатам, поэтому функцию matrix_type следует использовать с осторожностью.
Следует отметить, что проверка на то, является ли матрица кандидатом для факторизации Холецкого, выполненная выше, и функцией matrix_type, не гарантирует, что матрица является эрмитовой. Однако попытка факторизации матрицы быстро обнаружит неэрмитову матрицу.
© 1996–2022 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/v5.2.0/Techniques-Used-for-Linear-Algebra.html