问题描述
我尝试使用 Scipy 和 EXCEL 来计算 Bessel 函数,但它们给出了不同的结果。你知道为什么吗?提前致谢。
Python 代码:
import scipy.special as ss
result = ss.k1(0.2155481626213)
print(result)
EXCEL(我使用的是今天版本的 OneDrive Excel Web 应用程序)
=BESSELK(0,2155481626213; 1)
Python 的结果是 4.405746469429914
Excel 的结果是 4,405746474969860
。
解决方法
由于结果的误差很小,数值计算的复杂性和误差的传播会导致差异。
旁注: 甚至 Wolfram Alpha 也得到了不同的值:4.405746469430。
,正如@HubertusKaiser 所说;误差非常小,我们可以将其分配给舍入误差/浮点数。
对于大多数计算机 here 为什么 0.1+0.2 != 0.3
有一个很好的解释。
现在想象一下做很多那些“错误”的浮点计算,你最终会看到你看到的误差差异