使用光谱方法实现高相对精度(相对于绝对精度)

计算科学 pde 谱法 准确性
2021-12-08 08:25:43

问题

我有一个 PDE,我正试图用光谱方法解决。解决方案y总是正的,衰减为yeax对于大x. 域是[0,). (实际上有两个自变量,但我们现在不用担心。)

不幸的是,尽管我获得的任何数值解(使用 Galerkin 方法)似乎都具有良好的绝对精度,但对于较大的x由于解的动态范围大(来自指数衰减)。我想知道如何最好地提高我的解决方案的相对准确性。任何建议,将不胜感激!

示例测试问题

这不是我要解决的实际 PDE(实际上是 2d),但它说明了我遇到的困难:

(1+ex)y=y+2xex,y(0)=0.

解析解是x2/(1+ex)(绘制为下面的红色虚线),这始终是积极的。然而,用拉盖尔函数基组解决这个问题(重新组合,使得每个基函数都是0x=0) 的 20 阶产生下面的蓝色曲线,当它变小时,它会偏离解析解(甚至变为负数)。

在此处输入图像描述

我尝试过/考虑过的

  • 我考虑过转型y=eA(x)然后解决A. 这可能会起作用,但不幸的是使方程非线性,我希望不要处理。
  • 我尝试使用 Laguerre 函数作为基组,它内置了指数衰减。但这并没有真正起作用,正如您在上面看到的那样 - 解决方案仍然具有较低的相对精度x.
  • 我打算换y=eaxz然后解决z. 我不知道a先验的,但可以估计。我认为这可以正常工作,但我想知道是否有我不知道的更通用的方法。
1个回答

所以我继续在 Matlab 中实现了一个代码,它可以使用谱方法解决这个问题,利用一个简单的多项式基础。使用 20 阶的简单多项式基础得到以下结果:

在此处输入图像描述

在此处输入图像描述

我做的一件你可能没有做的事情是定义存在于可能具有更好数值稳定性的域上的基础(尤其是当 x 增加时)。我做到了,所以我的基础是在域上定义的ζ[1,1]. 然后我使用了之间的映射ζx修改积分并进行必要的计算以找到基的系数。

现在根据我的解决方案,我质疑您是否有一些实施错误导致您拥有的解决方案不准确。假设实现是正确的,我希望您的解决方案至少与我的简单多项式基础产生的一样好。