<< psmall eigen sva >>

Scilab Help >> Linear Algebra > eigen > spec

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

Вычисление собственных значений пучка основаны на программах 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))   // случай комплексных чисел

Смотрите также


Report an issue
<< psmall eigen sva >>