Scilab Home page | Wiki | Bug tracker | Forge | Mailing list archives | ATOMS | File exchange
Please login or create an account
Change language to: English - Français - Português - Русский
Scilabヘルプ >> Linear Algebra > Eigenvalue and Singular Value > 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
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) 対角行列r diagevals に固有値, Rに固有ベクトルを返します. See also bdiag(…).

When using a spec(A) syntax with a single matrix, the realness of results is as it follows:

A行列 実数複素数
対称非対称対称非対称
固有値 実数 複素数 エルミート 複素数
固有ベクトル 実数 複素数 複素数 複素数

. エルミート行列はその共役転置に等しい。

Matrix Pencil A - s.B

evals = spec(A, B) 行列ペンシル A - s B のスペクトル,すなわち, 多項式行列 s B - Aの根,を返します.

[alpha, beta] = spec(A, B) 行列ペンシルA- s Bのスペクトル, すなわち,多項式行列 A - s Bの根を返します. 一般化固有値 alpha と beta は行列 A - alpha./beta × B が特異行列となる値です. 固有値は alpha./beta により指定され, beta(i) = 0の場合,i番目の固有値は無限大となります.

B = eye(A)の場合, alpha./betaspec(A)となります. 通常,beta=0や両方がゼロの場合に関して都合が良い解釈が存在するため, (alpha,beta)の組み合わせで表されます.

[alpha, beta, Z] = spec(A, B) 一般化右固有ベクトルである行列 Z を返します.

[alpha, beta, Q, Z] = spec(A, B) 一般化右および左固有ベクトルである行列 Q および Zを返します.

大きな密行列または疎行列の場合、eigs関数を使用できます.

参照

行列の固有値計算は Lapack ルーチンに基づいています

  • 行列が対称でない場合, DGEEV および ZGEEV.

  • 行列が対称の場合, DSYEV および ZHEEV.

ペンシル固有値計算は Lapack ルーチン DGGEV および ZGGEVに基づいています.

// MATRIX EIGENVALUES
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)

// PENCIL EIGENVALUES
A = rand(3,3);
[al, be, R] = spec(A, eye(A));
al ./ be
clean(inv(R)*A*R)    // displaying the eigenvalues (generic matrix)
A = A + %i*rand(A);
E = rand(A);
roots(det(A-%s*E))   // complex case

参照

  • eigs — 行列の最大固有値と固有ベクトルを計算
  • bdiag — ブロック対角化, 一般化固有ベクトル
  • schur — 行列およびペンシルの[ソートされた] Schur 分解
  • colcomp — 列圧縮,カーネル,ヌル空間
  • det — determinant of a square matrix
  • poly — Polynomial definition from given roots or coefficients, or characteristic to a square matrix.
Scilab Enterprises
Copyright (c) 2011-2017 (Scilab Enterprises)
Copyright (c) 1989-2012 (INRIA)
Copyright (c) 1989-2007 (ENPC)
with contributors
Last updated:
Mon Jan 03 14:37:48 CET 2022