Rozważ sytuację, w której chcesz rozwiązać układ liniowy przy użyciu wstępnie kondycjonowanej metody Krylova, ale zastosowanie samego wstępnego kondycjonera obejmuje rozwiązanie układu pomocniczego, co odbywa się za pomocą innej wstępnie kondycjonowanej metody Kryłowa.
Z jednej strony możesz uruchomić wewnętrzne rozwiązanie, aby uzyskać zbieżność na każdym etapie zewnętrznego rozwiązania.
Z drugiej strony, nie można w ogóle wykonać wewnętrznego rozwiązania, ale zamiast tego zastąpić go wewnętrznym warunkiem wstępnym.
Gdzieś pośrodku możesz obciąć wewnętrzną pętlę Kryłowa po pewnej ustalonej liczbie iteracji lub po osiągnięciu pewnej tolerancji.
Empirycznie natknąłem się na sytuacje, w których pierwsza skrajność jest lepsza, i różne sytuacje, w których druga skrajność jest lepsza (pod względem całkowitego kosztu). Nie mogę jednak znaleźć wyraźnego powodu, dla którego pewne sytuacje faworyzują jedną strategię nad drugą.
Czy są jakieś wskazówki lub teorie na temat tego, kiedy te różne strategie są preferowane?
źródło
Odpowiedzi:
To pytanie było otwarte od dawna, ale myślę, że nadal zasługuje na odpowiedź.
Podstawowym problemem związanym ze stosowaniem solwerów Kryłowa w poszczególnych blokach jako wewnętrznych warunków wstępnych jest to, że nie są one operatorami liniowymi. Aby to zrozumieć, oznaczmy przezx~= K.( A , P, τ, N; b ) wektor otrzymany jako rozwiązanie przez uruchomienie metody przestrzeni Kryłowa K. w układzie liniowym A x = b dla co najwyżej N. iteracje lub do tolerancji τ zostanie osiągnięty za pomocą warunku wstępnego P.≈ZA- 1 . Innymi słowy, możesz myślećK. jako operator działający na b .
Teraz zauważ toK(A,P,0,∞;⋅) jest operatorem liniowym: wymagałoby rozwiązania Ax=b dokładnie, tj. K(A,P,0,∞;b)=A−1b , który jest liniowy w b . W wielu przypadkach uruchomienie metody przestrzeni Kryłowa dla dokładnie jednej iteracji, zaczynając od wektora zerowego, jest również operatorem liniowymb . Ale ponieważ sekwencja wektorów Kryłowa zależy od początkowej resztyr(0)=b−Ax(0) , operator K(A,P,τ,N;⋅) zasadniczo nie jest operatorem liniowym dla skończonego N i τ .
Oznacza to, że jeśli używaszK(A,P,τ,N;⋅) jako część warunku wstępnego układu liniowego, w którym A jest jednym blokiem, a następnie otrzymujesz warunek wstępny, który nie działa jako operator liniowy.
Jest to w przeciwieństwie do wielu innych metod, które są stosowane do warunku wstępnego: na przykład jeden krok SSOR jest operacją liniową na wektorze, do którego go zastosujesz, podobnie jak wszystkie inne metody, które stosują jeden krok iteracji o stałym punkcie.
Podstawowym problemem jest teraz to, że większość metod kosmicznych Kryłowa wymaga, aby kondycjoner był operatorem liniowym. Po prostu nie zbiegają się, jeśli warunek wstępny nie jest liniowy, co wyjaśnia twoją obserwację. Z drugiej strony istnieją odmiany niektórych metod kosmicznych Kryłowa - zwykle poprzedzonych słowem „Elastyczny”, takich jak F-GMRES w „Elastyczny GMRES” - które działają w ten sposób i mogą poradzić sobie z warunkami wstępnymi, które nie są liniowe operatorzy. Te elastyczne warianty oryginalnych metod nadal będą zbieżne i często są potężnymi metodami w połączeniu z dobrymi (ale nieliniowymi) warunkami wstępnymi.
źródło