# spec

valeurs propres d'une matrice

## Séquence d'appel

    evals=spec(A)
                [X,diagevals]=spec(A)

                evals=spec(A,E)
                [al,be]=spec(A,E)
                [al,be,Z]=spec(A,E)
                [al,be]=spec(A,E)
                [al,be,Q,Z]=spec(A,E)

## Paramètres

A

  matrice carrée réelle ou complexe

E

  matrice carrée réelle ou complexe de même dimensions que `A`

evals

  vecteur réel ou complexe

diagevals

  matrice carrée diagonale réelle ou complexe (les éléments diagonaux sont les valeurs propres)

al

  vecteur réel ou complexe, al./be donnes les valeurs propres

be

  vecteur réel ou complexe, al./be donnes les valeurs propres

X

  matrice carrée inversible réelle ou complexe, matrices des vecteurs propres.

Q

  matrice carrée inversible réelle ou complexe, matrices des vecteurs propres à gauche.

Z

  atrice carrée inversible réelle ou complexe, matrices des vecteurs propres à droite.

## Description

spec(A)

  `evals=spec(A)` retourne dans le vecteur `evals` les valeurs propres de `A`.

  `[evals,X] =spec(A)` retourne de plus les vecteurs propres (s'ils existent). Voir Aussi `bdiag`

spec(A,B)

  `evals=spec(A,E)` retourne le spectre du faisceau `s E - A`, c'est à dire les racines du déterminant de la matrice de polynômes `s E - A`.

  `[al,be] = spec(A,E)` retourne le spectre du faisceau `s E - A`, c'est à dire les racines du déterminant de la matrice de polynômes `s E - A`. Les valeurs propres sont données par `al./be`. Si `be(i) = 0` la `i`ième valeur propres est à l'infini. (Pour `E = eye(A), al./be` est `spec(A)`).

  `[al,be,Z] = spec(A,E)` retourne de plus la matrice `Z` des vecteurs propres généralisés à droite.

  `[al,be,Q,Z] = spec(A,E)` retourne de plus les matrices `Q` et `Z` des vecteurs propres généralisés à droite et à gauche.

  Pour les grosses matrices pleines / creuses, vous pouvez utiliser le module Arnoldi.

## Exemples

    // MATRIX EIGENVALUES
    A=diag([1,2,3]);X=rand(3,3);A=inv(X)*A*X;
    spec(A)

    x=poly(0,'x');
    pol=det(x*eye()-A)
    roots(pol)

    [S,X]=bdiag(A);
    clean(inv(X)*A*X)

    // PENCIL EIGENVALUES
    A=rand(3,3);
    [al,be,Z] = spec(A,eye(A));al./be
    clean(inv(Z)*A*Z)  //displaying the eigenvalues (generic matrix)
    A=A+%i*rand(A);E=rand(A);
    roots(det(%s*E-A))   //complex case

## Voir aussi

- poly
- det
- gspec
- schur
- bdiag
- colcomp
- dsaupd
- dnaupd

## Fonctions Utilisées

Le calcul des valeurs propres des matrices est basé sur les routines Lapack DGEEV and ZGEEV.