bdiag
bloc-diagonalisation, vecteurs propres généralisés
Séquence d'appel
[Ab, X, bs] = bdiag(A) [Ab, X, bs] = bdiag(A, rmax)
Paramètres
- A
matrice carrée réelle ou complexe
- rmax
nombre réel
- Ab
matrice carrée réelle ou complexe
- X
matrice régulière, réelle ou complexe
- bs
vecteur d'entiers
Description
[Ab, X, bs] = bdiag(A, rmax) calcule la forme
bloc-diagonale de A
. bs précise la structure des
blocs (tailles respectives des blocs). X
est la
matrice de changement de base, c'est à dire que Ab = inv(X)*A*X
est bloc-diagonale.
rmax
contrôle le conditionnement de X
.
La valeur par défaut est la norme l1 de A
.
Pour obtenir une forme diagonale (si celle-ci existe) choisissez
une valeur élevée de rmax
(rmax=1/%eps
par exemple). Pour une matrice réelle quelconque, les blocs sont
de taille (1x1) ou (2x2) et X
est la matrice des
vecteurs propres.
Exemples
// Cas réel: blocs 1x1 et 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
// Cas complexe : blocs complexes 1x1 a = rand(5,5); [ab, x, bs] = bdiag(a+%i*0); ab
Voir aussi
- schur — [ordered] Schur decomposition of matrix and pencils
- sylv — Solve the Sylvester equations A*X + X*B = C or A*X*B + X = C
- spec — valeurs propres, et vecteurs propres d'une matrice ou d'un faisceau de matrices
- blockdiag — Creates a block diagonal matrix from provided arrays. Block diagonal system connection.
- lcmdiag — factorisation diagonale par le plus petit commun multiple
Report an issue | ||
<< balanc | Eigenvalue and Singular Value | eigs >> |