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

## Ver Também

- schur
- sylv
- spec
- blockdiag
- lcmdiag