Skip to content

Latest commit

 

History

History
197 lines (162 loc) · 6.61 KB

README.md

File metadata and controls

197 lines (162 loc) · 6.61 KB

有限元分析 第六次程序作业

问题描述

$$ \left{ \begin{aligned} &-\epsilon u'' + u' = x \\ &u(0) = u(1) = 0 \end{aligned} \right. $$

使用 Streamline-Diffusion 方法进行求解,即使用如下的变分形式

$$ \epsilon (u_h', v') + (u_h', v + \delta v') = (x, v + \delta v') \quad \forall v \in V_h^k $$

在分片 $ 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

那么,方程最后要计算的就是

$$ \epsilon (v', v') + (v', v) + (v', \delta v') = (x, v + \delta v') $$

括号表示 $ L_2 $ 内积

实验结果

原方程的通解为

$$ \begin{aligned} &u(x) = c_1 \epsilon e^{x/\epsilon} + c_2 + x^2/2 + x \epsilon \end{aligned} $$

带入边界条件后得到解

$$ \begin{aligned} &u(x) = \frac{ \epsilon + 1/2}{1 - e^{1 / \epsilon}} (e^{x/ \epsilon} - 1) + \frac{1}{2} x^2 + \epsilon x \end{aligned} $$

对于 $ \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} $$

进行测试,结果如下

$ \epsilon = 0.1 $, Uniform

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

下面为此时解的情况: 下面为此时误差的情况:

$ \epsilon = 0.1 $, shishkin

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

下面为此时解的情况: 下面为此时误差的情况:

$ \epsilon = 0.001 $, Uniform

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

下面为此时解的情况: 下面为此时误差的情况:

$ \epsilon = 0.001 $, shishkin

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

下面为此时解的情况: 下面为此时误差的情况:

$ \epsilon = 1e-05 $, Uniform

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

下面为此时解的情况: 下面为此时误差的情况:

$ \epsilon = 1e-05 $, shishkin

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

下面为此时解的情况: 下面为此时误差的情况:

$ \epsilon = 1e-07 $, Uniform

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

下面为此时解的情况: 下面为此时误差的情况:

$ \epsilon = 1e-07 $, shishkin

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