向量的后向稳定投影和归一化

计算科学 计算几何 稳定
2021-12-08 13:38:53

给定一个机器精度单位向量n, 和任意向量v,我想要一个无条件向后稳定的方法来计算

f(v)=vnnv|vnnv|
换句话说,项目v正交于n然后正常化。具体来说,结果应满足(如果可能,达到机器精度):

  1. |f(v)|1
  2. nf(v)0
  3. 的近似值f(v)正是f(v~)对于一些v~接近 v 除了归一化错误(后向稳定性)。

即使这些也应该成立nv=0 (在这种情况下f(v)可以是任何正交的单位向量n)。诀窍是找到某种稳定投影和规范化的方法,不会失去准确性nv接近于零。

该公式出现在圆柱外推法线的分析计算中。例如,这是一种错误的做法

3个回答

要进行投影操作,我所知道的讨论优缺点的最佳论文是:

Stewart, GW关于斜投影仪的数值分析SIMAX (2011),卷。32,第 1 期,p。309-348。

对于正交投影仪,天真地构造和应用投影矩阵很好,因为该操作的条件数是投影矩阵的范数(对于正交投影仪来说,它是 1)。

我所知道的构建这种投影仪的最稳定的数字方法是采用n并对其执行 SVD。对应于零奇异值的左奇异向量(我想,从技术上讲,这些向量没有对应的奇异值,因为只有一个奇异值,并且它将是非零的......)将是正交的基础跨度的补充n; 让这些奇异值的矩阵为U. 那么你要找的投影仪是P=UUH,您可以通过以下两种方式之一计算所需的向量:

  1. w=Pv, 然后f(v)=w/w,除非,在这种情况下w=0f(v)=0
  2. 计算,然后,除非,在这种情况下x=UHvw=Uxf(v)=w/ww=0f(v)=0

根据斯图尔特在斜投影仪论文中的评论,方法 1 或方法 2 应该给您大致相同的准确度。

您也可以使用 QR 而不是 SVD 来计算投影仪,但 SVD 在数值上更稳定。

编辑:下面的方法也有效:

3) 计算,然后设(除非,然后)。最后,x=UHvw=x/xx=0w=0f(v)=Uw

本质上,论点是是相同的,因为是部分等距。保证在的列的范围内(在数值误差范围内),并且除以与方法 1 和 2 不同,方法 1 和 2 中除以可能会放大该子空间中的误差。可以放大所有的误差,包括法线向量wf(v)Uf(v)Ux w Rnn

后向稳定算法是不可能的

原因在 Trefethen 和 Bau 的示例 15.2(外积)中进行了讨论,他们在其中声明

通常,对于解空间的维数大于问题空间的维数的问题,后向稳定性是很少见的。YX

回想一下定义:我们说计算向后稳定的,如果对于每个f~f:XYxX

f~(x)=f(x~) for some x~ with x~xx|O(ϵ).

您提出的算法中的“扩展”步骤是来自的函数,产生由于一般情况下,不会完全正交,因此不会存在向量使得其精确的“扩展”是当然,这一步缺乏向后稳定性会破坏整个算法的机会。R2f~R3f~nv~2R2f~

更一般地说,对于您的问题,没有任何算法可以是向后稳定的,因为这个问题是秩不足的,图像没有完全嵌入浮点。即使有一个告诉你确切答案的预言机,将其投影到浮点表示中也会产生一个位于确切函数图像之外的近似值。但是,您可以具有稳定性(这会放宽定义中的相等性)。

至少在 3D 中,最直接的方法是计算正交的向量投影到该基中,在 2D 中归一化,然后扩展回 3D。u0,u1nv

正如 Jed 在他的回答中指出的那样,该算法满足的属性并不是真正的后向稳定性,但它确实满足了我应该要求的属性,即稳定性

(直到我写完问题后才记得这种方法。)