Równanie Sylvestera

Równanie Sylvestera – często spotykane w teorii sterowania równanie macierzowe mające postać:

gdzie to macierze o wymiarach

Istnienie i jednoznaczność rozwiązania edytuj

Korzystając z notacji iloczynu Kroneckera i operatora wektoryzacji   powyższe równanie może być zapisane w postaci

 

gdzie   jest macierzą jednostkową o rozmiarach  

W takiej postaci równanie Sylvestera może być interpretowane jako układ liniowy o wymiarze   (W przypadku poszukiwania rozwiązania numerycznego zapis równania w takiej formie nie jest zalecany, ponieważ rozwiązanie równania w wersji układu liniowego jest niewydajne obliczeniowo i źle uwarunkowane).

Jeśli   i  kanonicznymi formami Jordana macierzy   i   a   i   są ich wartościami własnymi, można zapisać:

 

Ponieważ   jest górną macierzą trójkątną z elementami na przekątnej   macierz po lewej stronie jest osobliwa wtedy i tylko wtedy, gdy istnieje   i   takie że  

W ten sposób dowiedzione zostało, że równanie Sylvestera ma jednoznaczne rozwiązanie, wtedy i tylko wtedy macierze   i   nie mają wspólnych wartości własnych.

Rozwiązanie numeryczne edytuj

Klasyczny algorytm rozwiązania numerycznego równania Sylvestera jest algorytm Bartelsa-Stewarta, na który składa się przekształcenie macierzy   i   do postaci Schura (zob. rozkład Schura) za pomocą algorytmu QR, a następnie rozwiązanie układu trójkątnego poprzez podstawienie w tył dla macierzy trójkątnej. Algorytm ten, którego złożoność obliczeniowa wynosi   operacji arytmetycznych, wykorzystywany jest w pakietach oprogramowania LAPACK, Matlab i GNU Octave (w funkcji lyap).

Zobacz też edytuj