La traduction de cette page n'est pas à jour. Cliquez ici pour voir la dernière version en anglais.
Puissances et exponentielles
Ce thème montre comment calculer des puissances et des exponentielles de matrices à l’aide de diverses méthodes.
Puissances d’entiers positifs
Si A
est une matrice carrée et p
un entier positif, alors A^p
multiplie A
par elle-même p-1
fois. Par exemple :
A = [1 1 1 1 2 3 1 3 6]; A^2
ans = 3×3
3 6 10
6 14 25
10 25 46
Puissances inverses et fractionnelles
Si A
est carrée et non singulière, alors A^(-p)
multiplie inv(A)
par elle-même p-1
fois.
A^(-3)
ans = 3×3
145.0000 -207.0000 81.0000
-207.0000 298.0000 -117.0000
81.0000 -117.0000 46.0000
MATLAB® calcule inv(A)
et A^(-1)
avec le même algorithme, de sorte que les résultats sont exactement les mêmes. inv(A)
et A^(-1)
génèrent toutes deux des avertissements si la matrice est proche d’être singulière.
isequal(inv(A),A^(-1))
ans = logical
1
Les puissances fractionnelles, telles que A^(2/3)
, sont également permises. Les résultats obtenus avec des puissances fractionnelles dépendent de la distribution des valeurs propres de la matrice.
A^(2/3)
ans = 3×3
0.8901 0.5882 0.3684
0.5882 1.2035 1.3799
0.3684 1.3799 3.1167
Puissances élément par élément
L’opérateur .^
calcule les puissances élément par élément. Par exemple, pour élever au carré chaque élément d’une matrice, vous pouvez utiliser A.^2
.
A.^2
ans = 3×3
1 1 1
1 4 9
1 9 36
Racines carrées
La fonction sqrt
est une manière pratique de calculer la racine carrée de chaque élément d’une matrice. Une autre manière consiste à utiliser A.^(1/2)
.
sqrt(A)
ans = 3×3
1.0000 1.0000 1.0000
1.0000 1.4142 1.7321
1.0000 1.7321 2.4495
Pour d’autres racines, vous pouvez utiliser nthroot
. Par exemple, calculez A.^(1/3)
.
nthroot(A,3)
ans = 3×3
1.0000 1.0000 1.0000
1.0000 1.2599 1.4422
1.0000 1.4422 1.8171
Ces racines éléments par éléments diffèrent de la racine carrée matricielle, qui calcule une seconde matrice telle que . La fonction sqrtm(A)
calcule A^(1/2)
à l’aide d’un algorithme plus précis. Le m
de sqrtm
distingue cette fonction de sqrt(A)
, qui, comme A.^(1/2)
, procède élément par élément.
B = sqrtm(A)
B = 3×3
0.8775 0.4387 0.1937
0.4387 1.0099 0.8874
0.1937 0.8874 2.2749
B^2
ans = 3×3
1.0000 1.0000 1.0000
1.0000 2.0000 3.0000
1.0000 3.0000 6.0000
Bases scalaires
En plus d’élever une matrice à une puissance, vous pouvez également élever un scalaire à la puissance d’une matrice.
2^A
ans = 3×3
10.4630 21.6602 38.5862
21.6602 53.2807 94.6010
38.5862 94.6010 173.7734
Lorsque vous élevez un scalaire à la puissance d’une matrice, MATLAB utilise les valeurs propres et les vecteurs propres d’une matrice pour calculer la puissance de la matrice. Si [V,D] = eig(A)
, alors .
[V,D] = eig(A); V*2^D*V^(-1)
ans = 3×3
10.4630 21.6602 38.5862
21.6602 53.2807 94.6010
38.5862 94.6010 173.7734
Exponentielles de matrices
L’exponentielle de matrice est un cas particulier d’élévation d’un scalaire à une puissance de matrice. La base d’une exponentielle de matrice est le nombre d’Euler e = exp(1)
.
e = exp(1); e^A
ans = 3×3
103 ×
0.1008 0.2407 0.4368
0.2407 0.5867 1.0654
0.4368 1.0654 1.9418
La fonction expm
est une manière plus pratique de calculer les exponentielles d’une matrice.
expm(A)
ans = 3×3
103 ×
0.1008 0.2407 0.4368
0.2407 0.5867 1.0654
0.4368 1.0654 1.9418
L’exponentielle de la matrice peut être calculée de plusieurs manières. Consultez Matrix Exponentials pour plus d’informations.
Traitement des petits nombres
Les fonctions MATLAB log1p
et expm1
calculent et de manière précise pour de très petites valeurs de . Par exemple, si vous essayez d’additionner un nombre inférieur à la précision de la machine à 1, le résultat est arrondi à 1.
log(1+eps/2)
ans = 0
Cependant, log1p
peut renvoyer une réponse plus précise.
log1p(eps/2)
ans = 1.1102e-16
De même pour , si est très petit, il est arrondi à zéro.
exp(eps/2)-1
ans = 0
Là encore, expm1
est capable de renvoyer une réponse plus précise.
expm1(eps/2)
ans = 1.1102e-16
Voir aussi
exp
| expm
| expm1
| power
| mpower
| sqrt
| sqrtm
| nthroot