You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.16 13:55:09