使用 Streamline-Diffusion 方法进行求解,即使用如下的变分形式
在分片 $ P^1 $ 多项式元下求解,其中区间 $ I_j $ 上的 $ \delta $ 取 $ h_j $。
原来的形式是 $$ \epsilon (u_h', v') + (u_h', v) = (x, v) \quad \forall v \in V_h^k $$ TODO: learn why SDFEM works
那么,方程最后要计算的就是
括号表示 $ L_2 $ 内积
原方程的通解为
带入边界条件后得到解
对于 $ \epsilon $ 较小的情况,我们处理成 $$ \begin{aligned} u(x) &= -\frac{e^{x/ \epsilon} - 1 }{e^{1 / \epsilon}-1} (\epsilon + \frac{1}{2}) + \frac{1}{2} x^2 + \epsilon x \ &\approx -e^{(x-1)/\epsilon} (\epsilon + \frac{1}{2}) + \frac{1}{2} x^2 + \epsilon x \end{aligned} $$
进行测试,结果如下
N | $ L^1 $ error | order | $ L^\infty $ error | order |
---|---|---|---|---|
2 | 1.567e-01 | 0.00000e+00 | 3.193e-01 | 0.00000e+00 |
4 | 1.130e-01 | 4.71492e-01 | 2.592e-01 | 3.01201e-01 |
8 | 6.743e-02 | 7.45045e-01 | 1.720e-01 | 5.91691e-01 |
16 | 3.603e-02 | 9.03956e-01 | 1.064e-01 | 6.93140e-01 |
32 | 1.841e-02 | 9.68498e-01 | 6.035e-02 | 8.17564e-01 |
64 | 9.279e-03 | 9.88892e-01 | 3.214e-02 | 9.09262e-01 |
128 | 4.654e-03 | 9.95529e-01 | 1.662e-02 | 9.50868e-01 |
N | $ L^1 $ error | order | $ L^\infty $ error | order |
---|---|---|---|---|
2 | 6.210e-02 | 0.00000e+00 | 1.395e-01 | 0.00000e+00 |
4 | 7.640e-02 | -2.98853e-01 | 1.752e-01 | -3.28766e-01 |
8 | 5.867e-02 | 3.80870e-01 | 1.554e-01 | 1.73097e-01 |
16 | 3.921e-02 | 5.81394e-01 | 1.158e-01 | 4.24922e-01 |
32 | 2.409e-02 | 7.02816e-01 | 7.883e-02 | 5.54468e-01 |
64 | 1.448e-02 | 7.34142e-01 | 5.021e-02 | 6.50855e-01 |
128 | 8.787e-03 | 7.20852e-01 | 3.099e-02 | 6.95903e-01 |
N | $ L^1 $ error | order | $ L^\infty $ error | order |
---|---|---|---|---|
2 | 1.666e-01 | 0.00000e+00 | 4.938e-01 | 0.00000e+00 |
4 | 1.141e-01 | 5.45706e-01 | 4.909e-01 | 8.33249e-03 |
8 | 6.180e-02 | 8.85266e-01 | 4.840e-01 | 2.03964e-02 |
16 | 3.128e-02 | 9.82234e-01 | 4.710e-01 | 3.92875e-02 |
32 | 1.565e-02 | 9.99078e-01 | 4.499e-01 | 6.62069e-02 |
64 | 7.803e-03 | 1.00422e+00 | 4.145e-01 | 1.18085e-01 |
128 | 3.881e-03 | 1.00768e+00 | 3.578e-01 | 2.12246e-01 |
N | $ L^1 $ error | order | $ L^\infty $ error | order |
---|---|---|---|---|
2 | 5.177e-02 | 0.00000e+00 | 1.903e-01 | 0.00000e+00 |
4 | 3.542e-02 | 5.47354e-01 | 1.423e-01 | 4.19224e-01 |
8 | 1.209e-02 | 1.55110e+00 | 1.187e-01 | 2.61048e-01 |
16 | 2.656e-03 | 2.18607e+00 | 9.619e-02 | 3.03768e-01 |
32 | 6.164e-04 | 2.10752e+00 | 6.596e-02 | 5.44303e-01 |
64 | 2.050e-04 | 1.58830e+00 | 4.221e-02 | 6.44002e-01 |
128 | 9.027e-05 | 1.18320e+00 | 2.611e-02 | 6.92890e-01 |
N | $ L^1 $ error | order | $ L^\infty $ error | order |
---|---|---|---|---|
2 | 1.664e-01 | 0.00000e+00 | 4.990e-01 | 0.00000e+00 |
4 | 1.139e-01 | 5.47582e-01 | 4.985e-01 | 1.37527e-03 |
8 | 6.149e-02 | 8.88753e-01 | 4.973e-01 | 3.63856e-03 |
16 | 3.102e-02 | 9.87155e-01 | 4.946e-01 | 7.67157e-03 |
32 | 1.542e-02 | 1.00872e+00 | 4.893e-01 | 1.56048e-02 |
64 | 7.584e-03 | 1.02361e+00 | 4.787e-01 | 3.17858e-02 |
128 | 3.669e-03 | 1.04745e+00 | 4.573e-01 | 6.57469e-02 |
N | $ L^1 $ error | order | $ L^\infty $ error | order |
---|---|---|---|---|
2 | 5.175e-02 | 0.00000e+00 | 1.931e-01 | 0.00000e+00 |
4 | 3.497e-02 | 5.65248e-01 | 1.252e-01 | 6.24697e-01 |
8 | 1.166e-02 | 1.58449e+00 | 5.671e-02 | 1.14295e+00 |
16 | 2.349e-03 | 2.31178e+00 | 1.664e-02 | 1.76889e+00 |
32 | 4.190e-04 | 2.48703e+00 | 3.437e-03 | 2.27554e+00 |
64 | 8.544e-05 | 2.29374e+00 | 5.569e-04 | 2.62561e+00 |
128 | 2.027e-05 | 2.07560e+00 | 7.795e-05 | 2.83681e+00 |
N | $ L^1 $ error | order | $ L^\infty $ error | order |
---|---|---|---|---|
2 | 1.664e-01 | 0.00000e+00 | 4.990e-01 | 0.00000e+00 |
4 | 1.139e-01 | 5.47613e-01 | 4.985e-01 | 1.37534e-03 |
8 | 6.149e-02 | 8.88819e-01 | 4.973e-01 | 3.63887e-03 |
16 | 3.102e-02 | 9.87271e-01 | 4.946e-01 | 7.67281e-03 |
32 | 1.541e-02 | 1.00895e+00 | 4.893e-01 | 1.56098e-02 |
64 | 7.579e-03 | 1.02408e+00 | 4.786e-01 | 3.18063e-02 |
128 | 3.664e-03 | 1.04846e+00 | 4.573e-01 | 6.58335e-02 |
N | $ L^1 $ error | order | $ L^\infty $ error | order |
---|---|---|---|---|
2 | 5.175e-02 | 0.00000e+00 | 1.931e-01 | 0.00000e+00 |
4 | 3.497e-02 | 5.65378e-01 | 1.252e-01 | 6.24773e-01 |
8 | 1.166e-02 | 1.58466e+00 | 5.670e-02 | 1.14313e+00 |
16 | 2.348e-03 | 2.31202e+00 | 1.663e-02 | 1.76937e+00 |
32 | 4.187e-04 | 2.48722e+00 | 3.432e-03 | 2.27693e+00 |
64 | 8.541e-05 | 2.29360e+00 | 5.544e-04 | 2.63000e+00 |
128 | 2.027e-05 | 2.07522e+00 | 7.678e-05 | 2.85208e+00 |
Shishkin 网格可以达到 $ L_1 $ 二阶收敛,而 Uniform 网格只有 $ L_1 $ 一阶。
$ L_\infty $ 范数的阶不是很懂。
并不是很懂为什么orz