Interesuje mnie obliczenie rozwiązania systemu lage ODE przy użyciu metody krylova jak w [1]. Taka metoda obejmuje funkcje związane z wykładniczym (tzw-Funkcje). Zasadniczo polega na obliczeniu działania funkcji macierzowej przez zbudowanie podprzestrzeni Kryłowa za pomocą iteracji Arnoldiego i rzutowanie funkcji na tę podprzestrzeń. Zmniejsza to problem obliczania wykładniczej znacznie mniejszej macierzy Hessenberga.
Wiem, że istnieje kilka algorytmów do obliczania wykładniczego (patrz [2] [3] i odnośniki w nich). Zastanawiam się, czy istnieje specjalny algorytm do obliczania wykładniczego, który może wykorzystać fakt, że macierzą jest Hessenberg?
[1] Sidje, RB (1998). Expokit: pakiet oprogramowania do obliczania wykładniczych macierzy. Transakcje ACM na oprogramowaniu matematycznym (TOMS), 24 (1), 130-156.
[2] Moler, C., i Van Loan, C. (1978). Dziewiętnaście wątpliwych sposobów obliczania wykładniczej macierzy. Przegląd SIAM, 20 (4), 801–836.
[3] Moler, C., i Van Loan, C. (2003). Dziewiętnaście wątpliwych sposobów obliczania wykładniczej macierzy, dwadzieścia pięć lat później. Przegląd SIAM, 45 (1), 3-49.
źródło
Odpowiedzi:
Ponieważ wydaje się, że expokit używa metody podprzestrzeni Kryłowa, zwykle (przynajmniej jest nadzieja, że) górne macierze Hessenberga mają niewielki wymiar, powiedzmym∼100 . W przypadku macierzy o tych rozmiarach nie powinno być żadnej zasadniczej różnicy w czasie obliczeniowym przy użyciu dowolnej metody obliczania wykładniczego gęstej macierzy. Na przykład „expm” w MATLAB wydaje się używać metody skalowania i kwadratu z przybliżeniem Pade w pobliżu zera.
Jeśli wymiar podprzestrzeni Kryłowa jest duży, można rozważyć wstępne kondycjonowanie http://link.springer.com/article/10.1023%2FA%3A1023219016301 lub ponowne uruchomienie metody podprzestrzeni Krylov http: //www.mathe.tu-freiberg .de / ~ Ernst / PubArchive / eiermannErnstKrylovExp.pdf
źródło