Линейная алгебра
Разложения матриц
Разложения матриц (также известные как разложения матриц) вычисляют разложение матрицы в произведение матриц и являются одним из центральных понятий линейной алгебры.
В следующей таблице обобщены типы разложений матриц, реализованные в Julia. Подробное описание связанных методов можно найти в разделе Линейная алгебра документации стандартной библиотеки.
Cholesky | Разложение Холецкого |
CholeskyPivoted | Разложение Холецкого с выбором опорного элемента |
LU | Разложение LU |
LUTridiagonal | Разложение LU для треугольных матриц |
UmfpackLU | Разложение LU для разреженных матриц (вычисляется UMFPack) |
QR | Разложение QR |
QRCompactWY | Компактная форма QR в виде WY |
QRPivoted | Разложение QR с выбором опорного элемента |
Hessenberg | Разложение в верхнегессенберговую форму |
Eigen | Спектральное разложение |
SVD | Разложение по сингулярным значениям (SVD) |
GeneralizedSVD | Обобщенное SVD |
Специальные матрицы
Матрицы со специальными симметриями и структурами часто встречаются в линейной алгебре и часто связаны с различными разложениями матриц. Julia предлагает богатый набор типов специальных матриц, которые позволяют быстро выполнять вычисления со специализированными процедурами, разработанными для конкретных типов матриц.
В следующих таблицах обобщены типы специальных матриц, реализованных в Julia, а также доступность связей к различным оптимизированным методам для них в LAPACK.
Hermitian | Эрмитова матрица |
UpperTriangular | Верхняя треугольная матрица |
LowerTriangular | Нижняя треугольная матрица |
Tridiagonal | Трехдиагональная матрица |
SymTridiagonal | Симметричная трехдиагональная матрица |
Bidiagonal | Верхняя/нижняя двухдиагональная матрица |
Diagonal | Диагональная матрица |
UniformScaling | Матрица равномерного масштабирования |
Элементарные операции
| Тип матрицы | + | - | * | \ | Другие функции с оптимизированными методами |
|---|---|---|---|---|---|
Hermitian | MV |
inv(), sqrtm(), expm()
| |||
UpperTriangular | MV | MV |
inv(), det()
| ||
LowerTriangular | MV | MV |
inv(), det()
| ||
SymTridiagonal | M | M | MS | MV |
eigmax(), eigmin()
|
Tridiagonal | M | M | MS | MV | |
Bidiagonal | M | M | MS | MV | |
Diagonal | M | M | MV | MV |
inv(), det(), logdet(), /()
|
UniformScaling | M | M | MVS | MVS | /() |
Условные обозначения:
| M (матрица) | Доступен оптимизированный метод для операций с матрицами |
| V (вектор) | Доступен оптимизированный метод для операций с матрицей и вектором |
| S (скаляр) | Доступен оптимизированный метод для операций с матрицей и скаляром |
Разложения матриц
| Тип матрицы | LAPACK | eig() | eigvals() | eigvecs() | svd() | svdvals() |
|---|---|---|---|---|---|---|
Hermitian | HE | ARI | ||||
UpperTriangular | TR | A | A | A | ||
LowerTriangular | TR | A | A | A | ||
SymTridiagonal | ST | A | ARI | AV | ||
Tridiagonal | GT | |||||
Bidiagonal | BD | A | A | |||
Diagonal | DI | A |
Условные обозначения:
| A (все) | Доступен оптимизированный метод для поиска всех характеристических значений и/или векторов | например, eigvals(M)
|
| R (диапазон) | Доступен оптимизированный метод для поиска характеристических значений с il-го по ih-й | eigvals(M, il, ih) |
| I (интервал) | Доступен оптимизированный метод для поиска характеристических значений в интервале [vl, vh] | eigvals(M, vl, vh) |
| V (векторы) | Доступен оптимизированный метод для поиска характеристических векторов, соответствующих характеристическим значениям x=[x1, x2,...] | eigvecs(M, x) |
Оператор равномерного масштабирования
Оператор UniformScaling представляет скаляр, умноженный на оператор единицы, λ*I. Оператор единицы I определяется как константа и является экземпляром UniformScaling. Размер этих операторов является универсальным и соответствует другим матрицам в бинарных операциях +, -, * и \. Для A+I и A-I это означает, что A должна быть квадратной. Умножение на оператор единицы I является бесполезной операцией (кроме проверки, что коэффициент масштабирования равен единице) и, следовательно, практически не имеет накладных расходов.
© 2009–2016 Jeff Bezanson, Stefan Karpinski, Viral B. Shah, and other contributors
Licensed under the MIT License.
https://docs.julialang.org/en/release-0.5/manual/linear-algebra/