以数值方式解决某些 PDE 问题时,变量缩放是否必不可少?

计算科学 pde 条件数 缩放
2021-11-29 23:10:02

在半导体仿真中,方程通常被缩放,因此它们具有归一化的值。例如,在极端情况下,半导体中的电子密度可以变化超过 18 个数量级,而电场可以形状变化超过 6 个(或更多)数量级。

然而,这些论文从未真正给出这样做的理由。就我个人而言,我很高兴处理实数单位的方程,这样做是否有任何数值优势,否则不可能吗?我认为双精度会有足够的数字来应对这些波动。


两个答案都非常有用,非常感谢!

3个回答

求解(线性)偏微分方程包括将方程离散化以产生线性系统,然后由线性求解器求解,该求解器的收敛(速率)取决于矩阵的条件数。缩放变量通常会减少此条件数,从而提高收敛性。(这基本上相当于应用对角线预处理器,请参阅 Nicholas Higham 的Accuracy and Stability of Numerical Algorithms。)

求解非线性偏微分方程还需要一种求解非线性方程的方法,例如牛顿法,其中缩放也会影响收敛。

由于规范化一切通常需要很少的努力,这几乎总是一个好主意。

解决方案具有清晰边界的 PDE 带来的问题超出了用浮点数表示解决方案的能力。当解决方案具有一定的物理意义时尤其如此,例如密度(其本身不能小于 0)。例如,考虑 精确解是逐点正数,但在使用有限元离散化时,可能不再正确。最近出现了一个类似的问题。

εΔu+u=0 on Ω,u=1 on Ω.

也就是说,没有变量或域的缩放可以消除这种困难。

扩展物理量的一个合理原因是使实际方程尽可能简单,即涉及尽可能少的参数(您必须使用这些参数)。例如,不要 (有一些边界条件)你可以继续寻找 您立即推断出任何 ) 这表明扩大参数uα

α2Δu=fα on αΩ
αu1
Δu=f on Ω.
uα(x):=u1(x/α)αα根本不会真正影响解决方案的行为——这一点在这里很明显,但在其他情况下可能很难看到。您可以以相同的方式构造具有更多参数的相当复杂的示例,例如,Navier-Stokes 及其无量纲化雷诺数公式中。

处理浮点数对于从大数中减去小数以及许多其他方面来说可能是个技巧。我建议阅读有关它们的 John D. Cooks 博客文章,例如

浮点数剖析

以及甲骨文的

每个计算机科学家都应该知道的关于浮点运算的知识

此外,某些用于最小化或最大化的数值算法需要标准化以实现数值稳定性。