power élévation à la puissance (^,.^)

## Séquence d'appel

                t = A ^ b
                t = A ** b
                t = A .^ b

## Paramètres

A, t
  scalaire, vecteur, ou matrice de nombres entiers encodés, de nombres ou polynômes ou fractions rationnelles à coefficients réels ou complexes.

b
  scalaire, vecteur, ou matrice d'entiers encodés, de nombres décimaux, ou de nombres complexes.

Si un opérande sont des entiers encodés, l'autre peut être uniquement des entiers encodés ou des nombres réels.

Si `A` sont des polynômes ou des fractions rationnelles, `b` peut uniquement être un entier décimal (positif ou négatif).

## Description

### .^ : puissances respectives par élément

Si `A` ou `b` est scalaire, il est préalablement répliqué à la taille de l'autre, par A*ones(b) ou b*ones(A). Sinon, `A` et `b` doivent avoir la même taille.

Alors, pour chaque élément numéro i, `t(i) = A(i)^b(i)` est calculé.

### ^ : puissance matricielle

L'opérateur ^ est équivalent à .^ dans les cas suivants :

- `A` est scalaire et `b` est un vecteur.
- `A` est un vecteur et `b` est scalaire.

Sinon, `A` ou `b` doit être scalaire, et l'autre opérande doit être une matrice carrée :

- Si `A` est scalaire et `b` est carrée, alors `A^b` est la matrice `expm(log(A) * b)`

- Si `A` est carrée et `b` est scalaire, alors `A^b` est la matrice `A` à la puissane `b`.

### Autres remarques

1. Si `A` est une matrice carrée, `A^p` est calculé par multiplications successives si `p` est un entier positif, et par diagonalisation sinon (détails en remarques n°2 et 3 ci-dessous).

2. If `A` is a square and Hermitian matrix and `p` is a non-integer scalar, `A^p` is computed as:

   `A^p = u*diag(diag(s).^p)*u'` (For real matrix `A`, only the real part of the answer is taken into account).

   `u` and `s` are determined by `[u,s] = schur(A)` .

3. If `A` is not a Hermitian matrix and `p` is a non-integer scalar, `A^p` is computed as:

   `A^p = v*diag(diag(d).^p)*inv(v)` (For real matrix `A`, only the real part of the answer is taken into account).

   `d` and `v` are determined by `[d,v] = bdiag(A+0*%i)`.

4. If `A` and `p` are real or complex numbers, `A^p` is the principal value determined by

   `A^p = exp(p*log(A))`

   (or `A^p = exp(p*(log(abs(A))+ %i*atan(imag(A)/real(A))))` ).

5. If `A` is a square matrix and `p` is a real or complex number, `A.^p` is the principal value computed as:

   `A.^p = exp(p*log(A))` (same as case 4 above).

6. Les opérateurs `**` et `^` sont équivalents.

L'élévation à la puissance est associative à droite dans Scilab contrairement à Matlab® et Octave. Par exemple 2^3^4 est égal à 2^(3^4) dans Scilab mais est égal à (2^3)^4 dans Matlab® et Octave.

## Exemples

    A = [1 2 ; 3 4];
    A ^ 2.5,
    A .^ 2.5
    (1:10) ^ 2
    (1:10) .^ 2

    A ^ %i
    A .^ %i
    exp(%i*log(A))

    s = poly(0,'s')
    s ^ (1:10)

## Voir aussi

- exp
- expm
- hat
- inv

## Historique

6.0.0 Avec des nombres décimaux ou complexes, `scalaire ^ matriceCarrée` produit désormais `expm(log(scalaire)*matriceCarrée)` au lieu de `scalaire .^ matriceCarrée`.