计算能力接近于零

计算科学 数字
2021-11-27 09:09:00

什么是简单的计算方法10x1, 在哪里x接近于零?

使用求幂然后减法还不够好,因为与我们减去的部分相比,小数部分非常小。

2个回答

使用泰勒级数展开ax关于x=0并评估少量术语a=10

ax1xlog(a)+12x2log2(a)+.

就个人而言,在没有像expm1(另见这个 scicomp.SE 问题)这样的特殊函数的情况下,我会使用 Padé 近似值而不是 Taylor/Maclaurin 级数;通常,对于相同数量的计算工作,它们的适用性略宽一些。

我会讨论expx1对于其余的答案,因为10x1=exp(xlog10)1.

为了说明,这是一个比较的相对误差的图7- 阶泰勒多项式

x+x22+x36+x424+x5120+x6720+x75040

(4,3)Padé 近似值

x+x214+x342+x484013x7+x214x3210

泰勒与帕德

订单可以看到类似的图2p+1泰勒多项式与(p+1,p)Padé 近似值。


如果您的系统具有sinh功能:使用关系

expx1=2exp(x2)sinh(x2)

最后,Higham在数值算法的准确性和稳定性(第二版,第 19 页)中提出了一个巧妙的技巧,最初归功于 Kahan。在那里查看更多详细信息。