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