Notice: Undefined index: mode in /home/misc/mst/public_html/common.php on line 63 Notice: Undefined index: mode in /home/misc/mst/public_html/common.php on line 65 Notice: Undefined index: mode in /home/misc/mst/public_html/common.php on line 67 Notice: Undefined index: mode in /home/misc/mst/public_html/common.php on line 69 Notice: Undefined variable: base in /home/misc/mst/public_html/lecture.php on line 36 Numeryczne równania różniczkowe – 10. Metoda różnic skończonych - stabilność schematów dla zadań eliptycznych w normach energetycznych – MIM UW

Zagadnienia

10. Metoda różnic skończonych - stabilność schematów dla zadań eliptycznych w normach energetycznych

Materiał w poniższym rozdziale jest materiałem dodatkowym, tzn. nie wchodzi w zakres materiału przedstawianego na wykładzie.

10.1. Wprowadzenie - stabilność dla modelowego zadania

W tym rozdziale przedstawimy krótki zarys innej metody badania stabilności zadań przybliżonych otrzymanych za pomocą metody różnic skończonych, tym razem, w dyskretnej normie L^{2}_{h}. Jest to metoda analogiczna do metody badania stabilności zadań różniczkowych w równaniach fizyki matematycznej, por. [11].

Przedstawimy tę metodę teraz dla naszej modelowej dyskretyzacji (7.5) z jednorodnymi warunkami brzegowymi:

\displaystyle-\partial\overline{\partial}u_{h}(x)+c*u_{h}(x)=f(x)\qquad x\in\Omega _{h}, (10.1)
\displaystyle u(x)=0\qquad x\in\partial\Omega _{h}.

W przypadku niejednorodnych warunków brzegowych dla c=0, zamiana zmiennych: v(t)=u(t)+g(a)+\frac{g(b)-g(a)}{b-a}(t-a) dla u rozwiązania zadania z zerowymi warunkami brzegowymi daje v - rozwiązanie (7.5).

Proszę zauważyć, że dla tego zadania dyskretnego zachodzi też stabilność w dyskretnej normie maksimum, por. rozdział 9.

Przyjmujemy oznaczenie \overline{\Omega}_{h}=\{ x_{k}=a+k*h:k=0,\ldots,N\}. Wprowadzamy do przestrzeni L^{2}_{h}(\overline{\Omega}_{h}) wszystkich funkcji określonych na siatce \overline{\Omega}_{h} następujący iloczyn skalarny:

[u,v]_{h}=h\sum _{{x\in\overline{\Omega}_{h}}}u(x)v(x)=h\sum _{{k=0}}^{N}u_{k}v_{k}

będący dyskretnym odpowiednikiem iloczynu skalarnego typu L^{2}(\Omega). Tutaj u_{k}=u(x_{k}). Wprowadzamy dodatkowo oznaczenia:

[u,v)_{h}=h\sum _{{k=0}}^{{N-1}}u_{k}v_{k},\qquad(u,v]_{h}=h\sum _{{k=1}}^{N}u_{k}v_{k},\qquad(u,v)_{h}=h\sum _{{k=1}}^{{N-1}}u_{k}v_{k}.

Potrzebujemy następujących odpowiedników różnicowych wzorów na całkowanie przez części nazywanych: różnicowymi wzorami na sumowanie przez części (ang. finite difference summing by parts formulas):

\displaystyle h*\sum _{{k=1}}^{{N-1}}\partial u_{k}v_{h} \displaystyle= \displaystyle-h*\sum _{{k=1}}^{N}u_{k}\overline{\partial}v_{k}+u_{{N+1}}v_{{N+1}}-u_{1}v_{0}
\displaystyle h*\sum _{{k=1}}^{{N-1}}\overline{\partial}u_{k}v_{k} \displaystyle= \displaystyle-h*\sum _{{k=0}}^{{N-1}}u_{k}\partial v_{h}+u_{N}v_{{N+1}}-u_{0}v_{0}.

Tutaj \overline{\partial}u_{k}=\overline{\partial}u(x_{k})=h^{{-1}}(u_{k}-u_{{k-1}}) i \partial u_{k}=\partial u(x_{k})=h^{{-1}}(u_{{k+1}}-u_{k}). Dowód tych wzorów pozostawiamy jako proste zadanie, por. ćwiczenie 10.1. Możemy je przedstawić z wykorzystaniem naszej notacji:

\begin{array}[]{rcl}(\partial u,v)_{h}&=&-(u,\overline{\partial}v]_{h}+u_{{N+1}}v_{{N+1}}-u_{1}v_{0},\\
(\overline{\partial}u,v)_{h}&=&-[\overline{\partial}u,v)_{h}+u_{N}v_{{N+1}}-u_{0}v_{0}.\end{array} (10.2)

Zauważmy, że \partial\overline{\partial}u_{k}=\overline{\partial}\partial u_{k} dla k=1,\ldots,N-1 zatem z powyższych wzorów dla u widzimy, że dla u_{0}=u_{N}=0:

(-\partial\overline{\partial}u,u)_{h}=(-\overline{\partial}\partial u,u)_{h}=[\partial u,\partial u)_{h}=(\overline{\partial}u,\overline{\partial}u]_{h}. (10.3)

Prawdziwy jest również dyskretny odpowiednik nierówności Friedrichsa:

Twierdzenie 10.1 (różnicowa nierówność Friedrichsa)

Dla u\in L^{2}_{h}(\overline{\Omega}_{h}) takiej, że u_{0}=u_{N}=0 prawdziwa jest nierówność

\| u\| _{{0,h}}^{2}\leq(b-a)^{2}[\partial u,\partial u)_{h}=(b-a)^{2}(\overline{\partial}u,\overline{\partial}u]_{h}.

Dowód pozostawiamy jako zadanie, por. ćwiczenie 10.1.

Weźmy -\partial\overline{\partial}u_{k} dla u_{h} rozwiązania (10.1), przemnóżmy przez h*u_{k} i zsumujmy po k=1,\ldots,N-1. Wtedy, korzystając z wzorów na sumowanie przez części (10.2), otrzymujemy

\displaystyle(-\partial\overline{\partial}u_{h},u_{h})_{h}+c(u_{h},u_{h})_{h}=(\overline{\partial}u_{h},\overline{\partial}u_{h}]_{h}+c(u_{h},u_{h})_{h}=(f_{h},u_{h})_{h}.

Możemy skorzystać z różnicowej nierówności Friedrichsa, por. twierdzenie 10.1:

\displaystyle\| u_{h}\| _{{0,h}}^{2}\leq(b-a)^{2}(\overline{\partial}u_{h},\overline{\partial}u_{h}]_{h}\leq(b-a)^{2}(f_{h},u_{h})_{h}\leq(b-a)^{2}\| f_{h}\| _{{0,h,\Omega _{h}}}\| u_{h}\| _{{0,h}},

a stąd otrzymujemy oszacowanie:

\| u_{h}\| _{{0,h}}\leq(b-a)\| f_{h}\| _{{0,h,\Omega _{h}}}.

W przypadku c>0 otrzymujemy oszacowanie bez użycia nierówności Friedrichsa:

\| u_{h}\| _{{0,h}}\leq\sqrt{c^{{-1}}}\| f_{h}\| _{{0,h,\Omega _{h}}}.

Uzyskaliśmy stabilność w dyskretnej normie L^{2}_{h}, z której wynika też istnienie jednoznacznego rozwiązania równego zero dla f_{h}=0. Stąd wynika istnienie jednoznacznego rozwiązania.

Weźmy r_{h}u\in L^{2}_{h}(\overline{\Omega}_{h}) zdefiniowane jako r_{h}u(x)=u(x) dla x\in\overline{\Omega}_{h}. Takie obcięcie jest zdefiniowane poprawnie dla dowolnej funkcji ciągłej. Zauważmy, że zbiór funkcji ciągłych na \overline{\Omega} jest gęsty w L^{2}(a,b). Dodatkowo

\| r_{h}u\| _{{0,h}}\rightarrow\| u\| _{{L^{2}(a,b)}}\qquad h\rightarrow 0

dla dowolnej funkcji ciągłej na [a,b] oraz jeśli rozwiązanie (7.5) jest w C^{4}([a,b]), to

\| L_{h}r_{h}u-Lu\| _{{0,h}}=O(h^{2}).

Korzystając z twierdzenia 8.1 otrzymujemy:

\| r_{h}u-u_{h}\| _{{0,h}}=O(h^{2}). (10.4)

Ten przykład jest prosty, ale w ten sam sposób można badać bardziej skomplikowane schematy różnicowe dla zadań postawionych w obszarach w dwóch czy więcej wymiarach.

10.2. Stabilności w normach energetycznych

Przedstawimy teraz ogólną teorię stabilności w dyskretnych normach energetycznych. Dyskretne normy energetyczne są analogiczne do tzw. norm energetycznych, w których bada się stabilność rozwiązań wyjściowych zadań różniczkowych z wykorzystaniem teorii równań fizyki matematycznej.

Zakładamy, że rozpatrujemy rodzinę skończenie wymiarowych przestrzeni Hilberta H_{h} z iloczynem skalarnym (\cdot,\cdot)_{h} oraz operator A_{h}:H_{h}\rightarrow H_{h}. Interesuje nas zadanie dyskretne:

A_{h}u_{h}=f_{h}. (10.5)

Powiemy, że operator liniowy A:H_{h}\rightarrow H_{h} jest samosprzężony w H_{h}, jeśli A=A^{*} dla A^{*}:H_{h}\rightarrow H_{h} zdefiniowanego jako

(A^{*}u,v)_{h}=(u,Av)_{h}\qquad\forall u,v\in H_{h}.

Powiemy, że A jest dodatnio określony (nieujemnie określony), jeśli

(Au,u)_{h}>0\quad((Au,v)_{h}\geq 0)\qquad\forall u\in H_{h},\quad u\not=0.

Nierówność operatorową A>B (A\geq B) definiujemy jako A-B>0 (A-B\geq 0). Zauważmy, że jeśli A=A^{*}>0 to (u,v)_{A}=(Au,v)_{h} jest poprawnie zdefiniowanym iloczynem skalarnym, który nazywamy iloczynem skalarnym energetycznym dla operatora A. Oznaczmy \| u\| _{A}=(u,u)_{A}^{{1/2}} jako normę energetyczną dla A. Zauważmy, że A^{{-1}} też jest samosprzężony dodatnio określonym operatorem. Stabilność w odpowiednich normach dyskretnych typu L^{2}, czy normach energetycznych pozwala nam badać następujące twierdzenie:

Twierdzenie 10.2

Niech A:H_{h}\rightarrow H_{h} będzie liniowym operatorem w przestrzeni Hilberta skończenie wymiarowej H_{h}. Wtedy, dla u_{h} rozwiązania (10.5) zachodzi:

  • jeśli A\geq\alpha _{1}I, to

    \| u\| _{h}\leq\alpha _{1}^{{-1}}\| f\| _{h},
  • jeśli A=A^{*}\geq\alpha _{2}I, to

    \| u\| _{A}\leq\alpha _{2}^{{-1/2}}\| f\| _{h},
  • jeśli A\geq\alpha _{3}B dla B=B^{*}>0, to

    \| u\| _{B}\leq\alpha _{3}^{{-1}}\| f\| _{{B^{{-1}}}},

gdzie \alpha _{k} dla k=1,2,3 są stałymi dodatnimi.

Dowód pozostawiamy jako zadanie, por. twierdzenia 10.10 w [10].

Przykład 10.1

Zastosujmy powyższe twierdzenia do badania stabilności w przestrzeni Hilberta L^{2}_{h}(\Omega _{h}) funkcji określonych na \Omega _{h}=\{ x_{k}\} _{{k=1,\ldots,N-1}} dla x_{k}=a+k*h z iloczynem skalarnym (u,v)_{h}=\sum _{{k=1}}^{{N-1}}u_{k}v_{k} dyskretyzacji (10.1). Bierzemy, jak powyżej, u_{k}=u(x_{k}) dla u\in L^{2}_{h}(\Omega _{h}) przy czym przyjmujemy, że u_{0}=u_{N}=0.

Pokażemy, że nasz powyższy dowód stabilności bazował na tym, że odpowiedni operator różnicowy jest dodatnio określony w tej przestrzeni.

Definiujemy A_{h},B_{h}:L^{2}_{h}(\Omega _{h})\rightarrow L^{2}_{h}(\Omega _{h}) jako

\displaystyle B_{h}u(x) \displaystyle= \displaystyle-\partial\overline{\partial}u(x)\qquad x\in\Omega _{h},
\displaystyle A_{h}u(x) \displaystyle= \displaystyle-\partial\overline{\partial}u(x)+c*u(x)\qquad x\in\Omega _{h}.

Wtedy, przyjmując że u_{0}=u_{N}=v_{0}=v_{N}=0, otrzymujemy jak powyżej (por. wzory na sumowanie przez części (10.2)):

(B_{h}u,v)_{h}=[\partial u,\partial v)_{h}=(u,B_{h}v)_{h},

a następnie, z różnicowej nierówności Friedrichsa, por. twierdzenie 10.1, dla u\not=0 widzimy, że

(B_{h}u,u)_{h}=[\partial u,\partial u)_{h}\geq\frac{1}{(b-a)^{2}}(u,u)_{h}>0,

czyli B_{h}\geq\frac{1}{(b-a)^{2}}I. A z kolei A_{h}=B_{h}+c*I\geq\left(c+\frac{1}{(b-a)^{2}}\right)*I, czyli jest to operator dodatnio określony i samosprzężony i zachodzi A_{h}\geq B_{h}. Zatem, z pierwszego podpunktu twierdzenia 10.2 otrzymujemy:

\| u_{h}\| _{h}\leq\left(c+\frac{1}{(b-a)^{2}}\right)^{{-1}}\| f_{h}\| _{h},

a z drugiego i trzeciego - odpowiednio:

\displaystyle\| u_{h}\| _{{A_{h}}} \displaystyle\leq \displaystyle\left(c+\frac{1}{(b-a)^{2}}\right)^{{-1/2}}\| f_{h}\| _{h},
\displaystyle\| u_{h}\| _{{B_{h}}} \displaystyle\leq \displaystyle\| f_{h}\| _{{B_{h}^{{-1}}}}.
Przykład 10.2

Rozpatrzmy następujący problem różniczkowy, powstały z naszego modelowego problemu poprzez dodanie członu z pierwszą pochodną:

-u^{{\prime\prime}}(x)+b*u^{{\prime}}(x)+c*u=f,\qquad u(0)=u(L)=0

dla b,c stałych, przy czym c\geq 0. Dyskretyzujemy ten problem na siatce \overline{\Omega}_{h}=\{ x_{k}\} _{{k=0,\ldots,N}} dla x_{k}=k*h dla h=L/N w następujący sposób:

\displaystyle L_{h}u_{h}(x)=-\partial\overline{\partial}u_{h}(x)+b*\tilde{\partial}u+c*u_{h}(x)=f(x)\qquad x\in\Omega _{h}, (10.6)
\displaystyle u_{h}(0)=u_{h}(L)=0\qquad x\in\partial\Omega _{h}.

Tutaj

\tilde{\partial}u(x)=\frac{u(x+h)-u(x-h)}{2*h}

jest ilorazem różnicowym centralnym. Zauważmy, że \tilde{\partial}=0.5(\partial+\overline{\partial}). Można pokazać, że jeśli rozwiązanie u\in C^{4}([0,L]), to:

|L_{h}u(x)-f(x)|=O(h^{2})\qquad x\in\overline{\Omega}_{h},

co pozostawiamy jako zadanie. Z tego możemy wywnioskować, że rząd aproksymacji wynosi dwa, zarówno w normie dyskretnej maksimum, jak i w L^{2}_{h}.

Weźmy przestrzeń H_{h} z tym samym iloczynem skalarnym i operator B_{h} z przykładu 10.1.

Wtedy, z wzorów na różnicowe sumowanie przez części (10.2), otrzymujemy:

\displaystyle(\tilde{\partial}u,u)_{h}=0.5*(\partial u+\overline{\partial}u,u)_{h}=-0.5*(u,\partial u+\overline{\partial}u)_{h}.

Stąd (\tilde{\partial}u,u)_{h}=0. Zatem, choć L_{h} nie jest symetryczny (o ile b\not=0), to jest operatorem dodatnio określonym i zachodzi:

(L_{h}u,u)_{h}=((B_{h}+c*I)u,u)_{h}\geq\left(c+\frac{1}{L^{2}}\right)*(u,u)_{h}.

czyli L_{h}\geq B_{h}+c*I\geq(c+\frac{1}{L^{2}})*I.

Z powyższego oszacowania możemy pokazać stabilność w normie \|\cdot\| _{{0,h}} jak w przykładzie 10.1, a w konsekwencji zbieżność dyskretną z rzędem dwa, co pozostawiamy jako zadanie.

10.3. Zadania

Ćwiczenie 10.1

Udowodnij wzory na sumowanie przez części, tzn. (10.2) oraz różnicową nierówność Friedrichsa, tzn. twierdzenie 10.1.

Ćwiczenie 10.2

Zbadaj rząd i stabilność schematu z przykładu 10.2 dyskretyzacji modelowego problemu jednowymiarowego w \|\cdot\| _{{0,h}} dla c>0 i c=0. Wykaż zbieżności z rzędem dwa w normie \|\cdot\| _{{0,h}}, o ile rozwiązanie wyjściowego problemu jest klasy C^{4}.

Ćwiczenie 10.3

Zbadaj stabilność schematu (8.10) dyskretyzacji modelowego problemu dwuwymiarowego w dyskretnej normie L^{2} dla c\geq 0.

Ćwiczenie 10.4

Rozpatrzmy równanie różniczkowe na kwadracie \Omega=(0,1)^{2}: chcemy znaleźć u\in C^{2}(\Omega)\cap C(\overline{\Omega}):

-\triangle u+b_{1}u_{x}+b_{2}u_{y}+c*u=f\qquad\mathrm{w}\quad[0,1]^{2}

z zerowym warunkiem brzegowym. Tu c,b_{1},b_{2} są stałymi, a c jest dodatkowo nieujemna.

Analogicznie do przykładu 10.2 i dyskretyzacji (8.10), skonstruuj schemat różnicowy wykorzystując odpowiednie pochodne centralne do aproksymacji pochodnych u_{x},u_{y}.

Zbadaj rząd schematu i stabilność w w dyskretnej normie L^{2}.

Wskazówka: 

Postępuj analogicznie jak w przykładzie 10.2.

Treść automatycznie generowana z plików źródłowych LaTeXa za pomocą oprogramowania wykorzystującego LaTeXML.

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.