Scilab Function

spec - valeurs propres d'une matrice

### Sequence 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)`

### Parametres

- `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)` etourne de plus les matrices `Q` et `Z` des vecteurs propres généralisés à droite et à gauche.

### REFERENCES

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

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

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