Content deleted Content added
Gsquaredxc (talk | contribs) m v2.03b - WP:WCW project (Template contains useless word template:) |
m v2.05b - Bot T20 CW#61 - Fix errors for CW project (Reference before punctuation) |
||
(30 intermediate revisions by 10 users not shown) | |||
Line 1:
{{Short description|Class of methods used in numerical analysis and scientific computing to solve ODE/PDE}}
{{More footnotes|date=August 2013}}
'''Spectral methods''' are a class of techniques used in [[applied mathematics]] and [[scientific computing]] to numerically solve certain [[differential equation]]s
Spectral methods and [[finite
Spectral methods can be used to solve [[
Spectral methods were developed in a long series of papers by [[Steven Orszag]] starting in 1969 including, but not limited to, Fourier series methods for periodic geometry problems, polynomial spectral methods for finite and unbounded geometry problems, pseudospectral methods for highly nonlinear problems, and spectral iteration methods for fast solution of steady-state problems. The implementation of the spectral method is normally accomplished either with [[collocation method|collocation]] or a [[Galerkin method|Galerkin]] or a [[Tau method|Tau]] approach . For very small problems, the spectral method is unique in that solutions may be written out symbolically, yielding a practical alternative to series solutions for differential equations.
Spectral methods can be computationally less expensive and easier to implement than finite element methods; they shine best when high accuracy is sought in simple domains with smooth solutions. However, because of their global nature, the matrices associated with step computation are dense and computational efficiency will quickly suffer when there are many degrees of freedom (with some exceptions, for example if matrix applications can be written as [[Fourier transform]]s). For larger problems and nonsmooth solutions, finite elements will generally work better due to sparse matrices and better modelling of discontinuities and sharp bends.
==Examples of spectral methods==
Line 15 ⟶ 16:
===A concrete, linear example===
Here we presume an understanding of basic multivariate [[calculus]] and [[Fourier series]]. If <math>g(x,y)</math> is a known, complex-valued function of two real variables, and g is periodic in x and y (that is, <math>g(x,y)=g(x+2\pi,y)=g(x,y+2\pi)</math>) then we are interested in finding a function ''f''(''x'',''y'') so that
:<math>\left(\frac{\partial^2}{\partial x^2}+\frac{\partial^2}{\partial y^2}\right)f(x,y)=g(x,y)\quad \text{for all } x,y</math>
<!--math>f_{xx}(x,y)+f_{yy}(x,y)=g(x,y)\quad \text{for all} x,y</math-->
where the expression on the left denotes the second partial derivatives of ''f'' in ''x'' and ''y'', respectively. This is the [[Poisson equation]], and can be physically interpreted as some sort of heat conduction problem, or a problem in potential theory, among other possibilities.
If we write ''f'' and ''g'' in Fourier series:
:<math>
g&=:\sum b_{j,k}e^{i(jx+ky)},
\end{align}</math>
and substitute into the differential equation, we obtain this equation:
:<math>\sum -a_{j,k}(j^2+k^2)e^{i(jx+ky)}=\sum b_{j,k}e^{i(jx+ky)}.</math>
We have exchanged partial differentiation with an infinite sum, which is legitimate if we assume for instance that ''f'' has a continuous second derivative. By the uniqueness theorem for Fourier expansions, we must then equate the Fourier coefficients term by term, giving
{{NumBlk|:
which is an explicit formula for the Fourier coefficients ''a''<sub>''j'',''k''</sub>.
With periodic boundary conditions, the [[Poisson equation]] possesses a solution only if ''b''<sub>
To turn this into an algorithm, only finitely many frequencies are solved for. This introduces an error which can be shown to be proportional to <math>h^n</math>, where <math>h := 1/n</math> and <math>n</math> is the highest frequency treated.
==== Algorithm ====
# Compute the Fourier transform (''b<sub>j,k
# Compute the Fourier transform (''a<sub>j,k</sub>'') of ''f'' via the formula ({{EquationNote|*}}).
# Compute ''f'' by taking an inverse Fourier transform of (''a<sub>j,k
Since we're only interested in a finite window of frequencies (of size ''n'', say) this can be done using a [[fast Fourier transform]] algorithm. Therefore, globally the algorithm runs in {{nowrap|time ''O''(''n'' log ''n'').}}
Line 59 ⟶ 60:
:<math>\partial_{t} u + u \partial_{x} u = \rho \partial_{xx} u + f \quad \forall x\in\left[0,2\pi\right), \forall t>0</math>
where ρ is the [[viscosity]] coefficient. In weak conservative form this becomes
:<math>\left\langle \partial_{t} u , v \right\rangle = \
where
:<math>\langle \partial_{t} u , v \rangle = \left\langle \
▲ \overline{g(x)}\,dx</math> following [[inner product space|inner product]] notation. [[integration by parts|Integrating by parts]] and using periodicity grants
▲:<math>\langle \partial_{t} u , v \rangle = \left\langle \frac{1}{2} u^2 - \rho \partial_{x} u , \partial_x v\right\rangle+\left\langle f, v \right\rangle \quad \forall v\in \mathcal{V}, \forall t>0.</math>
To apply the
:<math>\mathcal{U}^N := \
and
:<math>\mathcal{V}^N :=\operatorname{span}\left\{ e^{i k x} : k\in -\tfrac12 N
where <math>\hat{u}_k(t):=\frac{1}{2\pi}\langle u(x,t), e^{i k x} \rangle</math>. This reduces the problem to finding <math>u\in\mathcal{U}^N</math> such that
:<math>\langle \partial_{t} u , e^{i k x} \rangle = \left\langle \
Using the [[orthogonality]] relation <math>\langle e^{i l x}, e^{i k x} \rangle = 2 \pi \delta_{lk}</math> where <math>\delta_{lk}</math> is the [[Kronecker delta]], we simplify the above three terms for each <math>k</math> to see
:<math>
\begin{align}
\left\langle \partial_{t} u , e^{i k x}\right\rangle &= \
\\
\left\langle f , e^{i k x} \right\rangle &= \
\\
\left\langle
\
,
\partial_x e^{i k x}
\right\rangle
&=
\
\
\
\
- \rho \partial_x \sum_{l} \hat{u}_l e^{i l x}
,
\partial_x e^{i k x}
\
\\
&=
\
\
\sum_{p} \sum_{q} \hat{u}_p \hat{u}_q e^{i \left(p+q\right) x}
,
i k e^{i k x}
\
-
\
\rho i \sum_{l} l \hat{u}_l e^{i l x}
,
i k e^{i k x}
\
\\
&=
-\
\
\sum_{p} \sum_{q} \hat{u}_p \hat{u}_q e^{i \left(p+q\right) x}
,
e^{i k x}
\
- \rho k
\
\sum_{l} l \hat{u}_l e^{i l x}
,
e^{i k x}
\
\\
&=
Line 133:
- 2\pi\rho{}k^2\hat{u}_k
+ 2 \pi \hat{f}_k
\quad k\in\left\{ -
</math>
Dividing through by <math>2\pi</math>, we finally arrive at
Line 142:
- \rho{}k^2\hat{u}_k
+ \hat{f}_k
\quad k\in\left\{ -
</math>
With Fourier transformed initial conditions <math>\hat{u}_{k}(0)</math> and forcing <math>\hat{f}_{k}(t)</math>, this coupled system of ordinary differential equations may be integrated in time (using, e.g., a [[Runge Kutta]] technique) to find a solution. The nonlinear term is a [[convolution]], and there are several transform-based techniques for evaluating it efficiently. See the references by Boyd and Canuto et al. for more details.
Line 165:
* [http://www-personal.umich.edu/~jpboyd/BOOK_Spectral2000.html Chebyshev and Fourier Spectral Methods] by John P. Boyd.
* Canuto C., [[M. Yousuff Hussaini|Hussaini M. Y.]], Quarteroni A., and Zang T.A. (2006) ''Spectral Methods. Fundamentals in Single Domains.'' Springer-Verlag, Berlin Heidelberg
* Javier de Frutos, Julia Novo (2000): [
* [http://cdm.unimo.it/home/matematica/funaro.daniele/bube.htm Polynomial Approximation of Differential Equations], by Daniele Funaro, Lecture Notes in Physics, Volume 8, Springer-Verlag, Heidelberg 1992
* D. Gottlieb and S. Orzag (1977) "Numerical Analysis of Spectral Methods : Theory and Applications", SIAM, Philadelphia, PA
Line 173:
* Jie Shen, Tao Tang and Li-Lian Wang (2011) "Spectral Methods: Algorithms, Analysis and Applications" (Springer Series in Computational Mathematics, V. 41, Springer), {{ISBN|354071040X}}
* Lloyd N. Trefethen (2000) ''Spectral Methods in MATLAB.'' SIAM, Philadelphia, PA
* Muradova A. D. (2008) "The spectral method and numerical continuation algorithm for the von Kármán problem with postbuckling behaviour of solutions", Advances in Computational Mathematics, 29, pp. 179–206, https://doi.org/10.1007/s10444-007-9050-7.
* Muradova A. D. (2015) "A time spectral method for solving the nonlinear dynamic equations of a rectangular elastic plate", Journal of Engineering Mathematics, 92, pp. 83–101, https://doi.org/10.1007/s10665-014-9752-z.
{{Numerical PDE}}
|