本书是一本用Python编程实现量子计算的计算机科学专业书籍,书中使用薛定谔方程对量子计算机的核心知识点量子位、量子门和量子纠缠进行了数值模拟和仿真。具体内容包括执行环境的准备、量子力学的基础知识、计算自由空间中电子的运动、狄拉克函数的引入和使用、计算电子波包的运动、计算势阱中电子的运动、在量子阱中施加静电场的方法、计算施加静电场后电子的运动、如何改进量子阱的形状等。
读者对象:已经掌握量子力学基础知识、想通过数值模拟学习量子计算机工作原理的所有读者。
√ 用基本方程进行数值模拟,实践性强
量子计算机涉及内容较多,对于那些已经了解量子计算机概念但又觉得量子计算机太抽象、难以深入学习的人来说,本书使用量子力学的基本方程薛定谔方程对量子计算机的基本要素进行数值模拟,以此来了解量子计算机的工作原理。
√ 生动角色对话引导,趣味性强
因为本书为前沿技术类图书,而且量子计算、量子计算机涉及内容又较为枯燥,所以本书特别设置了“模拟君”(学习角色)和“程序仙人”(教师角色)两个角色,通过角色对话展开叙述,在一定程度上增强图书的生动趣味性。
第0天 准备执行环境
0.1 Python的安装
0.2 外部模块的安装
0.3 文本编辑器Visual Studio Code的准备
O.4 用Pyhon绘图
0.5 用Python绘制图形动画
O.6 数值积分的执行方法
天 迅速掌握量子力学的“超”基础部分
1.1 电子是兼具“粒子”和“波”特性的量子粒子
1.2 薛定谔方程
1.2.1 什么是薛定谔方程
1.2.2 经典力学的啥密顿算符与量子力学的哈密顿算符
1.2.3 位置算符与动量算符的正则对易关系
1.2.4 位置表象中的薛定谔方程
1.2.5 波函数的归一条件
1.2.6 【贴士1】位置表象中正则对易关系的证明
1.3 势能项不依赖于时间的场合
【贴士2】从“偏微分”到“常微分”的过渡
第2天 计算自由空间中电子的运动
2.1 自由空间中的波函数
2.1.1 【贴士3】电子的平面波(t=0的快照)
2.1.2 【贴士4】能量单位eV的定义
2.2 平面波的时间依赖性
2.2.1 平面波动画的程序源码(Python)
2.2.2 平面波的快照与动画
2.3 平面波的归一化
第3天 学习狄拉克δ函数
3.1 狄拉克δ函数的引入
【贴士5】赫维赛德的阶跃函数与狄拉克δ函数的关系
3.2 使用狄拉克6函数归一平面波
【贴士6】证明式(3.7)是狄拉克δ函数的近似表达式
第4天 计算电子波包的运动
4.1 电子波包的制作方法
4.2 高斯波包的运动仿真
4.2.1 电子波包用于动画的程序源码(Python)
4.2.2 电子波包的快照与动画
4.3 波包速度(群速度)的推导
【贴士7】泰勒展开式
补充讲解:高斯波包的解析解
第5天 计算势阱中电子的运动
5.1 无限深势阱的本征态
5.2 电子本征态的运动动画
绘制量子阱内电子本征态动画的程序源码(Python)
5.3 确认能量本征函数的正交性
5.3.1 确认能量本征函数的正交性的程序源码(Python)
5.3.2 确认计算结果
5.3.3 【贴士8】证明本征函数是正交的且能量是实数
第6天 量子阱中施加静电场的方法
6.1 施加静电场后的哈密顿算符与本征方程
【贴士9】傅里叶级数展开
6.2 满足展开系数的联立方程的推导
6.2.1 【贴士10】确认矩阵乘积的计算方法
6.2.2 【贴士11】单位矩阵与逆矩阵
6.3 矩阵的本征值与本征向量
【贴士12】关于本征值问题的解法
第7天 计算施加静电场后电子的运动
7.1 〈m|V|n〉的数值积分
〈m|V|n〉的数值积分的程序源码(Python)
7.2 矩阵的本征值问题的数值计算
7.2.1 埃尔米特矩阵的本征值问题的程序源码(Python)
7.2.2 【贴士13】转置矩阵、对称矩阵与正交矩阵
7.2.3 【贴士14】埃尔米特共轭、埃尔米特矩阵与幺正矩阵
7.2.4 【贴士15】埃尔米特矩阵的本征值与本征向量的特征
7.3 检查本征函数的空间依赖性
基态与激发态的本征函数的空间分布的程序源码(Python)
7.4 确认静电场强度依赖性
【贴士16】斯塔克效应的定性描述
7.5 计算空间分布的中心
基态与 激发态的位置期望值的程序源码(Python)
第8天 改进量子阱的形状
8.1 量子阱的本征态与量子位的关系
8.2 势垒量子阱的本征态
8.3 尝试对势垒量子阱施加静电场
第9天 对量子阱施加电磁波的方法
9.1 复习麦克斯韦方程组
9.1.1 【贴士17】向量微分运算▽与四种使用方法
9.1.2 【贴士18】向量微分运算▽的公式
9.2 电磁场中电子的哈密顿算符
9.3 计算算法的推导
9.3.1 【贴士19】算符为向量时的对易关系
9.3.2 【贴士20】算符为幂运算时的对易关系
9.3.3 【贴士21】式(9.27)的推导
9.4 注入电磁波的方法
0天 向量子阱注入电磁波
10.1 用 简单的体系检查龙格·库塔法的操作
10.1.1 检查基态的简谐运动的程序源码(Python)
10.1.2 检查计算结果
10.2 检查Xnm的计算
Xnm的计算结果
10.3 通过电磁波模拟状态跃迁
10.3.1 状态跃迁仿真(基态→激发态)的程序源码(Python)
10.3.2 检查计算结果
10.4 检查角频率偏移时的拉比振荡
检查计算结果
10.5 拉比振荡的解析解
1天 实现一个量子位门
11.1 通过改进版量子阱确认拉比振荡
11.2 关于一个量子位的基本量子门
11.2.1 恒等门I
11.2.2 相移门Pθ
11.2.3 非门X
11.2.4 阿达玛门H
11.3 量子门与物理操作的对应关系
11.3.1 对相移门的物理操作
11.3.2 对恒等门的物理操作
11.3.3 对非门的物理操作
11.3.4 对阿达玛门的物理操作
11.4 实现一个量子位的 单一门
2天 如何排列量子阱
12.1 两个粒子的薛定谔方程
12.1.1 同种类的两个粒子的波函数
12.1.2 粒子的概率密度分布
12.1.3 两个粒子不依赖于时间的啥密顿算符
12.1.4 两个粒子