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

技术实现请求:同一界面展示xy与uv平面的复变换点映射

复变换可视化实现方案

依赖库安装

首先确保安装所需的Python库:

pip install numpy matplotlib

完整实现代码

import numpy as np
import matplotlib.pyplot as plt
from matplotlib.patches import ConnectionPatch

# 生成单位圆上的100个点
theta = np.linspace(0, 2 * np.pi, 100, endpoint=False)
z = np.cos(theta) + 1j * np.sin(theta)

# 执行复变换 f(z) = z^50 - 2z + 1
w = z ** 50 - 2 * z + 1

# 提取坐标
x, y = z.real, z.imag
u, v = w.real, w.imag

# 创建画布与子图
fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(14, 7))

# 绘制XY平面(单位圆)
ax1.add_patch(plt.Circle((0, 0), 1, fill=False, color='gray', linestyle='--'))
ax1.scatter(x, y, color='blue', s=30, label='原始点')
ax1.set_title('XY平面(单位圆)')
ax1.set_xlabel('X')
ax1.set_ylabel('Y')
ax1.axis('equal')
ax1.legend()

# 绘制UV平面(变换结果)
ax2.scatter(u, v, color='red', s=30, label='变换后点')
ax2.set_title('UV平面(复变换 $f(z)=z^{50}-2z+1$ 结果)')
ax2.set_xlabel('U')
ax2.set_ylabel('V')
ax2.axis('equal')
ax2.legend()

# 添加对应点的虚线箭头连接
for i in range(len(z)):
    conn = ConnectionPatch(
        xyA=(x[i], y[i]), coordsA=ax1.transData,
        xyB=(u[i], v[i]), coordsB=ax2.transData,
        linestyle='--', color='gray', arrowstyle='->', linewidth=0.8
    )
    fig.add_artist(conn)

plt.tight_layout()
plt.show()

代码说明

  • 点生成:用np.linspace生成0到2π的100个等分角度,通过三角函数得到单位圆上的复数点。
  • 复变换计算:直接利用Python的复数运算特性,批量计算变换后的结果。
  • 可视化设置:两个子图分别展示原始平面与变换平面,axis('equal')保证坐标轴比例一致,避免图形变形。
  • 对应点连接:使用ConnectionPatch实现跨子图的虚线箭头连接,清晰展示每个点的映射关系。

内容的提问来源于stack exchange,提问作者AgnostMystic

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 10:48:19