Jak obliczyć podstawę algebry Lie macierzy, biorąc pod uwagę skończony zestaw generatorów?

11

Biorąc pod uwagę dowolny zestaw (numeryczne) kwadratowych próbkach, , ja zainteresowany obliczania macierzy rzeczywistej Lie algebraiczne generowany przez , nazwać . To znaczy, chciałbym podstawę dla gdzie definiuje się rekurencyjnie jako , a dla .A L A L A = s p a n R { B : B k = 1 C k } C k C 1 = A C k + 1 = { [ X , Y ] : X , Y A={A1,A2,,Am}ALA

LA=spanR{B:Bk=1Ck}
CkC1=Ak1Ck+1={[X,Y]:X,Yj=1kCj}k1

Obliczenia te pojawiają się w teorii sterowania (kwantowego).

Obecnie używam znalezionej tutaj metody , która przeszukuje tylko powtarzające się nawiasy Lie (tj. W postaci ), i gwarantuje, że zostanie zakończone. Chciałbym jednak wiedzieć, czy istnieją inne (szybsze) metody. Być może korzystasz z baz P. Halla? Być może algorytm rekurencyjny? Obecnie moim domyślnym językiem jest Matlab.[Aj1,[Aj2,[Aj3,[Ajn1,Ajn]]]]

Ian Hincks
źródło
Zgaduję, że twoimi oryginalnymi generatorami są Hermici. Czy to prawda? Jeśli tak, wyobrażam sobie, że pierwszym krokiem byłoby porównanie przestrzeni własnych generatorów, ponieważ komutatory są niezerowe tylko wtedy, gdy są one różne.
Jack Poulson
@JackPoulson Tak, litery A pochodzą z Hamiltonianów, podobnie jak skośne hermitowskie (nie hermitowskie, ponieważ są pomnożone przez i w równaniu Schroedingera). Nie jestem pewien, czy rozumiem, dlaczego byłby to dobry pierwszy krok. Czy obliczanie komutatorów i sprawdzanie, czy są niezerowe, nie byłoby szybsze niż manipulowanie przestrzeniami własnymi?
Ian Hincks
1
Dla jednego poziomu komutatorów prawdopodobnie tak. Ale kiedy rozważasz kilka poziomów komutatorów, dochodzi do eksplozji kombinatorycznej. Nie znam algorytmu, ale zwykle dobrym pomysłem jest wykorzystanie jak największej liczby struktur. Zastanowię się dokładnie, czy znasz jakieś inne właściwości, które dotyczą również twoich generatorów.
Jack Poulson

Odpowiedzi:

3

Ten link opisuje, jak to zrobić za pomocą baz P.Hala.

Z jednej tylko nieco powiązanej nuty, gdybym to zaimplementował, martwiłbym się niestabilnością numeryczną testowania zależności liniowej. Upewnij się, że używasz metody testowania niezależności nowych matryc, która pozwala na niedokładność liczbową - być może porównując normę z normą , gdzie jest rzutem na przestrzeń macierzy, którą znalazłeś wcześniej .A strAp(A)Ap

Erik P.
źródło
@EricP Dzięki za link, bardzo przydatny. Widziałem bazy P. Halla tylko w kontekście wolnych algeb Liego, których nie znam, i cieszę się, że moja intuicja dotycząca po prostu pozbycia się zależnych liniowo komutacji była słuszna. Martwię się o dokładność numeryczną. Czy masz na myśli, że powinnam raczej porównywać normę p (A) z normą A? I że byłoby to bardziej stabilne niż porównywanie normy Ap (A) z 0?
Ian Hincks
@IanHincks: Miałem na myśli porównanie do , ale nie było to oparte na żadnych szczególnie głębokich myślach. Musisz eksperymentować. Najlepszym pod względem liczbowym kryterium może być wyświetlenie wszystkich macierzy jako wektorów i wykonanie rzadkiego SVD prostokątnej macierzy uzyskanej przez umieszczenie ich obok siebie, a następnie odrzucenie „wektor” dodawany jako ostatni, jeśli najmniejsza liczba pojedyncza jest bardzo mała. Ale będzie to bardzo kosztowne obliczeniowo. Najpierw sprawdź, czy naprawdę tego potrzebujesz - a jeśli tak, to najpierw wykonaj tani test. A R n 2 n 2 × kAp(A)ARn2n2×k
Erik P.,