当前位置:首页>python>Python与数学之美--李萨如曲线(Lissajous)

Python与数学之美--李萨如曲线(Lissajous)

  • 2026-08-27 19:21:49
Python与数学之美--李萨如曲线(Lissajous)
李萨如曲线是两个相互垂直的简谐振动合成产生的平面轨迹,由法国物理学家 Jules Antoine Lissajous 于 1857 年系统研究并命名。它不仅是优美的数学曲线,更是物理学中振动分析的重要工具。

标准参数方程:

x = A · sin(a·t + δ)y = B · sin(b·t)
  • A, B:x/y 方向的振幅(通常设为 1)
  • a, b:x/y 方向的角频率(频率比 a:b 决定图案形状)
  • δ:相位差(决定图形旋转和对称性)
  • t:时间参数(0 → 2π)

常用于示波器波形分析(最经典应用)

  • 将两个信号分别输入示波器的 X 和 Y 通道
  • 闭合图案 → 两信号频率成简单整数比(谐振)
  • 旋转图案 → 频率微小差异(用于精密调频)
  • 图案稳定性 → 相位同步程度
据说是苹果早期 Logo 设计灵感来源之一

用python绘制李萨如曲线的代码如下,采用动态展示方式(可直接运行)
import numpy as npimport matplotlib.pyplot as pltfrom matplotlib.animation import FuncAnimation, PillowWriter# ===== 配置参数 =====a, b = 3, 2  # 频率比 (a:b 决定图案复杂度)frames = 100  # 动画帧数duration = 4  # 动画总时长(秒)fps = 25  # 帧率# ===== 生成基础数据 =====t = np.linspace(0, 2 * np.pi, 1000)  # 时间参数fig, ax = plt.subplots(figsize=(6, 6))ax.set_xlim(-1.5, 1.5)ax.set_ylim(-1.5, 1.5)ax.set_aspect('equal')ax.grid(True, linestyle='--', alpha=0.4)ax.set_title(f'Lissajous Curve: a={a}, b={b}', fontsize=14, pad=15)# 初始化曲线和相位文本line, = ax.plot([], [], 'b-', lw=2.5, alpha=0.9)phase_text = ax.text(0.05, 0.95, '', transform=ax.transAxes,                     fontsize=12, color='darkred', weight='bold')# ===== 动画更新函数 =====def animate(frame):    # 相位差从0 → 2π 循环变化    delta = 2 * np.pi * frame / frames    # 计算李萨如坐标    x = np.sin(a * t + delta)    y = np.sin(b * t)    # 更新曲线和文本    line.set_data(x, y)    phase_text.set_text(f'Phase shift: δ = {delta:.2f} rad\n({delta / np.pi:.2f}π)')    return line, phase_text# ===== 创建动画 =====ani = FuncAnimation(    fig, animate, frames=frames,    interval=1000 / fps,  # 每帧间隔(毫秒)    blit=True, repeat=True)# ===== 保存为GIF =====print("正在生成GIF动画 ..")writer = PillowWriter(fps=fps)# 显示动画(可选)plt.tight_layout()plt.show()
李萨如曲线仿佛时间在空间中的签名——通过两个简单振动的"对话",在平面上留下了永恒的几何诗篇

推荐阅读

合集

文章

Python编程小技巧

Python编程小技巧--用Python查询天气

Python编程小技巧--‌自制简易系统监控

Python--数据/图像可视化

Python编程小技巧--雷达图

Python编程小技巧--新年倒计时小工具2.0版

Python编程基础算法

Python编程基础算法--斐波那契数列的矩阵算法

Python编程基础算法--LeetCode编辑距离问题

细数那些经典教材

细数那些经典教材--算法与数据结构

细数那些经典教材--编程竞赛

Python库巡礼

Python库巡礼--Polars

Python库巡礼--SciPy

Python与数学之美

Python与数学之美--玫瑰线(Rhodonea Curve)

最新文章

随机文章