如何用Matplotlib在复平面绘制欧拉公式e^(ix)的圆形图像?
在Matplotlib中绘制复平面上的欧拉公式图像
首先纠正一个概念:你提到的“半径为i”是错误的,半径是实数,欧拉公式e^(ix)对应的是复平面上半径为1的单位圆——因为对于任意实数x,|e^(ix)| = cos²x + sin²x = 1。
你的现有代码问题在于错误地将虚数单位i转换成了实数1:i = np.emath.sqrt(-1).imag这行代码得到的是虚数单位的虚部数值1,导致你实际计算的是e^(1*x)(实指数函数),自然只能画出指数曲线。
正确实现步骤
要在复平面绘制e^(ix)的图像,需要将复数的实部作为横轴,虚部作为纵轴,具体代码如下:
import numpy as np import matplotlib.pyplot as plt # 生成角度参数θ,从0到2π(覆盖完整的单位圆) theta = np.linspace(0, 2 * np.pi, 1000) # 计算欧拉公式对应的复数:e^(iθ) = cosθ + i sinθ z = np.exp(1j * theta) # 提取实部和虚部作为坐标 real_part = np.real(z) imag_part = np.imag(z) # 创建绘图 plt.figure(figsize=(6,6)) plt.plot(real_part, imag_part, label=r'$e^{i\theta}$') # 设置坐标轴相等,避免圆被拉伸变形 plt.axis('equal') # 添加坐标轴标签和标题 plt.xlabel('实部') plt.ylabel('虚部') plt.title('复平面上的单位圆(欧拉公式)') plt.legend() plt.grid(True) plt.show()
代码说明
- 使用
np.exp(1j * theta)直接计算欧拉公式,1j是numpy内置的虚数单位,比手动计算cosθ + i sinθ更简洁准确。 - 设置
plt.axis('equal')是关键,否则Matplotlib会根据坐标轴范围自动缩放,导致圆形变成椭圆。 - 如果需要绘制半径为
r(正实数)的圆,只需将z改为r * np.exp(1j * theta)即可。
内容的提问来源于stack exchange,提问作者AG-88301
相关产品推荐
相关产品推荐

