Eksponenta macierzy

Eksponenta macierzy – funkcja macierzowa zdefiniowana dla macierzy kwadratowych analogicznie jak klasyczna funkcja wykładnicza. Eksponentą macierzy rzeczywistej lub zespolonej X {\displaystyle X} wymiaru n × n {\displaystyle n\times n} jest macierz wymiaru n × n , {\displaystyle n\times n,} oznaczana jako e X {\displaystyle e^{X}} albo exp ( X ) , {\displaystyle \exp(X),} zadana przez szereg potęgowy:

e X = k = 0 1 k ! X k , {\displaystyle e^{X}=\sum _{k=0}^{\infty }{\frac {1}{k!}}\,X^{k},}

przy czym przyjmuje się:

  • X 0 = I , {\displaystyle X^{0}=I,}
  • w szczególności 0 0 = I , {\displaystyle 0^{0}=I,}

gdzie:

  • I {\displaystyle I} – macierz jednostkowa n × n , {\displaystyle n\times n,}
  • 0 {\displaystyle 0} – macierz zerowa n × n . {\displaystyle n\times n.}

Twierdzenia I

Oznaczenia:

  • X , {\displaystyle X,} Y {\displaystyle Y} – dowolne macierze zespolone n × n {\displaystyle n\times n}
  • a , {\displaystyle a,} b {\displaystyle b} – dowolne liczby zespolone

Twierdzenia:

(1) e 0 = I {\displaystyle e^{0}=I}
(2) e X T = ( e X ) T {\displaystyle e^{X^{T}}=(e^{X})^{T}}
gdzie X T {\displaystyle X^{T}} – macierz transponowana macierzy X {\displaystyle X}
(3) e X = ( e X ) {\displaystyle e^{X^{\dagger }}=(e^{X})^{\dagger }}
gdzie X {\displaystyle X^{\dagger }} – macierz hermitowsko sprzężona do macierzy X {\displaystyle X}
(4) Jeżeli macierz Y {\displaystyle Y} jest odwracalna, to e Y X Y 1 = Y e X Y 1 {\displaystyle e^{YXY^{-1}}=Ye^{X}Y^{-1}}
(5) Jeżeli macierze X {\displaystyle X} i Y {\displaystyle Y} komutują (tzn. ich mnożenie jest przemienne, X Y = Y X {\displaystyle XY=YX} ), to
e X e Y = e X + Y {\displaystyle e^{X}e^{Y}=e^{X+Y}}

Z tw. (5) wynika, że

(6) e X e X = e 0 = I {\displaystyle e^{X}e^{-X}=e^{0}=I}
(7) e a X e b X = e ( a + b ) X {\displaystyle e^{aX}e^{bX}=e^{(a+b)X}}

Twierdzenia II

(8) Jeżeli X {\displaystyle X} jest macierzą symetryczną, to e X {\displaystyle e^{X}} jest macierzą symetryczną.
(9) Jeżeli X {\displaystyle X} jest macierzą antysymetryczną, to e X {\displaystyle e^{X}} jest macierzą ortogonalną.
(10) Jeżeli X {\displaystyle X} jest macierzą hermitowską, to e X {\displaystyle e^{X}} jest macierzą hermitowską.
(11) Jeżeli X {\displaystyle X} jest macierzą antyhermitowską, to e X {\displaystyle e^{X}} jest macierzą unitarną.

Obliczanie eksponenty macierzy

Macierz diagonalna

Jeżeli macierz jest diagonalna

D = [ d 1 0 0 0 d 2 0 0 0 d n ] , {\displaystyle D={\begin{bmatrix}d_{1}&0&\ldots &0\\0&d_{2}&\ldots &0\\\vdots &\vdots &\ddots &\vdots \\0&0&\ldots &d_{n}\end{bmatrix}},}

to

e D = [ e d 1 0 0 0 e d 2 0 0 0 e d n ] . {\displaystyle e^{D}={\begin{bmatrix}e^{d_{1}}&0&\ldots &0\\0&e^{d_{2}}&\ldots &0\\\vdots &\vdots &\ddots &\vdots \\0&0&\ldots &e^{d_{n}}\end{bmatrix}}.}

Macierz diagonalizowalna

Jeżeli macierz X {\displaystyle X} można przedstawić w postaci

X = Y D Y 1 , {\displaystyle X=YDY^{-1},}

gdzie D {\displaystyle D} – macierz diagonalna, to z tw. (4) wynika, że

e X = Y e D Y 1 . {\displaystyle e^{X}=Ye^{D}Y^{-1}.}

Tw. Liego o eksponencie sumy macierzy

Jeżeli X {\displaystyle X} oraz Y {\displaystyle Y} nie komutują, to można obliczyć eksponentę sumy tych macierzy, posługując się twierdzeniem Liego

e X + Y = lim k ( e 1 k X e 1 k Y ) k . {\displaystyle e^{X+Y}=\lim _{k\to \infty }\left(e^{{\frac {1}{k}}X}e^{{\frac {1}{k}}Y}\right)^{k}.}

Jeżeli użyje się dostatecznie dużej wartości k {\displaystyle k} (np. k = 10 6 {\displaystyle k=10^{6}} ), to otrzyma się dokładne przybliżenie, często używane w numerycznego obliczania ewolucji w czasie jednowymiarowych układów kwantowych o wielu cząstkach, gdyż wtedy

e X + Y ( e 1 k X e 1 k Y ) k . {\displaystyle e^{X+Y}\approx \left(e^{{\frac {1}{k}}X}e^{{\frac {1}{k}}Y}\right)^{k}.}

Tw. Bakera-Campbelli-Hausdorffa

Gdy X {\displaystyle X} oraz Y {\displaystyle Y} są dostatecznie małe i niekoniecznie komutują, to

e X e Y = e Z , {\displaystyle e^{X}\cdot e^{Y}=e^{Z},}

gdzie Z {\displaystyle Z} jest nieskończonym szeregiem komutatorów, utworzonych z macierzy X {\displaystyle X} oraz Y , {\displaystyle Y,} zgodnie z tw. Bakera-Campbella-Hausdorffa(inne języki)

Z = X + Y + 1 2 [ X , Y ] + 1 12 [ X , [ X , Y ] ] 1 12 [ Y , [ X , Y ] ] + , {\displaystyle Z=X+Y+{\frac {1}{2}}[X,Y]+{\frac {1}{12}}{\big [}X,[X,Y]{\big ]}-{\frac {1}{12}}{\big [}Y,[X,Y]{\big ]}+\ldots ,}

gdzie [ X , Y ] = X Y Y X , {\displaystyle [X,Y]=XY-YX,} itp. Pozostałe składniki szeregu stanowią bardziej złożone komutatory, zawierające X {\displaystyle X} oraz Y . {\displaystyle Y.}

Jeżeli X {\displaystyle X} oraz Y {\displaystyle Y} komutują, tj. [ X , Y ] = 0 , {\displaystyle [X,Y]=0,} to wszystkie inne komutatory zerują się i otrzymuje się prosty wzór

e X e Y = e X + Y {\displaystyle e^{X}\cdot e^{Y}=e^{X+Y}}

Numeryczne liczenie eksponenty macierzy

Obliczanie eksponenty macierzy w ogólnym przypadku nie jest proste. Poniżej podano kod w języku python, służący do numerycznego obliczenia eksponenty macierzy, korzystający z biblioteki NumPy, dedykowanej do obliczeń na macierzach. NumPy zawiera funkcję expm, która oblicza eksponentę macierzy. Program można uruchomić, korzystając np. z darmowego notatnika colab google online, przy czym macierz do obliczeń zadaje się w linii 4 programu, podając kolejne jej wiersze. Poniższy kod liczy eksponentę macierzy 2 × 2 , {\displaystyle 2\times 2,} ale łatwo go zmodyfikować do liczenia eksponenty macierzy n × n . {\displaystyle n\times n.} Np. X = np. array([[1, 1, 1], [2, 1, 0], [3, 0,1]]) – macierz n × n {\displaystyle n\times n} z zapisanymi kolejnymi wierszami, zaczynając od wiersza 1-go.

import numpy as np
from scipy.linalg import expm

X = np.         array([[1, 0], [0, 1]])
expX = expm(X)

print(expX)

# Wynik
# [[2.71828183 0.        ]
# [0.         2.71828183]]

Przykłady

Macierze niekomutujące

Niech będą dane macierze

X = [ 1 0 0 2 ] , Y = [ 0 1 0 0 ] {\displaystyle X={\begin{bmatrix}1&0\\0&2\end{bmatrix}},\quad Y={\begin{bmatrix}0&1\\0&0\end{bmatrix}}}

Macierze te nie komutują ze sobą, gdyż:

X Y Y X = [ 0 1 0 0 ] {\displaystyle XY-YX={\begin{bmatrix}0&-1\\0&0\end{bmatrix}}}

Nie są więc spełnione założenia Tw. (5). Obliczając eksponenty A = e X {\displaystyle A=e^{X}} oraz B = e Y {\displaystyle B=e^{Y}} (np. korzystając z kodu w python, podanego wyżej), a następnie mnożąc otrzymane macierze A , B {\displaystyle A,B} przez siebie otrzyma się:

e X e Y = [ 2,718 28183 2,718 28183 0 7,389 0561 ] {\displaystyle e^{X}e^{Y}={\begin{bmatrix}2{,}71828183&2{,}71828183\\0&7{,}3890561\end{bmatrix}}}

zaś

e X + Y = [ 2,718 28183 4,670 77427 0 7,389 0561 ] {\displaystyle e^{X+Y}={\begin{bmatrix}2{,}71828183&4{,}67077427\\0&7{,}3890561\end{bmatrix}}}

Widać, że tym wypadku e X e Y e X + Y . {\displaystyle e^{X}e^{Y}\neq e^{X+Y}.}

Macierze komutujące

Niech będą dane macierze (tzw. macierze obrotu)

X = [ cos x sin x sin x cos x ] , Y = [ cos y sin y sin y cos y ] {\displaystyle X={\begin{bmatrix}\cos x&-\sin x\\\sin x&\cos x\end{bmatrix}},\quad Y={\begin{bmatrix}\cos y&-\sin y\\\sin y&\cos y\end{bmatrix}}}

Macierze te komutują ze sobą dla dowolnych kątów x , y , {\displaystyle x,y,} tj. zawsze mamy:

X Y Y X = [ 1 0 0 1 ] {\displaystyle XY-YX={\begin{bmatrix}1&0\\0&1\end{bmatrix}}}

Z tw. (5) wynika, że w tym wypadku jest prawdą, że e X e Y = e X + Y . {\displaystyle e^{X}e^{Y}=e^{X+Y}.}

Przykładowo, dla x = π / 2 , y = π / 4 {\displaystyle x=\pi /2,y=\pi /4} mamy

X = [ 0 1 1 0 ] , Y = 1 2 [ 1 1 1 1 ] {\displaystyle X={\begin{bmatrix}0&-1\\1&0\end{bmatrix}},\quad Y={\frac {1}{\sqrt {2}}}{\begin{bmatrix}1&-1\\1&1\end{bmatrix}}}

Obliczając eksponenty A = e X {\displaystyle A=e^{X}} oraz B = e Y {\displaystyle B=e^{Y}} (np. korzystając z kodu w python, podanego wyżej), a następnie mnożąc otrzymane macierze A , B {\displaystyle A,B} przez siebie, otrzymuje się:

e X e Y = [ 0,275 59796 2,009 3024 2,009 3024 0,275 59796 ] {\displaystyle e^{X}\cdot e^{Y}={\begin{bmatrix}-0{,}27559796&-2{,}0093024\\-2{,}0093024&-0{,}27559796\end{bmatrix}}}

Obliczając macierz C = X + Y , {\displaystyle C=X+Y,} a następnie jej eksponentę, otrzymuje się

e X + Y = [ 0,275 59796 2,009 3024 2,009 3024 0,275 59796 ] {\displaystyle e^{X+Y}={\begin{bmatrix}-0{,}27559796&-2{,}0093024\\-2{,}0093024&-0{,}27559796\end{bmatrix}}}

Widać, iż teraz e X e Y = e X + Y . {\displaystyle e^{X}e^{Y}=e^{X+Y}.}

Zobacz też

Bibliografia

  • Bellman R.E., Introduction to Matrix Analysis, 2nd ed., New York: McGraw-Hill, 1970.
  • Moler C., van Loan C., „Nineteen Dubious Ways to Compute the Exponential of a Matrix, Twenty-Five Years Later”, SIAM Rev. 45, 3-49, 2003.
  • Cohen-Tannoudji Claude, Diu Bernard, Laloe Frank, Quantum Mechanics 1, Wiley J., 2006, ISBN 978-0471569527.

Linki zewnętrzne

  • Eric W.E.W. Weisstein Eric W.E.W., Matrix Exponential, [w:] MathWorld, Wolfram Research  (ang.). [dostęp 2024-04-11].