问题描述
使用sympy对sin和cos进行积分时,输出必须相同,但是cos的积分给出的数值为-16,在四舍五入时基本上为0。为什么给它如此低的cos值和直接为0的正弦值呢?
i/p: f=(sp.integrate(sp.cos(x),(x,-np.pi,np.pi))) o/p: 2.44929359829471e-16
i/p: f=(sp.integrate(sp.sin(x),np.pi))) o/p: 0
解决方法
浮点数(基本上是十进制数)的精度有限,有时会导致一些奇怪的事情。
例如0.1 + 0.2
将给出0.30000000000000004
在您的示例中,e-16非常小,并且如您所说基本上为零,但是在计算中的某个位置可能存在余弦值的舍入误差,但是正弦波并非如此价值观。您可以为罪的积分尝试不同的范围,并可能发现同样的事情。