Scilab Website | Contribute with GitLab | Mailing list archives | ATOMS toolboxes
Scilab Online Help
2024.0.0 - Português


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

Copyright (c) 2022-2024 (Dassault Systèmes)
Copyright (c) 2017-2022 (ESI Group)
Copyright (c) 2011-2017 (Scilab Enterprises)
Copyright (c) 1989-2012 (INRIA)
Copyright (c) 1989-2007 (ENPC)
with contributors
Last updated:
Tue Oct 24 14:35:25 CEST 2023