Please note that the recommended version of Scilab is 2025.0.0. This page might be outdated.
See the recommended documentation of this function
spec
собственные значения и собственные вектора матрицы или пучка
Синтаксис
evals = spec(A) [R, diagevals] = spec(A) evals = spec(A, B) [alpha, beta] = spec(A, B) [alpha, beta, Z] = spec(A, B) [alpha, beta, Q, Z] = spec(A, B)
Аргументы
- A, B
- Квадратные матрицы вещественных или комплексных чисел одинаковых размеров.
- evals
- Вещественный или комплексный вектор: собственные значения.
- diagevals
- Вещественная или комплексная диагональная матрица: собственные значения расположены по диагонали.
- R
- Вещественная или комплексная обратимая квадратная матрица: матрица правых собственных векторов.
- alpha, beta
- Векторы одинаковых размеров: обобщённые собственные значения
пучка матрицы
A - s.B
(гдеs
- это переменная).alpha./beta
даёт обычные собственные значения.alpha
- это вещественные или комплексные значения.beta
- это вещественные значения. - Q
- Вещественная или комплексная обратимая квадратная матрица: обобщённые левые собственные векторы пучка.
- Z
- Вещественная или комплексная обратимая квадратная матрица: обобщённые правые собственные векторы пучка.
Описание
evals = spec(A) вычисляет собственные
значения и возвращает их в векторе evals
.
[R, diagevals] = spec(A)
возвращает собственные значения через диагональную матрицу
diagevals
и правые собственные векторы в R
.
См. также bdiag(…)
.
При использовании синтаксиса spec(A)
с единственной матрицей, истинность результатов следующая:
Матрица | Вещественная | Комплексная | ||
---|---|---|---|---|
Симметричная | Несимметричная | Эрмитова | Неэрмитова | |
Собственные значения | вещественные | комплексные | вещественные | комплексные |
Собственные векторы | вещественные | комплексные | комплексные | комплексные |
Комплексная эрмитова матрица равна себе самой комплексно сопряжённой и транспонированной.
Пучок матриц A - s.B
evals = spec(A, B)
возвращает собственные значения пучка матриц, то есть корни полиномиальной
матрицы s.B - A
.
[alpha, beta] = spec(A, B)
возвращает обобщённые собственные значения alpha
и
beta
пучка матриц A - s.B
.
Они такие, что обычные собственные значения пучка представляются как
alpha./beta
. Тогда матрица
A - alpha./beta × B
является сингулярной.
Если beta(i) = 0
, то iтое
собственное значение равно бесконечности.
Для B = eye(A)
, alpha./beta
равно
spec(A)
. Обычно представляется как пара
(alpha,beta), поскольку есть разумная интерпретация для
beta=0
, даже когда оба равны нулю.
[alpha, beta, Z] = spec(A, B)
возвращает дополнительно матрицу Z
обобщённых правых
собственных векторов пучка.
[alpha, beta, Q, Z] = spec(A, B)
возвращает дополнительно матрицу Q
обобщённых левых
собственных векторов пучка.
Для больших плотных или разрежённых матриц может быть использована функция
eigs(). |
Используемые программы
Вычисления собственных значений матриц основаны на программах Lapack
DSYEV и ZHEEV, когда матрица симметрична или эрмитова.
DGEEV и ZGEEV, когда матрица ни симметрична ни эрмитова.
Вычисление собственных значений пучка основаны на программах Lapack DGGEV и ZGGEV.
Примеры
// СОБСТВЕННЫЕ ЗНАЧЕНИЯ МАТРИЦЫ A = diag([1,2,3]); X = rand(3,3); A = inv(X)*A*X; spec(A) x = poly(0,'x'); pol = det(x*eye(3,3)-A) roots(pol) [S,X] = bdiag(A); clean(inv(X)*A*X) // СОБСТВЕННЫЕ ЗНАЧЕНИЯ ПУЧКА A = rand(3,3); [al, be, R] = spec(A, eye(A)); al ./ be clean(inv(R)*A*R) // распечатка собственных значений (общая матрица) A = A + %i*rand(A); E = rand(A); roots(det(A-%s*E)) // случай комплексных чисел
Смотрите также
- eigs — calculates largest eigenvalues and eigenvectors of matrices
- bdiag — блоковая диагонализация, обобщённые собственные векторы
- schur — [ordered] Schur decomposition of matrix and pencils
- colcomp — column compression, kernel, nullspace
- det — определитель квадратной матрицы
- poly — Определение полинома через указанные корни или коэффициенты или определение характеристического полинома квадратной матрицы.
Report an issue | ||
<< psmall | eigen | sva >> |