• Numerov算法解一维无限深势阱的问题 (含量子力学导论)


    写在前面

    • 原子物理期末论文要写一篇和量子隧穿的问题,然后,啊,写不出来.
    • 请有志之人给点帮助!!!球球了!
    • 之中可能会遇到这样的微分方程

    \frac{d^2y}{dx^2}+f(r)y=s(r)

    • 所以需要学学Numerov算法来解决一些问题.

    均匀格点上的Numerov算法

    • 推导
    • 事实上你可以自己推导出一种算法,然后坚称这是你自己发明的

    • 整理:

     

    一维无限深势阱

    波函数

    \frac{d^2\varphi }{dx^2}+\frac{2uE}{h^2}\varphi=0

    边界条件:

    \varphi|_{x=0}=\varphi|_{x=1}=0

    显然,在无限深势阱中的能量是分立的

    为了说明这个问题,我们首先要回顾一下量子力学导论的部分

    量子力学导论回顾

    • 禁闭的波必然导出量子化的条件

    习题选(杨福家 第五版)

    程序设计

    • 该问中,能量的解析解为

    E=n^2\pi^2\frac{h^2}{2u}

    • 我们将不断调整\sqrt{\frac{2uE}{h^2}}的值,
    • 代入上式,得:

    k=n\pi

    • 为了能够找到合适的k值,我们应当设置一个tol值,当满足边界条件时,记录当前的k值

    完整代码

    1. import numpy as np
    2. import matplotlib.pyplot as plt
    3. def numerov(f,y0,dy0):
    4. h = 0.01
    5. y = np.zeros(len(f))
    6. y[0] = y0
    7. y[1] = y0 + h * dy0
    8. for i in range(1,len(f)-1):
    9. k1 = (1 + h**2/12. * f[i+1])
    10. k2 = 2 * (1 + h**2/12. * f[i])
    11. k3 = (1 + h**2/12. * f[i])
    12. y[i+1] = (k2*y[i] - k3*y[i-1] - h**2 * f[i] * y[i])/k1
    13. return y
    14. tmin,tmax = 0,1
    15. T = np.linspace(tmin,tmax,int((tmax-tmin)/0.01))
    16. #归一化之前波函数启动点处的导数值可以随意取
    17. y0 = 0
    18. dy0 = 1
    19. tol = 10 ** -6
    20. k = 0
    21. dk = 0.0001
    22. u = 1
    23. K,Kx = [],[]
    24. for n in range(1000000):
    25. F = lambda r:k**2
    26. f = np.array([F(i) for i in T])
    27. Y = numerov(f,y0,dy0)
    28. if abs(Y[-1]) <= tol:
    29. K.append(Y[-1])
    30. Kx.append(k)
    31. if not n%5000:
    32. print(n/1000000)
    33. k += dk
    34. import joblib
    35. joblib.dump(K,"model-Numerov-infinity-K.pkl")
    36. joblib.dump(Kx,"model-Numerov-infinity-Kx.pkl")
    37. #plt.plot(Kx,K)
    38. plt.scatter(Kx,K,s=2,c="red")
    39. plt.plot(Kx,K,linewidth=2,c="blue")
    40. plt.scatter([i*np.pi for i in range(1,30)],[0 for i in range(29)],s=2,c="green")
    41. #plt.scatter([np.pi*i for i in range(10)],[0.03 for i in range(10)],s=1)
    42. plt.show()

    图像

     

    •  它的误差在1e-6的量级上,至少说明还是和理论符合的差不多的

  • 相关阅读:
    java 常用工具类
    微信小程序------框架
    2022最全的 App 应 用 测 试 技 巧
    k8s集群pod和node状态监控
    vue3初体验-基于vue3+ant design封装公共弹框
    后端字典的优雅设计
    Linkerd Service Mesh 快速上手
    树莓派(四)树莓派外设开发基础篇
    Yolo-FastestV2:更快更轻
    iPad电容笔贵吗?开学季比较好用的ipad手写笔
  • 原文地址:https://blog.csdn.net/Chandler_river/article/details/127578583