我目前正在对我的程序进行校对,该程序旨在使用牛顿法求解非线性方程,使用连续伽辽金方法。因此,作为第一步,我使用与时间无关的方程( - 泊松方程的有限元方法的收敛率,取决于元素阶数)对其进行了检查,得到了肯定的结果。作为下一步,我打算
在域
和 }\partial\Omega 上的边界条件
作为时间离散化我使用
这应该给我
那么雅可比是
或弱形式(同时考虑边界条件)
最优步长应该为1,问题为线性的。
然后我将每个时间步的结果与预期结果进行比较,一方面通过计算 -seminorm,另一方面计算解决方案中的最高值(应该相当于 )。不过,我的结果并不像预期的那样:
+-------+-------------------+-----------------+
| time | Calculated result | Expected result |
+-------+-------------------+-----------------+
| 0 | 0.336254 | 1 |
| 0.1 | 0.113069 | 0.138911 |
| 0.2 | 0.0380201 | 0.0192963 |
| 0.3 | 0.0127845 | 0.00268047 |
| 0.4 | 0.00429886 | 0.000372347 |
| 0.5 | 0.00144552 | 5.17232e-05 |
| 0.6 | 0.000486064 | 7.18493e-06 |
| 0.7 | 0.000163442 | 9.98066e-07 |
| 0.8 | 5.49583e-05 | 1.38643e-07 |
| 0.9 | 1.84801e-05 | 1.9259e-08 |
| 1 | 6.21403e-06 | 2.67529e-09 |
+-------+-------------------+-----------------+
我知道该程序适用于但目前我不知道如何检查为什么我的计算结果与我预期的不同。我检查了雅可比行列式(假设我上面计算的方程是正确的),所以我假设错误在其他地方。