Modern numerikus módszerek
Bene Gyula
Eötvös Loránd Tudományegyetem, Elméleti Fizikai Tanszék
1117 Budapest, Pázmány Péter sétány 1/A
11. hét
Parciális differenciálegyenletek
Osztályozás numerikus szempontból:
- Kezdetiérték-probléma
Hiperbolikus és parabolikus egyenletek esetében (v.ö.: közönséges
differenciálegyenletek kezdetiérték-feladata)
Tipikus probléma: stabilitás
- Peremérték-probléma
Elliptikus egyenletek esetében (v.ö.: közönséges
differenciálegyenletek peremérték-feladata)
Tipikus probléma: numerikus hatékonyság (műveletek száma)
Kezdetiérték-probléma
Egy tipikus hiperbolikus egyenlet:
$$\frac{\partial u}{\partial t}=-v\frac{\partial u}{\partial x}$$
megoldás: $$u=f(x-vt)$$
tetszőleges differenciálható, egyváltozós $f(x)$ függvénnyel (megj.:
$f(x)=u(x,0)$).
Numerikus megoldás?
$$u_j^{n+1}=u_j^{n}-\frac{v\Delta t}{2\Delta
x}\left(u_{j+1}^{n}-u_{j-1}^{n}\right)$$
FTCS (forward time centered space) séma. Stabilitás?
Neumann stabilitási analízis. Ansatz:
$$u_j^n=\xi^n\exp(ikj\Delta x)$$
Itt $k$ a hullámszám.
$$\xi=1-i\frac{v\Delta t}{\Delta
x}\sin(k\Delta x)$$
Ez abszolút értékben mindig 1-nél nagyobb, a séma abszolút instabil!
Lax-módszer:
$$u_j^{n+1}=\frac{1}{2}\left(u_{j+1}^{n}+u_{j-1}^{n}\right)-\frac{v\Delta t}{2\Delta
x}\left(u_{j+1}^{n}-u_{j-1}^{n}\right)$$
Ebből
$$\xi=\cos(k\Delta x)-i\frac{v\Delta t}{\Delta
x}\sin(k\Delta x)$$
Abszolút érték:
$$\left|\xi\right|^2=\cos^2(k\Delta x)+\left(\frac{v\Delta t}{\Delta
x}\right)^2\sin^2(k\Delta x)=1-\left[1-\left(\frac{v\Delta t}{\Delta
x}\right)^2\right]\sin^2(k\Delta x)$$
Stabilitás feltétele:
$$\frac{|v|\Delta t}{\Delta
x}<1$$
Ez a Courant-feltétel.
A stabilitás magyarázata:
$$\frac{u_j^{n+1}-u_j^{n}}{\Delta t}=-v\frac{u_{j+1}^{n}-u_{j-1}^{n}}{2\Delta
x}+\frac{u_{j+1}^{n}-2u_j^{n}+u_{j-1}^{n}}{2\Delta t}\;,$$
ami a
$$\frac{\partial u}{\partial t}=-v\frac{\partial u}{\partial x}+\frac{(\Delta
x)^2}{2\Delta t}\frac{\partial^2 u}{\partial x^2}$$
egyenlet diszkretizált alakja $\rightarrow$ numerikus diffúzió (numerikus
viszkozitás). Amplitudó-hiba. Fázishiba. Transzport-hiba. Nemlineáris instabilitás.
Hullámegyenlet:
$$\frac{\partial^2 u}{\partial t^2}=v^2\frac{\partial^2 u}{\partial x^2}$$
Kezdetiérték-probléma megoldása (d'Alambert-formula):
$$u(x,t)=\frac{1}{2}\left(f(x-vt)+f(x+vt)\right)+\frac{1}{2v}\int_{x-vt}^{x+vt}g(s)ds\;,$$
ahol $f(x)=u(x,0)$ és $g(x)=u_t(x,0)$.
Legyen $r=v\frac{\partial u}{\partial x}$ és $s=\frac{\partial u}{\partial
t}$. Ekkor a hullámegyenlet ekvivalens a következővel:
$$\begin{eqnarray}
\frac{\partial r}{\partial t} & = & v\frac{\partial s}{\partial x}\\
\frac{\partial s}{\partial t} & = & v\frac{\partial r}{\partial x}
\end{eqnarray}$$
Lax-módszer:
$$\begin{eqnarray}
r_j^{n+1} & = & \frac{1}{2}\left(r_{j+1}^{n}+r_{j-1}^{n}\right)+\frac{v\Delta t}{2\Delta
x}\left(s_{j+1}^{n}-s_{j-1}^{n}\right)\\
s_j^{n+1} & = & \frac{1}{2}\left(s_{j+1}^{n}+s_{j-1}^{n}\right)+\frac{v\Delta t}{2\Delta
x}\left(r_{j+1}^{n}-r_{j-1}^{n}\right)
\end{eqnarray}$$
Neumann-féle stabilitási analízis:
Ansatz:
$$\left(\begin{array}{c}r_j^{n}\\s_j^{n}\end{array}\right)=\xi^n\exp(ikj\Delta
x)\left(\begin{array}{c}r_0\\s_0\end{array}\right)$$
Ezzel:
$$\left(\begin{array}{cc}\cos(k\Delta x)&& i\frac{v\Delta t}{\Delta
x}\sin(k\Delta x)\\i\frac{v\Delta t}{\Delta
x}\sin(k\Delta x)&& \cos(k\Delta
x)\end{array}\right)\left(\begin{array}{c}r_0\\s_0\end{array}\right)=\xi\left(\begin{array}{c}r_0\\s_0\end{array}\right)$$
Ebből $\xi$-re kapjuk:
$$\xi^2-2\cos(k\Delta x)\xi+\left[\cos^2(k\Delta x)+\left(\frac{v\Delta t}{\Delta
x}\right)^2\sin^2(k\Delta x)\right]=0\;,$$
azaz
$$\xi=\cos(k\Delta x)\pm i\left(\frac{v\Delta t}{\Delta
x}\right)\sin(k\Delta x)\;.$$
A stabilitás feltétele ismét a Courant-feltétel:
$$\frac{|v|\Delta t}{\Delta
x}<1$$
Időben másodrendű módszerek:
"staggered leapfrog":
$$\frac{u_j^{n+1}-u_j^{n-1}}{2\Delta t}=-v\frac{u_{j+1}^{n}-u_{j-1}^{n}}{2\Delta
x}$$
A stabilitás feltétele ismét a Courant-kritérium, ui.
$$\xi= -i\left(\frac{v\Delta t}{\Delta
x}\right)\sin(k\Delta x)\pm \sqrt{1-\left(\frac{v\Delta t}{\Delta
x}\right)^2\sin^2(k\Delta x)}$$
Ráadásul a Courant-kritérium teljesülése esetén $|\xi|=1$.
Ugyanezt kapjuk a hullámegyenlet esetére is. Drift instabilitás a
"leapfrog" módszernél.
Lax-Wendroff-séma a
$$\frac{\partial u}{\partial t}=-\frac{\partial F(u)}{\partial x}$$
fluxuskonzervatív egyenletre:
$$\begin{eqnarray}
u_{j+1/2}^{n+1/2} & = & \frac{1}{2}\left(u_{j+1}^n+u_j^n\right)-\frac{v\Delta
t}{2\Delta x}\left(F^n_{j+1}-F^n_{j-1}\right)\\
u_{j}^{n+1} & = & u_{j}^n-\frac{v\Delta
t}{\Delta x}\left(F^{n+1/2}_{j+1/2}-F^{n+1/2}_{j-1/2}\right)
\end{eqnarray}$$
A stabilitás feltétele ismét a Courant-kritérium.
Diffúziós problémák. FTCS. Implicit
módszer. Crank-Nicolson-módszer. Schrödinger-egyenlet.
Kezdetiérték-probléma magasabb térdimenziókban. Lax-séma.
Crank-Nicolson-módszer. ADI (alternating-direction implicit) módszer.
bene@arpad.elte.hu