Bokeh可视化:使用LaTeX数学公式绘制薛定谔方程解

Bokeh可视化:使用LaTeX数学公式绘制薛定谔方程解

bokeh bokeh/bokeh: 是一个用于创建交互式图形和数据的 Python 库。适合用于数据可视化、数据分析和呈现,以及创建动态的 Web 应用。特点是提供了一种简洁、直观的 API 来描述和处理数据,并生成交互式的可视化效果。 bokeh 项目地址: https://gitcode.com/gh_mirrors/bo/bokeh

概述

本文将介绍如何使用Bokeh库可视化一维谐振子的量子力学波函数解。这个示例展示了如何在Bokeh图表中使用LaTeX数学公式来标注图表标题和轴标签,特别适合需要展示复杂数学表达式的科学可视化场景。

技术要点

  1. Bokeh的数学公式支持:通过LaTeX语法在图表中添加数学表达式
  2. 量子力学可视化:展示谐振子波函数的数学特性
  3. 高级图表布局:多行标题、精确标签定位等技巧

实现细节

1. 创建基础图表

首先创建一个宽度800像素、高度600像素的图表,设置x轴范围为[-6,6],y轴范围为[0,8],并隐藏y轴和网格线:

p = figure(width=800, height=600, x_range=Range1d(-6, 6), y_range=Range1d(0, 8))
p.xaxis.axis_label = r"$$q$$"  # 使用LaTeX语法设置x轴标签
p.yaxis.visible = False
p.xgrid.visible = False
p.ygrid.visible = False

2. 添加多行数学标题

使用Bokeh的Title模型添加多行包含LaTeX数学表达式的标题:

title = [
    r"Wave function $$\psi_v(q)$$ of first 8 mode solutions...",
    r"Each wave function is labelled with its quantum number...",
    r"in a potential $$V(q) = \frac{q^2}{2}$$ shown by the dashed line.",
]
for text in reversed(title):
    p.add_layout(Title(text=text, text_font_style="normal"), "above")

3. 计算谐振子波函数

使用SciPy库计算谐振子的前8个能级的波函数:

q = np.linspace(-6, 6, 100)
for v in range(8):
    H_v = hermite(v)  # 厄米多项式
    N_v = (np.pi**0.5 * 2**v * factorial(v))**(-0.5)  # 归一化常数
    psi = N_v*H_v(q)*np.exp(-q**2/2)  # 波函数
    E_v = v + 0.5  # 能级

4. 可视化波函数

使用varea方法填充波函数曲线,并用不同颜色区分波函数的正负部分:

y = yscale*psi + E_v
p.varea(q, np.where(y >= E_v, y, E_v), E_v, fill_color="#5D3A9B")  # 正部分
p.varea(q, np.where(y <= E_v, y, E_v), E_v, fill_color="#E66100")  # 负部分
p.line(q, y, color="red", line_width=2)  # 波函数曲线

5. 添加量子数和能级标签

使用Label模型在图表两侧添加量子数和能级信息:

p.add_layout(Label(x=-5.8, y=E_v, text=rf"$$v = {v}$$"))  # 左侧量子数
p.add_layout(Label(x=3.9, y=E_v, text=rf"$$E_{v} = ({2*v+1}/2) \hbar\omega$$"))  # 右侧能级

6. 绘制势能函数

最后添加谐振子势能函数的虚线表示:

V = q**2 / 2
p.line(q, V, line_color="black", line_width=2, line_dash="dashed")

物理背景

这个可视化展示了一维谐振子的量子力学解,其中:

  • 横坐标q代表位置
  • 纵坐标代表能量本征值
  • 每条曲线对应一个量子态(v=0到v=7)
  • 曲线形状由厄米多项式和指数衰减因子决定
  • 填充区域表示波函数的概率密度

应用场景

这种可视化技术特别适用于:

  1. 量子力学教学演示
  2. 科学论文中的图表制作
  3. 交互式科学计算工具开发
  4. 物理模拟结果的可视化

总结

通过这个示例,我们展示了Bokeh强大的数学公式渲染能力和科学可视化能力。使用LaTeX语法可以轻松地在图表中添加复杂的数学表达式,这对于科学计算和物理模拟的可视化非常有价值。

bokeh bokeh/bokeh: 是一个用于创建交互式图形和数据的 Python 库。适合用于数据可视化、数据分析和呈现,以及创建动态的 Web 应用。特点是提供了一种简洁、直观的 API 来描述和处理数据,并生成交互式的可视化效果。 bokeh 项目地址: https://gitcode.com/gh_mirrors/bo/bokeh

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

孔岱怀

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值