Eksponenta macierzy – funkcja macierzowa zdefiniowana dla macierzy kwadratowych analogicznie jak klasyczna funkcja wykładnicza. Eksponentą macierzy rzeczywistej lub zespolonej wymiaru jest macierz wymiaru oznaczana jako albo zadana przez szereg potęgowy:
przy czym przyjmuje się:
- w szczególności
gdzie:
- – macierz jednostkowa
- – macierz zerowa
Obliczanie eksponenty macierzy
Macierz diagonalna
Jeżeli macierz jest diagonalna
to
Macierz diagonalizowalna
Jeżeli macierz można przedstawić w postaci
gdzie – macierz diagonalna, to z tw. (4) wynika, że
Tw. Bakera-Campbelli-Hausdorffa
Gdy oraz są dostatecznie małe i niekoniecznie komutują, to
gdzie jest nieskończonym szeregiem komutatorów, utworzonych z macierzy oraz zgodnie z tw. Bakera-Campbella-Hausdorffa(inne języki)
gdzie itp. Pozostałe składniki szeregu stanowią bardziej złożone komutatory, zawierające oraz
Jeżeli oraz komutują, tj. to wszystkie inne komutatory zerują się i otrzymuje się prosty wzór
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 ale łatwo go zmodyfikować do liczenia eksponenty macierzy Np. X = np. array([[1, 1, 1], [2, 1, 0], [3, 0,1]]) – macierz 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
Macierze te nie komutują ze sobą, gdyż:
Nie są więc spełnione założenia Tw. (5). Obliczając eksponenty oraz (np. korzystając z kodu w python, podanego wyżej), a następnie mnożąc otrzymane macierze przez siebie otrzyma się:
zaś
Widać, że tym wypadku
Macierze komutujące
Niech będą dane macierze (tzw. macierze obrotu)
Macierze te komutują ze sobą dla dowolnych kątów tj. zawsze mamy:
Z tw. (5) wynika, że w tym wypadku jest prawdą, że
Przykładowo, dla mamy
Obliczając eksponenty oraz (np. korzystając z kodu w python, podanego wyżej), a następnie mnożąc otrzymane macierze przez siebie, otrzymuje się:
Obliczając macierz a następnie jej eksponentę, otrzymuje się
Widać, iż teraz