paint-brush
交互式量子学习是什么样的by@ocean
1,703
1,703

交互式量子学习是什么样的

Faheel Hashmi5m2022/10/04
Read on Terminal Reader
Read this story w/o Javascript

可以使用托管在 Google Colab 上的 Jupyter Notebooks 以有趣的交互方式学习量子力学(可能还有其他大多数东西)。这是一个关于如何做到这一点的故事。

Company Mentioned

Mention Thumbnail
featured image - 交互式量子学习是什么样的
Faheel Hashmi HackerNoon profile picture


可以使用托管在 Google Colab 上的 Jupyter Notebook 以交互方式学习量子力学。这是一个关于如何做到这一点的故事。如果您是先插入新设备并稍后阅读说明(如果有的话)的人,那么您可以直接跳转到量子力学简介。否则请继续阅读。

为什么是量子力学?

量子力学即将引发下一次技术革命。随着电子产品和计算设备的兴起,它已经导致了我们许多人的一生。阅读这篇文章的每个人都极有可能被大量以某种方式利用量子原理的设备所包围。


量子力学是一个美丽的理论。它常常被认为是人类最伟大的成就。它帮助我们破解了自然的密码,并为我们自己的目的对其进行了编程。它即将产生更多的魔法。量子隐形传态已经实现。现在将传送扩展到更有趣的事物只是时间问题。


量子信息处理量子计算机量子密码学正在路上。阅读这篇文章的少数人很可能会在有生之年见证新的量子革命。


该理论还具有哲学维度。它解决了现实的本质、 自由意志的可能性以及意识的解释等问题。因此,无论你是想了解自然的奥秘、参与下一次技术革命,还是思考存在的意义,量子力学都能教给你一些东西。

是不是太难了?

基本理论真的很简单。熟悉高中代数的每个人都可以遵循几个简单系统的量子描述。这就是引入量子力学背后的想法。遵循链接中的量子讨论所需的东西是。


  1. 向量(具有大小和方向的量)。
  2. 列矩阵(只是向量的表示)。
  3. 复数(-1 的平方根)。
  4. 函数图。


有了这么多的武器库,人们就可以准备好学习人类所建立的最深刻的理论了。

为什么是互动学习?

Covid 为在线学习带来了许多平台和资源。最重要的资源是可用于您能想到的每个主题的视频讲座。该资源的缺点是时间消耗过多。如果您想回顾某个视频中讨论过的某个点,那么祝您找到它好运。


下一个资源包括讲义、博客文章、书籍等。这本身就很好。但是,如果我们用互动学习来为它增添趣味呢?



一篇博文讲座,附带一个界面,供学生与讲座中介绍的材料进行交互。


示例 1:自由粒子的量子力学

在量子力学中,我们了解到粒子的位置信息是通过以下方式从称为波函数的函数中提取的。


波函数在某点的模平方是在该点找到窄带中的粒子的概率。


将其与以下内容进行比较。

提供了一个界面,您可以通过在条上滑动一个圆圈来选择沿 x 轴的一个点,并显示波函数模平方的图形,其中以不同颜色显示的窄条。选择一个新点时,代码在后台运行,并且更新了在新位置(实际上在绿条中)找到粒子的可能性。


这可能是在线学习的新互动方式。


上面的接口和功能是使用下面的代码创建的。


 import ipywidgets as wids import numpy as np import scipy.integrate as integrate import matplotlib.pyplot as plt def gaus(x,x0,epsilon): return (np.exp(-(x-x0)**2/(epsilon))) def psi(x): return ((-gaus(x,-2.5,2)+2.5*gaus(x,0,2))*np.sin(x)) print("Choose a point along x asis.") NormConst=integrate.quad(lambda x: psi(x)**2,-10,10) def f(x0=0): # print(x0) # print (NormConst[0]) x=np.linspace(-5,5,10000) plt.xlabel("Distance $x$ (arb. units)") plt.ylabel ("Normalized probability density") plt.yticks([]) y= psi(x)**2 y0= psi(x0)**2 plt.plot(x,y) plt.bar(x0,y0,.2,color="green") probx= 0.2*y0/NormConst[0] print("The probability of finding the particle") print("\nin the neighbourhood of x=%.2f"%x0) print("\nis approximately %.3f"%probx) wids.interact(f,x0=wids.FloatSlider(value=1.0,min=-5.0,max=5.0,step=0.05))


示例 2:束缚粒子的量子力学。

这是另一个例子。如果我们将一个量子粒子的运动限制在一个给定的区域,那么我们就会得到一些用整数标记的特殊波函数。了解这些新波函数和相关位置概率的界面如下所示。


该界面为两个输入提供了两个滑块。整数输入选择特殊波函数,并绘制其平方。第二个输入选择沿 x 轴的点并给出与前一个示例相同的概率。


量子力学的介绍还有第三个例子,其中概率以更简单的方式计算。

它是如何工作的?

现在我们已经看到了交互式学习的实际效果,是时候看看它是如何工作的了。


它得益于一个名为 Jupyter Notebook 的平台。幸运的是,我们不必在笔记本电脑或平板电脑上安装此软件即可使用它。感谢 Google Colab,任何拥有 Gmail 帐户的人都可以免费使用该软件(通过网络浏览器)。如果您不打算准备自己的交互式讲座,则不必学习 Jupyter notebook 或 Python。在平台上创建的内容可以轻松导航。


Jupyter notebook 有一个简单的界面。它有称为单元格的文本和代码块。文本块/单元格是呈现讲座内容的地方。它支持 Markdown、HTML、LaTeX 等。对 LaTeX 的支持对于数学爱好者来说是一大优势。


代码单元运行 Python 代码(可能还有其他代码)。这就是互动学习发生的地方。讲座(文本单元格)中提出的想法使用模型来举例说明,并鼓励学习者更改模型的参数并检查行为。这种相互作用是通过使用最后一种成分来提供的。


最后一个成分是 Python 的 IPyWidgets 包。它提供了文本框、滑块等小部件,供学习者输入。它还提供了将小部件的输入绑定到代码的功能,以便可以使用新提供的值修改程序的输出。


这就是交互式量子学习的发生方式。如果您还没有访问过量子力学的介绍,请立即访问。阅读理论,尝试交互式界面,并在下方分享您的反馈。


我们不知道下一次大流行何时会袭来,但我们将为学生提供互动在线课程。