Mam duży problem wartości własnej sześciennej:
Mógłbym to rozwiązać, przechodząc na liniowy problem wartości własnych, ale spowodowałoby to, że układ byłby tak duży:
gdzie i . Jakie inne techniki są dostępne, aby rozwiązać problem wartości własnej sześciennej? Słyszałem, że istnieje wersja Jacobi-Davidson, która ją rozwiąże, ale nie znalazła implementacji.
Ponadto muszę być w stanie celować w określone wartości własne podobnie do metody przesunięcia i odwracania ARPACK i znaleźć powiązane wektory własne.
Odpowiedzi:
Dzięki protokołowi odwrotnej komunikacji ARPACK nie trzeba jawnie przechowywać macierzy : wystarczy podać dwie funkcje, które obliczają:3 n × 3 n
(nadal płacisz cenę za przechowywanie wektorów wymiarowych ale nic nie płacisz za macierze).3×n
Jeśli chodzi o inwertowany przekształcać, można zrobić to samo, czyli wdrożenia go samodzielnie za pomocą wywołania zwrotnego, który oblicza zamiast i zastąpić komputerowej z . Aby obliczyć , możesz wstępnie wyliczyć swoją macierz , co oznacza tylko wstępne faktoring (przy użyciu LU, Cholesky'ego lub ich rzadkich wersji, w zależności od struktury macierzy). W przypadku pełnej transformacji z odwróconym przesunięciem myślę, że można zrobić coś podobnego.x↦M−1x x↦Mx λ′s λ−1 M−1x M A0
źródło