在(凸)多边形内插入矢量场的最佳方法是什么?

计算科学 插值
2021-11-26 17:41:03

我想在多边形网格中的凸多边形内插入一个矢量场。

对于三角形网格,该方案在三角形中使用分段常数插值,在三角形中心离散化。

我对在顶点上插值标量场的梯度特别感兴趣,因此请随意建议仅适用于梯度的方法。

我目前的简单想法:

  1. 增加插值多项式的次数。
  2. 解决最小二乘问题。
  3. 使用三角测量在多边形内获得连续但通常非微分的场。
  4. 使用有限元方法中的帽子函数。

我想知道是否有更先进的技术,以及不同的插值方式的优缺点是什么。

我认为 1) 可能是个坏主意,因为我不知道它是否会过度拟合数据中的异常值。此外,对于同一网格中具有许多顶点的多边形和具有少量顶点的多边形,它的行为可能有所不同。

方法 2) 可能有助于避免过度拟合,我猜这是在超定问题中插值的最常见方法。

选项 3) 可能是最简单的,但会导致多边形内的场不太平滑,我不确定选择不同三角剖分的含义是什么。

对于选项 4),我不确定使用取决于多边形顶点数的次数的帽子函数进行插值是否不等于选项 1),即提高插值多项式的次数。

在多边形网格中插入矢量场/梯度的其他方法是什么?


我想保持这个更笼统,因为这个概念可能对其他应用程序有用,但我将添加一个我目前正在寻找的示例应用程序。

应用

使用离散外微积分 (Hirani 2003)中定义的的单纯形定义了分段常数梯度(第 2.7 节)ϕσ0,σnσ0σn ϕσ0,σn(x)=1

和中的符号表示,该函数在单纯形的所有顶点处进行评估。

等式 5.7.2 中定义了一个离散算子,它将离散形式映射到定义在单纯形的外心上的向量场为1

σ0σn(f(σ0)f(v))ϕσ0,σn

其中是单纯形的任意顶点 (注意这里的定义只针对梯度给出)vσi0σn

这个定义当然适用于单纯形,因为边形成切向空间的基础,即单纯形的边(例如,与三角形顶点相邻的两条边)。vσ0¯

对于多于个顶点的多边形,有两个问题:n+1

  • vσ0¯不是所有顶点多边形的边缘。σ0
  • vσ10¯,,vσn+1+k0¯是过度定义的。例如,一个四边形将定义三个向量来跨越一个 2D 切线空间。

这个问题有一个潜在的原因,那就是四边形(或更高阶的多边形)不能保证所有点都位于同一个切线空间中,这就是为什么最小二乘解可能是一种选择的原因可以假设多边形大部分是平坦的,并且当多边形可能高度弯曲时,为什么高阶插值可能有用。

上面的问题是,插值的最佳方法是什么,例如,在 2D 六边形内部,这些方法有哪些不同的优点和问题?
我特别感兴趣的是哪些属性是守恒的,哪些是近似的,因为 DEC 方案将其运算符分离为可以定义的运算符(在预定义的元素上,即仅网格的一部分)和涉及的运算符公制,只是近似值。

2个回答

让我尝试将问题分解为两个步骤。

第 1 步:您有一个多边形(网格的一个单元格),并且您有与该多边形的每个顶点您想定义一个函数以便这就是所谓的插值,您会发现大量关于多边形单元插值的文献。一种简单的方法是将多边形分割成三角形,然后对每个三角形进行分段线性插值。但也有其他选择:例如,您可以使用调和函数对每个多边形进行插值(这是“虚拟元素方法”的基本思想)。dixiu(x)u(xi)=di

第 2 步:您想找到类似的内容。问题当然是,虽然处不可微对此的解决方案是使用“恢复”程序——例如,Zienkiewicv-Zhu (ZZ) 估计器中使用的程序。的最小二乘问题。 其中范数中的积分扩展到与所讨论的顶点相邻的所有单元格,是适当度数的多边形,然后你评估u(xi)uxi

ming(x)12ug2
gg(xi)u(xi). 细节有点复杂,但它是一种成熟的技术,你会找到大量的文献。

您的解释表明您通常不知道插值可以做什么。我想没有人能告诉你什么是最好的插值方法,不管你的数据如何。

基本上,我们只能给你建议:

  1. 假设您知道数据点在搭配意义上非常准确,例如没有噪声,并且数据是平滑的,您可以在多边形内使用高阶表示(多项式或其他)。请注意,高阶并不一定意味着高精度。它只会告诉您,随着分辨率的提高,错误减少得更快。

  2. 假设您知道数据点非常嘈杂,但仍然很平滑,建议在低阶表示中使用一些数据点进行最小二乘Galerkin类型近似。

  3. 假设您知道您的数据不平滑,例如符号函数,那么多边形内的数据的高阶表示是不可取的。无论您的数据是否嘈杂,这一点都成立。

总结:

  • 首先,您需要知道您的数据是什么样的
  • 其次,这取决于你想做什么