bdiag
diagonalização em blocos, autovetores generalizados
Seqüência de Chamamento
[Ab, X, bs] = bdiag(A) [Ab, X, bs] = bdiag(A, rmax)
Parâmetros
- A
matriz quadrada de reais ou complexos
- rmax
número real
- Ab
matriz quadrada de reais ou complexos
- X
matriz de reais ou complexos não-singular
- bs
vetor de inteiros
Descrição
[Ab, X, bs] = bdiag(A, rmax)
realiza a diagonalização em blocos da matriz A
.
bs
fornece a estrutura dos blocos (respectivos tamanhos dos blocos).
X
é a matriz mudança de base i.e Ab = inv(X)*A*X
édiagonal em blocos.
rmax
controla o condicionamento de X
.
O valor padrão é a norma L1 de A
.
Para encontrar a forma diagonal (se existir) escolha um valor
suficientemente grande para rmax
(rmax=1/%eps
, por exemplo). Genericamente, (para uma
matriz A de reais aleatória) os blocos são (1x1) e (2x2) e
X
é a matriz de autovetores.
Exemplos
// No caso de reais: blocos 1x1 e 2x2 a = rand(5,5); [ab, x, bs] = bdiag(a);ab
--> [ab, x, bs] = bdiag(a);ab ab = 2.4777836 0. 0. 0. 0. 0. 0.0757087 0.4869251 0. 0. 0. -0.5777956 -0.1248605 0. 0. 0. 0. 0. 0.069654 0. 0. 0. 0. 0. 0.5341598
// No caso de complexos: blocos 1x1 complexos [ab, x, bs] = bdiag(a+%i*0); ab
Report an issue | ||
<< balanc | Eigenvalue and Singular Value | eigs >> |