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 >> |