平方超根函数有哪些近似技术?


17

我需要实现的倒数的近似值,即平方超根(ssrt)函数。例如,表示。与使用幂级数更直接的方法相比,我对了解特定的精度/位深度不感兴趣,而对了解我的选择却不那么感兴趣。小号小号ř 2 1.56 1.56 1.562xxssrt(2)1.561.561.562

Wolfram Alpha 就Lambert W函数(即)给出了一个很好的符号解决方案。维基百科给出了相同的公式,以及等效的。鉴于在计算 [1] [2]方面有合理的信息量,从技术上讲,这为各种需求实现某些东西所需的一切。我知道至少有两本书详细介绍了关于 [3] [4]的详细信息,因此从该方向上甚至还有很多优化的空间。ln(x)/W(ln(x))eW(ln(x))W(x)ln(x)

但是,我有两个问题:

  1. 此功能专用的近似技术是否已在任何地方发布?
  2. 除了“平方超级根”以外,它是否还有其他名称,这将使搜索参考变得容易一些?

Wikipedia / Google已经找到了一些引用,这些引用专门用于更一般的“文本”功能,其中包括作为特例,但其中大多数似乎更适合于探索/定义一般情况。ssrt(x)

-

  1. Corless,R .;Gonnet,G .;野兔,D。杰弗里(D. Knuth,Donald(1996),“关于Lambert W函数”, http://www.apmaths.uwo.ca/~djeffrey/Offprints/W-adv-cm.pdf
  2. 数学函数数字图书馆http://dlmf.nist.gov/4.13
  3. Crenshaw,Jack W.(2000),《实时编程的数学工具包》。
  4. Hart,John F.(1978),计算机近似。
  5. Chapeau-Blondeau,F.和Monir,A.(2002)。Lambert W函数的数值评估及其在指数为1/2的广义高斯噪声生成中的应用。IEEE Transactions on Signal Processing 50,2160-2165。http://www.istia.univ-angers.fr/~chapeau/papers/lambertw.pdf
  6. 米内罗,保罗。快速近似兰伯特w ^http://www.machinedlearnings.com/2011/07/fast-approximate-lambert-w.html

-

更新资料

在过去几天进行了更多研究之后,我仍然没有发现那种动手的“ Crenshaw风格”[3]治疗我所期待的,但我没有找到一个新的参考值得在这里记录。在[ 5 ]的第三页上,有一个标题为“快速近似”的部分,详细介绍了在噪声产生的情况下近似W x 。另外,有趣的是,“高斯噪声指数为1/2”的概率密度(在本文中)看起来与凯伦杰(Kellenjb)的答案的直方图极为相似。ssrt(x)[5]W(x)有关检测信号削波的问题

另外,rwong在注释给出的链接对于实际实现W x 是一个很好的资源,它甚至链接到作者的BSD许可项目fastapprox,其中包括所描述的实现。[6]W(x)



2
我在Meta上询问了此问题,因为注释字段并不用于扩展讨论。请在此处建议我们应如何处理这些问题:有关数值分析的

@datageist-meta问题的最初结论是,如果您想使用此数值分析来处理DSP数据,那么它就成为话题。如果没有,那就没有。这与DSP有何关系?
Kevin Vermeer

2
@Kevin它是在开发音频效果的背景下出现的。
datageist

1
每当我需要为Lambert函数编写例程时,通常都使用本文给出的近似值,然后使用Newton-Raphson,Halley或任何其他迭代方法进行完善。您可以采用这种方法来反转 ...XX

Answers:


6

在黑暗中,一些数字刺伤产生了以下迭代方法:

我们正在寻找解y = f(x),其中y ^ y = x。

ÿlnÿ=lnX

ÿ=GXÿ=ËlnXÿ

为值是上述方程的一个固定点,并且凭经验似乎收敛为的某些值X,但对于更大的值X它振荡或发散。ÿXX

然后,我尝试了一种类似于牛顿迭代平方根的方法:

ÿ=ÿp[RËv一世Øüs+ÿ2=ÿ+ËlnXÿ2

其中y *应该表示一个非收敛但乐观的答案,如果您碰巧猜出了一个准确的初始值(在平方根y 2 = x中,则y * = x / y),它将保持准确性。

这似乎收敛了,但是在 (在 x m i n = 1附近XX一世ñ=1个Ë1个Ë

最初的猜测还不错 ÿ0=lnX+1个

所以我想也许有一个更好融合的解决方案:

ÿ=1个-一种×ÿ+一种×GXÿ一种X

然后我发现了一些有趣的东西。

ÿÿÿ=Xÿ2=GXÿ+ϵ=ËlnXÿ+ϵÿ2-ÿϵ×-lnÿÿ1个=ÿ+ϵϵÿ2=GXÿ1个ÿ2-ÿϵ×-lnÿ=ÿ1个-ÿ×-lnÿ

ÿÿ=ÿ2+lnÿ×ÿ1个1个+lnÿlnÿ1个lnÿ

ÿ[ñ+1个]=GXÿ[ñ]+lnÿ[ñ]×ÿ[ñ]1个+lnÿ[ñ]=ËlnXÿ[ñ]+lnÿ[ñ]×ÿ[ñ]1个+lnÿ[ñ]

初始猜测为,这似乎工作得很好。ÿ=1个+lnX

(有人可能会在某种程度上表明这等同于牛顿-拉夫森,但我认为这超出了我的能力。)

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.