Potenzen und Exponentialfunktionen
In diesem Abschnitt wird die Berechnung von Matrixpotenzen und Exponentialfunktionen mithilfe unterschiedlicher Methoden veranschaulicht.
Positive ganzzahlige Potenzen
Wenn A
eine quadratische Matrix und p
eine positive Ganzzahl ist, multipliziert A^p
effektiv A
p-1
Mal mit sich selbst. Beispiel:
A = [1 1 1 1 2 3 1 3 6]; A^2
ans = 3×3
3 6 10
6 14 25
10 25 46
Inverse und Potenzen mit rationalem Exponent
Wenn A
quadratisch und nicht singulär ist, multipliziert A^(-p)
effektiv inv(A)
p-1
Mal mit sich selbst.
A^(-3)
ans = 3×3
145.0000 -207.0000 81.0000
-207.0000 298.0000 -117.0000
81.0000 -117.0000 46.0000
MATLAB® berechnet inv(A)
und A^(-1)
mit demselben Algorithmus, sodass die Ergebnisse exakt identisch sind. Sowohl inv(A)
als auch A^(-1)
geben Warnungen aus, wenn die Matrix nahezu singulär ist.
isequal(inv(A),A^(-1))
ans = logical
1
Potenzen mit rationalem Exponent wie A^(2/3)
sind ebenfalls zulässig. Ergebnisse bei Verwendung von Potenzen mit rationalem Exponent hängen von der Verteilung der Eigenwerte der Matrix ab.
A^(2/3)
ans = 3×3
0.8901 0.5882 0.3684
0.5882 1.2035 1.3799
0.3684 1.3799 3.1167
Elementweise Potenzen
Der Operator .^
berechnet elementweise Potenzen. Um beispielsweise jedes Element in einer Matrix zu quadrieren, können Sie A.^2
verwenden.
A.^2
ans = 3×3
1 1 1
1 4 9
1 9 36
Quadratwurzeln
Die Funktion sqrt
ist eine komfortable Möglichkeit, die Quadratwurzel jedes Elements in einer Matrix zu berechnen. Alternativ kann auch A.^(1/2)
verwendet werden.
sqrt(A)
ans = 3×3
1.0000 1.0000 1.0000
1.0000 1.4142 1.7321
1.0000 1.7321 2.4495
Für andere Wurzeln können Sie nthroot
verwenden. Berechnen Sie beispielsweise 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
Diese elementweisen Wurzeln unterscheiden sich von der Quadratwurzel einer Matrix, die eine zweite Matrix so berechnet, dass . Die Funktion sqrtm(A)
berechnet A^(1/2)
mit einem genaueren Algorithmus. Das m
in sqrtm
unterscheidet diese Funktion von der Funktion sqrt(A)
, die wie A.^(1/2)
elementweise ausgeführt wird.
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
Skalarbasen
Neben dem Erheben einer Matrix in eine Potenz können Sie auch einen Skalar in die Matrixpotenz erheben.
2^A
ans = 3×3
10.4630 21.6602 38.5862
21.6602 53.2807 94.6010
38.5862 94.6010 173.7734
Wenn Sie einen Skalar in die Potenz einer Matrix erheben, verwendet MATLAB die Eigenwerte und Eigenvektoren der Matrix, um die Matrixpotenz zu berechnen. Wenn [V,D] = eig(A)
, dann .
[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
Exponentialfunktionen einer Matrix
Die Exponentialfunktion einer Matrix ist ein Sonderfall beim Erheben eines Skalars in die Matrixpotenz. Die Basis für die Exponentialfunktion einer Matrix ist die Eulersche Zahl 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
Die Funktion expm
ist eine komfortable Möglichkeit, Exponentialfunktionen einer Matrix zu berechnen.
expm(A)
ans = 3×3
103 ×
0.1008 0.2407 0.4368
0.2407 0.5867 1.0654
0.4368 1.0654 1.9418
Die Exponentialfunktion einer Matrix kann auf unterschiedliche Weise berechnet werden. Weitere Informationen dazu finden Sie unter Matrix Exponentials.
Umgang mit kleinen Zahlen
Die MATLAB Funktionen log1p
und expm1
berechnen und für sehr kleine Werte von genau. Wenn Sie beispielsweise versuchen, eine Zahl kleiner als die Maschinengenauigkeit zu 1 zu addieren, wird das Ergebnis auf 1 gerundet.
log(1+eps/2)
ans = 0
Allerdings kann log1p
eine genauere Antwort zurückgeben.
log1p(eps/2)
ans = 1.1102e-16
Ähnliches gilt für , denn wenn sehr klein ist, wird der Wert auf null gerundet.
exp(eps/2)-1
ans = 0
Und wiederum kann expm1
eine genauere Antwort zurückgeben.
expm1(eps/2)
ans = 1.1102e-16
Siehe auch
exp
| expm
| expm1
| power
| mpower
| sqrt
| sqrtm
| nthroot