Python计算欧拉恒等式(Euler's identity)结果异常求助
欧拉恒等式计算错误的原因与修正
你的代码问题出在没有正确构造欧拉恒等式中的虚数指数项:
欧拉恒等式的核心表达式是 ( e^{i\pi} = -1 ),但你的代码里:
out=complex(np.e**(np.pi*z.imag))
这里z.imag取的是复数z的虚部数值1,np.pi*z.imag计算的是实数π,最终你实际计算的是 ( e^{\pi} )(约等于23.14),这和欧拉恒等式的要求完全不符,自然得到错误结果。
修正方法
只需要让虚数单位i参与指数运算即可,两种简单的修正方式:
方法1:直接用复数构造指数项
import numpy as np z = complex(0, 1) out = np.e ** (np.pi * z) print(out) # 输出近似 (-1+0j)
方法2:使用cmath的exp函数(更适配复数运算)
import cmath out = cmath.exp(cmath.pi * 1j) print(out) # 输出精确的 (-1+0j)
两种方法都能正确计算 ( e^{i\pi} ),得到预期的-1(或带浮点误差的近似值)。
内容的提问来源于stack exchange,提问作者ecjb
相关产品推荐
相关产品推荐

