首页 > 解决方案 > 论量子物理学中的微扰理论模拟

问题描述

我已经开始了 Python 课程,并且一直在寻找开发任何类型代码的机会。最近遇到了一个标准物理问题,可以在 python 中模拟以演示由于扰动引起的能谱。这是声明:

有一个质量为 m 的量子粒子被束缚在一个长度为“l”的二维方盒内。假设盒子有有限的刚度。(提示:您可以在盒子的一个角上定义 xy 平面的原点以及沿 x 和 y 轴的边缘。)

a) 获得能量特征值和特征函数。绘制前三个特征函数并清楚地提及任何简并。

b) 假设盒子受到弱势 V(x,y) = V_0 x y 的扰动。现在计算基态能量的变化,以及第一激发态的分裂。

c) 绘制第一个激发态的近似扰动能量特征函数。

最后,展示小扰动前后能谱的样子。

我只需要一些想法才能开始。欢迎任何建议。

标签: pythonsimulationphysics

解决方案


你可以在一个非常简单的 Python 程序中做到这一点。只需将方井的波函数定义为 Python 函数以及其能量特征值、插件已知常数的函数,然后绘制结果。例如

import numpy as np
import matplotlib.pyplot as plt

def psi(x, n, a):
    assert(n != 0)
    return np.sqrt(2/a)*np.sin(n*np.pi*x/a)

L = 100
hbar = 6.626e-34 # joule seconds
m = 1e-19 # kg
x = np.arange(1, L)
y1 = np.array([psi(xi, 1, L) for xi in x])
y2 = np.array([psi(xi, 2, L) for xi in x])
y3 = np.array([psi(xi, 3, L) for xi in x])

plt.plot(x,y1)
plt.plot(x,y2)
plt.plot(x,y3)
plt.show()

def k(n, a):
    assert(n != 0)
    return n*np.pi/a

def E(n, a, m):
    return (hbar**2)*(k(n, a)**2)/(2*m)

E1 = E(1, L, m)
E2 = E(2, L, m)
E3 = E(3, L, m)

假设您了解物理学,其余的应该很容易。Griffiths 的《量子力学导论》是一个很好的参考。


推荐阅读