Python 具有虚数指数的Numpy精度

Python 具有虚数指数的Numpy精度,python,numpy,Python,Numpy,函数exp(ix)在x中是周期性的,周期为2*pi。np.exp()函数能够处理复杂的参数;但是,随着参数大小的增加,它开始出现错误;i、 e,表达式 np.exp(1) - np.exp(1+2*np.pi*x*1j) 整数x不是零,与零的偏差随着x的增加而增加。最大限度地减少这类表达式在大型x中产生的错误的最佳方法是什么?问题到底是什么?举一个大的x的例子。忽略exp部分,从一个简单的浮点角度来看,当你接近零时,浮点数会变得更密集,因此数字越大,绝对误差越大。所以x越大,错误的1+2*np

函数exp(ix)在x中是周期性的,周期为2*pi。
np.exp()
函数能够处理复杂的参数;但是,随着参数大小的增加,它开始出现错误;i、 e,表达式

np.exp(1) - np.exp(1+2*np.pi*x*1j)

整数
x
不是零,与零的偏差随着
x
的增加而增加。最大限度地减少这类表达式在大型
x
中产生的错误的最佳方法是什么?

问题到底是什么?举一个大的
x
的例子。忽略exp部分,从一个简单的浮点角度来看,当你接近零时,浮点数会变得更密集,因此数字越大,绝对误差越大。所以x越大,错误的
1+2*np.pi*x*1j
就越多。我认为没有一个好的通用解决方案。但只要把x作为2pi的乘法器巧妙地分离出来,就可以执行
np.exp(1)-np.exp(1+2*np.pi*(x%1)*1j)
。这不会弥补大浮点数分辨率降低的问题,但会避免因pi不精确而放大误差。到底是什么问题?举一个大的
x
的例子。忽略exp部分,从一个简单的浮点角度来看,当你接近零时,浮点数会变得更密集,因此数字越大,绝对误差越大。所以x越大,错误的
1+2*np.pi*x*1j
就越多。我认为没有一个好的通用解决方案。但只要把x作为2pi的乘法器巧妙地分离出来,就可以执行
np.exp(1)-np.exp(1+2*np.pi*(x%1)*1j)
。这不会弥补大浮点数分辨率降低的问题,但会避免因pi不精确而放大误差。