tovább fel vissza

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

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.


tovább fel vissza
bene@arpad.elte.hu