Main Content

Die Übersetzung dieser Seite ist veraltet. Klicken Sie hier, um die neueste Version auf Englisch zu sehen.

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 B so berechnet, dass A=BB. 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 2A=V 2D V-1.

[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 log(1+x) und ex-1 für sehr kleine Werte von x 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 ex-1, denn wenn x 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

| | | | | | |

Verwandte Themen