我想测试我的程序的数值准确性。为此,我想插入函数到一个网格上,定义在通过使用方程和连续伽辽金法。
此外,我将结果与预期的(插值)函数进行了比较。边界条件是
现在我希望最低值是(),无论网格大小如何,而是我得到(对于)
+---------------+---------------+
| cell number | Lowest value |
+---------------+---------------+
| 16 | -0.003398 |
| 64 | -1.434e-5 |
| 256 | -5.822e-10 |
| 1024 | -4.559e-32 |
| 4096 | 0 |
+---------------+---------------+
这些值对于较小的值没有问题,但只要增加我必须使用更精细的网格,否则我的值将变为负值。它也无助于细化原点周围的网格,值在仍然是负数,除非我在任何地方都使用临界网格密度。
这些数字错误,还是方法本身造成的错误?有没有办法让网格的密度在低梯度的地方低于临界密度(例如在),没有得到“不正确”的结果?