1D MLSM and FDM comparison
Different numerical approaches to solving a Dirichlet or Neumann problem
<math>
\begin{align*}
\text{Dirichlet} && \text{Neumann} \\
f(x) &= 2x^2+5 \text{ on } (0, 1) & f(x) &= 2x^2+5 \text{ on } (0, 1) \\
f(0) &= 1 & f'(0) &= 1 \\
f(1) &= 1 & f(1) &= 1 \\
f(x) &= \frac{1}{6} \left(x^4+15 x^2-16 x+6\right) & f(x) &= \frac{1}{6} \left(x^4+15 x^2+6 x-16\right)
\end{align*} </math>
were analysed. Theoretically, FDM and MLSM should match completely. This is practivaly demonstrated up to certain discretization level.
The interval <math>[0, 1]</math> was always discretized uniformly using $N$ nodes, <math>x_i = a+i h, h = (b-a)/N</math>.
Preliminaries
When solving such problems one usually makes the disretization of the form <math>f(x_i) \approx (f_{i-1} -2 f_i + f{i+1}) / h^2</math>, but when writing the system of equations, it is usually written as $f_{i-1} -2 f_i + f{i+1} = h^2 g(x_i)$. In the general MLSM formulation it is not possible to always do that and therefore we want to know if there are any numerical differences between solving $f_{i-1} -2 f_i + f{i+1} = h^2 g(x_i)$ and $(f_{i-1} -2 f_i + f{i+1})_h^2 = g(x_i)$. No significant differences were noted.
Dirichlet case
Precision and execution time are summarised in graphs below. MSLM and Mathematica use $O(nN)$ time to build a matrix and solve the system. Additionally, MLSM uses $O(Nmn^2)$ to construct the shape functions. The $O$ constant is close to 1 as all operations are basic arithemtic operations. Indded, in this case $n = m = 3$ and if we add this theoretical complexity of $27N$ to Mathematica case, we fall directly in the MLSM case.
Neumann case
We have more that one possible disctretization of the Neumann BC in point 0. Three explored options are:
- onesided finite difference <math>f'(0) \approx (f_1 - f_0) / h</math>
- symmetric finite difference <math>f'(0) \approx (f_1 - f_{-1}) / h</math> and normal discretization in node 0 <math>f(0) \approx (f_1 - 2f_0 + f_{-1}) /h^2</math>
- onesided double finite difference <math>f'(0) \approx (-3/2 f_0 + 2f_1 -1/2 f_2) / h</math>
MLSM with support size $n = 3$ and three polynomial basis functions results in exactly the FDM method with onesided double finite difference approximation.