W tym rozdziale przedstawimy ogólną teorię zbieżności schematów różnicowych, a następnie pokażemy m.in. zastosowanie tej teorii do przykładów z poprzedniego wykładu.
Osoby zainteresowane obszerniejszym przedstawieniem teorii różnic dzielonych odsyłamy do monografii [27].
W tym podrozdziale opiszemy ogólną teorię zbieżności schematów różnicowych. Ograniczymy się do szczegółowego omówienia przypadku schematów liniowych, tzn. aproksymacji równań różniczkowych liniowych.
Teoria ta potrzebna jest zarówno do badania zbieżności schematów różnicowych dla równań eliptycznych, jak i dla schematów dla innych typów równań, np. równań parabolicznych.
Załóżmy, że rozpatrujemy następujące zadanie różniczkowe:
chcemy znaleźć funkcję określoną na obszarze
taką, że
spełnia równanie różniczkowe z warunkami brzegowymi:
![]() |
![]() |
![]() |
(8.1) | ||
![]() |
![]() |
![]() |
(8.2) |
gdzie - to dane funkcje,
- to operator różniczkowy liniowy,
- to odpowiedni operator różniczkowy brzegowy liniowy określony na
dla
.
Będziemy zakładać, że powyższe zadanie jest poprawnie postawione, tzn. że
ma jednoznaczne rozwiązanie dla
przestrzeni liniowej funkcji określonych na
z normą
.
Zakładamy też, że
![]() |
dla przestrzeni funkcji określonych na
,
a
![]() |
dla przestrzeni funkcji określonych na
.
Wyjściowe zadanie różniczkowe możemy zapisać w postaci operatorowej jako:
znaleźć
takie, że
![]() |
![]() |
![]() |
(8.3) | ||
![]() |
![]() |
![]() |
(8.4) |
Zdefiniujmy jako siatkę, tzn. zbiór punktów izolowanych,
węzłów
należących do
z parametrem
.
Zakładamy, że istnieje rodzina siatek ,
czyli rodzina zbiorów punktów izolowanych należących do
indeksowanych parametrem
, należącym do pewnego zbioru
takim, że
(tzn. że istnieje podciąg siatek
taki, że
).
W praktyce najczęściej stosuje się siatki równomierne, tzn. podzbiory dla ustalonego punktu
. Ewentualnie stosuje się siatki o jednolitych krokach w danym kierunku w
.
Siatkę przedstawiamy w postaci
, gdzie
będziemy nazywać zbiorem punktów siatkowych wewnętrznych (zazwyczaj zawartych w
), a
- zbiorem punktów siatkowych brzegowych (zawartych albo leżących w pobliżu
). W zbiorze
punktów brzegowych możemy dalej wyróżniać podzbiory
.
Zakładamy, że rodzina siatek
jest gęsta w sensie następującej definicji:
Rodzina siatek jest gęsta (ang. dense) w
, gdy dla dowolnego
istnieje
takie, że dla
i dowolnego
kula
o środku w
i promieniu
zawiera co najmniej jeden punkt
.
Proszę zauważyć, że rodzina siatek zdefiniowana w Rozdziale 7.1 jest w sposób oczywisty gęsta dla .
Wprowadzamy teraz rodzinę zadań przybliżonych (schematów różnicowych), które dają się zapisać w następujący sposób:
chcemy
znaleźć funkcję określoną na
taką, że
![]() |
![]() |
![]() |
||
![]() |
![]() |
![]() |
czy inaczej - operatorowo
![]() |
![]() |
![]() |
(8.5) | ||
![]() |
![]() |
![]() |
(8.6) |
Zakładamy, że
i
dla
, gdzie:
jest przestrzenią liniową unormowaną funkcji określonych na
z normą
,
jest przestrzenią liniową unormowaną funkcji określonych na
z normą
,
jest przestrzenią liniową unormowaną funkcji określonych na
z normą
.
Zazwyczaj wszystkie rozpatrywane przestrzenie są zupełne, tzn. są przestrzeniami Banacha. W przypadku gdy jest ograniczony, są one też przestrzeniami skończenie wymiarowymi. Jeśli
i wszystkie
są operatorami liniowymi, to mówimy, że rozpatrujemy zadanie przybliżone (dyskretne) liniowe, czy schemat różnicowy liniowy. W przeciwnym razie - gdy choć jeden z operatorów jest nieliniowy, to mamy do czynienia z zadaniem przybliżonym nieliniowym, czy schematem różnicowym nieliniowym.
Proszę zauważyć, że rozpatrujemy rodzinę zadań przybliżonych, parametryzowanych przez .
Tak, jak w przykładzie w Rozdziale 7.1, aby mówić o zbieżności rozwiązania zadania dyskretnego
do
musimy mieć możliwość porównania obu funkcji. Dlatego
zakładamy, że istnieje rodzina operatorów obcięcia (ang. restriction)
, które są liniowe i ograniczone jednostajnie (ang.uniformly bounded) względem
, tzn.
![]() |
Operator obcięcia pozwala porównywać rozwiązania w normie przestrzeni dyskretnej, ale
możemy porównywać je również w normie przestrzeni . W tym celu musimy wprowadzić
rodzinę operatorów liniowych przedłużenia
.
Najczęściej za operatory przedłużenia bierze się odpowiednie operatory interpolacji.
Można wprowadzić pojęcie zbieżności aproksymacji przestrzeni. Tzn.
rodzinę trójek nazywamy aproksymacją przestrzeni
i mówimy, że
ta aproksymacja jest zbieżna, jeśli dla dowolnego
zachodzi zbieżność
![]() |
W teorii zbieżności metod różnicowych najczęściej nie stosuje się operatorów przedłużenia, a za to wprowadza się warunek zgodności norm:
Jeżeli dla danej przestrzeni unormowanej i rodziny przestrzeni unormowanych z odpowiednimi operatorami obcięcia
zachodzi zbieżność
![]() |
to mówimy, że normy dyskretne są zgodne
(ang. consistent) z normą
,
Od tej pory będziemy zakładali zgodność norm dyskretnych z normą w , według powyższej definicji.
Zadanie przybliżone (zadanie dyskretne, schemat różnicowy) (8.5)-(8.6) jest zbieżne (czasami używa się terminu zbieżne dyskretnie) jeśli
![]() |
gdzie - to rozwiązanie zadania (8.3)-(8.4), a
- to rozwiązanie dyskretne zadania przybliżonego (8.5)-(8.6).
Jeśli dodatkowo zachodzi
![]() |
to mówimy o zbieżności (dyskretnej) rzędu .
Wielkość będziemy nazywać błędem dyskretnym dla zadania przybliżonego (ang. dicrete error).
Kolejnym krokiem jest wprowadzenie pojęcia aproksymacji zadania ciągłego (wyjściowego zadania różniczkowego) przez zadanie dyskretne.
Mówimy, że zadanie przybliżone (8.5)-(8.6) aproksymuje zadanie (8.3)-(8.4), jeśli lokalne błędy aproksymacji zdefiniowane jako
![]() |
dążą do zera dla . Tutaj
jest rozwiązaniem zadania (8.3)-(8.4), a
są z zadania dyskretnego (8.5)-(8.6).
Jeśli dodatkowo zachodzi:
![]() |
to mówimy, że schemat aproksymuje (8.3)-(8.4) z rzędem (ang. local truncation error is of order
),
(inaczej, że lokalne błędy aproksymacji są rzędu
, dane zadanie przybliżone lub
schemat różnicowy ma rząd
, rząd aproksymacji schematu wynosi
).
Drugim ważnym pojęciem jest stabilność zadania dyskretnego. Tu podamy definicje stabilności dla schematu liniowego:
Liniowe zadanie przybliżone (8.5)-(8.6) jest stabilne (poprawnie postawione), jeśli istnieje stała taka, że dla dowolnego
,
i
dla dowolnych
i
zachodzą:
rozwiązanie to spełnia następującą nierówność:
![]() |
gdzie - to dodatnia stała niezależna od
(ani oczywiście od
).
W literaturze czasami za stabilność zadania przybliżonego przyjmuje się tylko warunek (2) z definicji 8.5.
Proszę zauważyć, że stabilność zadania przybliżonego jest samoistną cechą związaną tylko z definicją samego zadania dyskretnego- ona nie zależy w żaden sposób od rozwiązania równania różniczkowego.
Dodatkowo warto też zauważyć, że jeśli jest przestrzenią skończenie wymiarową,
istnieje rozwiązanie (8.5)-(8.6)
i spełniony jest warunek (2) z definicji 8.5, to wtedy to rozwiązanie jest
jednoznaczne.
Sformułujemy teraz następujące twierdzenie o zbieżności zadania przybliżonego:
Jeśli liniowe zadanie przybliżone (8.5)-(8.6) jest stabilne oraz aproksymuje
zadanie (8.3)-(8.4), którego rozwiązaniem jest , wtedy zadanie przybliżone jest zbieżne i
![]() |
Z powyższego twierdzenia otrzymujemy od razu następujący wniosek:
Jeśli zadanie przybliżone (8.5)-(8.6) jest stabilne oraz aproksymuje
zadanie (8.3)-(8.4) z rzędem , to
![]() |
Oznaczmy .
Z liniowości
i
dla
wynika, że
spełnia zadanie przybliżone z odpowiednimi prawymi stronami:
![]() |
zatem z definicji stabilności zadania przybliżonego otrzymujemy następujące oszacowanie:
![]() |
![]() |
![]() |
Następnie z faktu aproksymacji zadania (8.3)-(8.4) przez zadanie przybliżone (8.5)-(8.6) otrzymujemy ostatecznie oszacowanie:
![]() |
Powyższe twierdzenie można krótko podsumować, że aby otrzymać schemat zbieżny z rzędem musi być on stabilny i posiadać rząd aproksymacji
.
Proszę zauważyć, że twierdzenie jest bardzo ogólne, a dowód jest prosty. Pojawia się pytanie: jak dobrać odpowiednie przestrzenie i operatory, aby zadania przybliżone (schematy) były stabilne i miały możliwie wysoki rząd aproksymacji.
Proszę zauważyć, że powyższa teoria zbieżności może zostać zastosowana do zadań różniczkowych rożnego typu - zarówno eliptycznych, jak i parabolicznych, czy hiperbolicznych.
Wracamy teraz do dyskretyzacji modelowego zadania jednowymiarowego (7.5)-(7.6).
Za przestrzeń weźmy przestrzeń funkcji ciągłych na
, czyli
z normą supremum
.
Oznaczmy przez
zbiór funkcji określonych na dowolnym podzbiorze
siatki
z normą
. Za przestrzeń dyskretną przyjmijmy
.
Jeżeli wprowadzimy operatory
i
zdefiniowane jako (por. (7.3)):
![]() |
![]() |
![]() |
||
![]() |
![]() |
![]() |
dla i
,
to zadanie (7.5)-(7.6) możemy zapisać w formie operatorowej jako:
![]() |
(8.7) | ||||
![]() |
dla
zdefiniowanego jako
dla
oraz
z
dla
.
W tym przypadku dla funkcji ciągłej przekształceniem obcięcia (ang. restriction) jest
zdefiniowany jako
![]() |
Możemy teraz zbadać zbieżność błędu dyskretnego:
![]() |
dla , co jest równoważne badaniu zbieżności w punktach siatki.
Zauważmy, że otrzymujemy
![]() |
co oznacza jednostajną ograniczoności operatorów obcięcia.
Można też w tym przypadku łatwo wprowadzić operator przedłużenia (ang. prolongation)
Np. niech
będzie funkcją ciągłą liniowo interpolującą wartości
pomiędzy punktami siatki tj.
![]() |
Następnie możemy badać zbieżność błędu
dla
. Jeśli błąd zbiega do zera, to
mówimy o zbieżności schematu w normie supremum.
Zauważmy, że w naszym przypadku dodatkowo zachodzi
![]() |
(8.8) |
czyli zbieżność aproksymacji przestrzeni wyjściowej przez przestrzeń dyskretną oraz
![]() |
(8.9) |
czyli zachodzi zgodność rodziny norm przestrzeni dyskretnych z normą przestrzeni wyjściowej
.
Wykazanie tego pozostawiamy jako zadanie, por. ćwiczenie 8.1.
Innym wyborem przestrzeni i norm jest badanie zbieżności i błędu w normie , czy odpowiednio dyskretnej normie
definiowanej dla
jako:
![]() |
gdzie - to przestrzeń wszystkich funkcji określonych na
.
Oczywiście zmieniliśmy oznaczenie przestrzeni funkcji dyskretnych na siatce. Jest to ten sam zbiór funkcji określonych na siatce, ale zmieniła się norma dyskretna.
Aby otrzymać zgodność norm powinniśmy inaczej zdefiniować obcięcia np. poprzez uśrednienia,
czyli
dla
definiujemy:
![]() |
dla kuli o środku w
i promieniu
.
Inna możliwość to rozważenie zbioru funkcji ciągłych ale z normą
, oraz normy dyskretnej typu
na
. Następnie możemy przeprowadzić analizę z obcięciem
. Zbiór funkcji
z normą
nie jest przestrzenią zupełną, ale jest gęstą podprzestrzenią przestrzeni
.
Nietrudno zauważyć, że problem przybliżony aproksymuje problem wyjściowy z rzędem dwa, o ile rozwiązanie należy do , w obu powyżej przedstawionych przestrzeniach dyskretnych, czyli w odpowiednich normach dyskretnych.
Wykazanie, że schemat jest stabilny zarówno w
jak i
jest trudniejsze. Zajmiemy się tym w kolejnych wykładach.
Rozpatrzmy ponownie modelowe zadanie dwuwymiarowe na kwadracie jednostkowym (7.8).
Analogicznie, jak w przypadku jednowymiarowym, niech
z normą supremum
i
będzie przestrzenią funkcji określonych na podzbiorze
siatki
(por. (7.10))
z normą
.
Przestrzeń dyskretną definiujemy jako
.
Operator siatkowy (ang. mesh operator or discrete operator)
i
brzegowy
definiujemy jako:
![]() |
![]() |
![]() |
||
![]() |
![]() |
![]() |
dla i
.
Teraz zadanie (7.11) możemy zapisać w formie operatorowej jako
![]() |
(8.10) |
dla funkcji prawej strony
oraz
zdefiniowanych jako
dla
i
dla
.
Operatorem obcięcia (ang. restriction) jest
zdefiniowany jako
![]() |
Tak samo jak w przypadku jednowymiarowym badamy błąd:
lub w dyskretnej normie
, tzn. w
![]() |
Tu jest zdefiniowana jako przestrzeń wszystkich funkcji określonych na
.
Oczywiście zbiór funkcji siatkowych jest ten sam, zmieniła się tylko norma.
Można pokazać, że zachodzi zgodność norm dyskretnych z odpowiednimi normami, oraz że schemat (7.11) posiada rząd aproksymacji dwa i jest stabilny w obu normach dyskretnych. Wykazanie rzędu aproksymacji jest prostym zadaniem, natomiast pokazanie stabilności jest trudniejsze, por. rozdziały 9 i rozdział 10.
Zbadaj rząd lokalnych błędów aproksymacji schematu (8.7) dyskretyzacji modelowego problemu jednowymiarowego w obu normach dyskretnych.
Wykaż, że rząd aproksymacji schematu (7.11) w dyskretnych normach maksimum i wynosi dwa, o ile rozwiązania wyjściowego zadania różniczkowego są dostatecznie gładkie.
Zbadaj rząd lokalnych błędów aproksymacji schematu (8.10) dyskretyzacji modelowego problemu dwuwymiarowego w obu normach dyskretnych.
(Przybliżony warunek brzegowy) Rozpatrzmy modelowe zadanie jednowymiarowe z warunkiem brzegowym Dirichleta:
![]() |
dla .
Rozpatrzmy następującą dyskretyzację zbudowaną na siatce dla
z
z
. Definiujemy
i
, oraz operatory:
![]() |
i
. Zbadaj rząd lokalnego błędu aproksymacji tej dyskretyzacji w dyskretnej normie maksimum.
Wystarczy zbadać błąd operatora brzegowego w punkcie . W pozostałych punktach błąd jest jak w schemacie (8.7).
Rozważmy modelowe zadanie, jak i siatkę niezawierającą prawy koniec obszaru, tak jak w poprzednim ćwiczeniu.
Operatory i
definiujemy tak samo, natomiast zmodyfikujmy operator brzegowy
w prawym końcu, tzn. w punkcie
.
Rozpatrzmy tzw. aproksymację Collatza, tzn. niech wartość będzie liniowo interpolowała
warunek brzegowy w końcu obszaru:
![]() |
gdzie .
Zbadaj lokalny błąd aproksymacji tego schematu w normach dyskretnych maksimum i i jego rząd, tzn. czy zachowuje się jak
dla pewnego
naturalnego.
Rozpatrzmy zadanie z poprzedniego ćwiczenia, ale z siatką nierównomierną:
dla
z
z
.
Operator
możemy zdefiniować jako
![]() |
gdzie , ale musimy zmodyfikować definicję
, tzn.
![]() |
i
![]() |
Wyznacz w zależności od wartości
i
tak, aby lokalny błąd aproksymacji schematu był możliwie mały.
Rozpatrzmy zadanie jednowymiarowe na
z warunkiem Neumanna
. Rozpatrzmy następującą dyskretyzację zbudowaną na siatce
dla
z
.
![]() |
oraz
![]() |
Zbadaj rząd lokalnego błędu aproksymacji tego schematu względem parametru siatki w dyskretnej normie maksimum i dyskretnej normie
.
Rozpatrzmy zadanie jednowymiarowe na
z warunkiem Neumanna
. Rozpatrzmy następującą dyskretyzację o podwyższonym rzędzie
zbudowaną na siatce
dla
z
.
W punktach wewnętrznych siatki stosujemy standardowo aproksymacje na trzech punktach:
![]() |
natomiast na brzegu podnosimy rząd schematu, a dokładniej zakładamy, że równanie jest spełnione w punktach brzegu, tzn.
funkcja jest określona na
i
dla
.
Rozpatrzmy lewy punkt brzegu
. Widzimy, że
![]() |
o ile jest dostatecznie gładka. Zatem - korzystając z obu faktów - możemy skonstruować równanie różnicowe:
![]() |
przybliżające warunek Neumanna w punkcie z wyższym rzędem.
Skonstruuj analogiczne równanie różnicowe przybliżające warunek Neumanna w punkcie z wyższym rzędem.
Pokaż, że rząd lokalnego błędu aproksymacji tego schematu względem parametru siatki
wynosi dwa w dyskretnej normie maksimum i dyskretnej normie
dla odpowiednio gładkiego rozwiązania.
Przetestuj w octavie rząd lokalnego błędu schematu w normie dyskretnej maksimum dla
metodą połowienia kroków.
Rozpatrzmy modelowe zadanie dwuwymiarowe na kole o średnicy jeden tzn. (7.8) dla .
Dobierzmy siatkę na płaszczyźnie o parametrze
równomierną zawierającą punkt
, tzn.
.
Za uznajmy wszystkie punkty siatki, które należą do
i wszystkie punkty przecięcia prostych zadających siatkę z brzegiem
. Te punkty przecięcia uznajemy za brzegowe punkty siatki. Otrzymujemy oczywiście siatkę nierównomierną, bo odległość między brzegowym punktem siatki, a jego sąsiadem wewnętrznym
jest mniejsza od
(poza ewentualnie pojedynczymi punktami).
Tu warunek brzegowy możemy zadać dokładnie. Pojawia się pytanie: jak przybliżyć drugą pochodną w punktach wewnętrznych siatki, których punkty sąsiednie są na brzegu?
Definiujemy w takim punkcie (załóżmy, że tylko jego prawy sąsiad
jest na brzegu):
![]() |
dla pewnych parametrów .
Jeśli ma dwa punkty sąsiednie leżące na brzegu (powiedzmy prawy i dolny punkt sąsiedni), tzn.
są na brzegu, to oczywiście musimy wyznaczyć całe równanie różnicowe:
![]() |
Zadanie: Wyznacz odpowiednie parametry , czy
tak, aby lokalny błąd schematu
był możliwie mały, tzn. żeby schemat posiadał możliwie wysoki rząd lokalnego błędu aproksymacji względem
w dyskretnej normie maksimum.
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.