W tym rozdziale zajmiemy się metodami rozwiązywania równań hiperbolicznych pierwszego rzędu (por. rozdział 2.2.2). Przedstawimy konstrukcję kilku otwartych schematów różnicowych oraz podamy ideę zbieżności schematów za [26].
Konstrukcję schematów różnicowych przedstawimy dla modelowych równań, tzn. równań liniowych skalarnych,
czyli będziemy szukali przybliżeń funkcji
(15.1) |
Zazwyczaj rozwiązania będą spełniały też warunek początkowy
Pokażemy jak stosować te schematy dla równań nieliniowych i układów równań liniowych postaci:
(15.2) |
gdzie
W tym rozdziale zajmiemy się schematami różnicowymi dla równania skalarnego (15.1).
Zakładamy, że
Rozpatrzmy siatkę równomierną na półpłaszczyźnie
dla
Możemy wtedy zdefiniować najprostszy otwarty schemat w sposób następujący:
lub
W tym rozdziale zakładamy, że spełniony jest warunek początkowy
Oba schematy są otwarte. Można postawić pytanie: który ma lepsze własności? Okazuje się, że
stabilność tych schematów zależy od znaku parametru
Schemat upwind definiujemy jako
(15.3) |
lub równoważnie biorąc
(15.4) |
Jeśli wprost dyskretyzujemy pochodną po przestrzeni za pomocą różnicy centralnej, to otrzymujemy następujący schemat:
czyli
(15.5) |
Schemat ten niestety okazuje się być niestabilnym (wg definicji, która pojawi się później). Różni się on od poprzedniego schematu upwind (15.3) brakiem dodatkowego członu
który aproksymuje, por. (7.3) i (7.4):
Ten człon można traktować jako sztuczną numeryczną lepkość (ang. numerical dissipation or artificial viscosity) dodaną do niestabilnego schematu (15.5), dzięki której schemat upwind (15.3) jest stabilny.
Wyprowadzimy teraz kilka kolejnych otwartych schematów.
Rozważmy teraz schemat Laxa-Friedrichsa, w którym
(15.6) |
Kolejny schemat Laxa-Wendroffa wyprowadza się z rozwinięcia rozwiązania w momencie
Korzystamy następnie z równania:
i kolejnego równania otrzymanego z poprzedniego:
W tych równaniach zastępujemy pochodną po przestrzeni ilorazem różnicowym centralnym, por. (4.2):
a drugą pochodną po przestrzeni jej przybliżeniem różnicowym na trzech punktach, por. (7.3) i (7.4):
i w końcu otrzymujemy schemat Laxa-Wendroffa:
(15.7) |
Można też rozważać schematy wielopoziomowe ze względu na czas, np. schemat skoku żaby (leap-frog), w którym pochodną po czasie dyskretyzujemy przez pochodną centralną tak samo, jak pochodną po przestrzeni. Otrzymujemy wówczas schemat trzypoziomowy:
(15.8) |
Zauważmy, że wszystkie dotąd rozważane dwupoziomowe schematy dla równań skalarnych, tzn. (15.7), (15.3), (15.5), można zapisać w zunifikowany sposób jako:
gdzie
W ten sposób możemy schematy dla równania (15.1) łatwo przenieść na przypadek nieliniowych równań hiperbolicznych postaci:
gdzie
przyjmując oznaczenie
Również schematy te można zastosować do układu (15.2). Wtedy widzimy, że dla nieosobliwej macierzy
gdzie
Proszę zauważyć, że to równanie jest układem
Zatem możemy zastosować np. schemat upwind lub inny - niezależnie do każdej składowej - i otrzymać
przybliżone rozwiązanie
Znając wartości
czyli przybliżone rozwiązanie
W praktyce - w pierwszym kroku przeprowadzamy obliczenia wstępne rozwiązując numerycznie zadanie
własne dla macierzy
Do schematów różnicowych dla równań hiperbolicznych stosuje się ogólną teorię zbieżności Laxa-Richmyera schematów różnicowych, analogiczną do teorii zbieżności z rozdziału 8.1, por. rozdział 14.2 w [26]. Aby uzyskać oszacowanie błędu w pewnej normie dyskretnej, należy wykazać odpowiedni rząd aproksymacji schematu i stabilność w tej normie.
Przy przyjętych powyżej oznaczeniach przyjmijmy, że
(15.9) |
lub w punkcie siatki
ze znanym warunkiem początkowym
Często stosowaną normą jest norma będąca aproksymacją normy
Jeśli istnieją stałe
to
dla dowolnych
Z kolei zgodność schematu (aproksymacja schematem wyjściowego zadania; ang. consistency) oznacza, że schemat dyskretny aproksymuje wyjściowe równanie, tzn.
spełnia
dla
Jeśli dla pewnej stałej
to powiemy, że rząd aproksymacji schematu wynosi
Jak już wiemy, teoria Laxa mówi, że stabilność i aproksymacja (zgodność) dają zbieżność. Tak jest też w tym przypadku, tzn. teoria Laxa-Richmyera (por. [27]) mówi, że schemat jest zbieżny:
dla
Rozpatrzmy najprostszy schemat Laxa-Friedrichsa (15.6). Jeśli założymy, że
(15.10) |
to otrzymujemy:
czyli, że schemat jest stabilny warunkowo przy założeniu
Analogicznie można pokazać, że przy założeniu, że spełniony jest warunek (15.10), schemat Laxa-Wendroffa (15.7) i schemat upwind (15.3) są stabilne. Widzimy, że schemat leap-frog (15.8) jest stabilny (w sensie analogicznej definicji odpowiedniej dla schematów trzypoziomowych) przy założeniu, że w warunku (15.10) zachodzi ostra nierówność.
Wykazanie, że wszystkie wymienione schematy są zgodne i zbadanie jakie mają rzędy pozostawiamy jako zadanie.
Metoda opisana w tym rozdziale służy badaniu stabilności schematów, choć - de facto - może tylko sprawdzić stabilność w sensie negatywnym. Tzn. metoda pozwala wykazać, że jakiś schemat nie jest stabilny.
Zakładamy, że rozpatrujemy schemat dwupoziomowy lub trzypoziomowy, np. dający się zapisać jako (15.9), i że szukamy jego rozwiązań w postaci
gdzie
Metoda polega na wyznaczeniu warunków na te stałe w zależności od konkretnej postaci schematu.
Jeśli się okaże, że istnieje rozwiązanie tej postaci z
Podsumowując: wstawimy
Zbadaj przy pomocy metody Fouriera stabilność schematów:
Zaimplementuj w octave schemat Laxa-Wendroffa dla równania
Treść automatycznie generowana z plików źródłowych LaTeXa za pomocą oprogramowania wykorzystującego LaTeXML.
strona główna | webmaster | o portalu | pomoc
© Wydział Matematyki, Informatyki i
Mechaniki UW, 2009-2010. Niniejsze materiały są udostępnione bezpłatnie na licencji Creative Commons Uznanie autorstwa-Użycie niekomercyjne-Bez utworów zależnych 3.0 Polska.
Projekt współfinansowany przez Unię Europejską w ramach
Europejskiego Funduszu Społecznego.
Projekt współfinansowany przez Ministerstwo Nauki i Szkolnictwa Wyższego i przez Uniwersytet Warszawski.