<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom"><title>从冰上的水</title><link href="https://zqw.ink/" rel="alternate"/><link href="https://zqw.ink/feeds/all.atom.xml" rel="self"/><id>https://zqw.ink/</id><updated>2026-01-25T00:00:00+08:00</updated><entry><title>Interested talk on SCA/HPCAsia2026</title><link href="https://zqw.ink/2026-01-25-blog-sca_hpcasia2026.html" rel="alternate"/><published>2026-01-25T00:00:00+08:00</published><updated>2026-01-25T00:00:00+08:00</updated><author><name>ZQW</name></author><id>tag:zqw.ink,2026-01-25:/2026-01-25-blog-sca_hpcasia2026.html</id><summary type="html">
&lt;p&gt;会议日记 &lt;a href="https://www.sca-hpcasia2026.jp/index.html"&gt;https://www.sca-hpcasia2026.jp/index.html&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#monday-january-26"&gt;Monday, January 26&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#tutorial-0930---1230-room-1008"&gt;Tutorial 09:30 - 12:30 Room 1008&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#tutorial-1330---1630-room-1002"&gt;Tutorial 13:30 - 16:30 Room 1002&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#tuesday-january-27"&gt;Tuesday, January 27&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#wednesday-january-28"&gt;Wednesday, January 28&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#thursday-january-29"&gt;Thursday, January 29&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#%E7%BB%93%E8%AF%AD"&gt;结语&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="monday-january-26"&gt;Monday, January 26&lt;/h2&gt;
&lt;h3 id="tutorial-0930---1230-room-1008"&gt;Tutorial 09:30 - 12:30 Room 1008&lt;/h3&gt;
&lt;p&gt;Integrating distributed …&lt;/p&gt;</summary><content type="html">
&lt;p&gt;会议日记 &lt;a href="https://www.sca-hpcasia2026.jp/index.html"&gt;https://www.sca-hpcasia2026.jp/index.html&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#monday-january-26"&gt;Monday, January 26&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#tutorial-0930---1230-room-1008"&gt;Tutorial 09:30 - 12:30 Room 1008&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#tutorial-1330---1630-room-1002"&gt;Tutorial 13:30 - 16:30 Room 1002&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#tuesday-january-27"&gt;Tuesday, January 27&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#wednesday-january-28"&gt;Wednesday, January 28&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#thursday-january-29"&gt;Thursday, January 29&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#%E7%BB%93%E8%AF%AD"&gt;结语&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="monday-january-26"&gt;Monday, January 26&lt;/h2&gt;
&lt;h3 id="tutorial-0930---1230-room-1008"&gt;Tutorial 09:30 - 12:30 Room 1008&lt;/h3&gt;
&lt;p&gt;Integrating distributed classical and quantum computing resources for hybrid workflows in the cloud&lt;/p&gt;
&lt;p&gt;Contributors: Sebastian Stern, Tyler Takeshita, and Benchen Huang&lt;/p&gt;
&lt;p&gt;介绍了 quantum Monte Carlo 算法。然后给了一个 24 小时的 AWS 试用账号。账号上已经搭好了环境，和一些示例的 jupyter notebook。&lt;/p&gt;
&lt;p&gt;AWS 上有一些与其它公司合作的 QPU 可以调用。可以通过 Batch 和 Braket 两个 AWS 上的应用，使得 QPU 和 AWS 的经典集群协同工作。但这是云端软件层面的协同工作，与 RIKEN 的 Quantum-HPC Hybrid 的硬件上的协同工作还是有区别的。&lt;/p&gt;
&lt;p&gt;结束时，提供了 T 恤。&lt;/p&gt;
&lt;h3 id="tutorial-1330---1630-room-1002"&gt;Tutorial 13:30 - 16:30 Room 1002&lt;/h3&gt;
&lt;p&gt;Building Portable HPC Environments: The Virtual Fugaku Strategy&lt;/p&gt;
&lt;p&gt;Contributors: Yuji Iguchi, Hitoshi Murai, Todd Churchward, Kei Sasaki, and Shun Utsui&lt;/p&gt;
&lt;p&gt;做完简单介绍后，AWS 提供了一个三天的试用账号。之后的时间就是在上面按照教程进行尝试。有问题可以提问。&lt;/p&gt;
&lt;p&gt;AWS 上可以快速搭建出一个虚拟的 HPC。Fugaku 提供了一个镜像，可以在 AWS 快速搭建一个 virtual Fugaku。这样的话，可以实现针对 Fugaku 编译，优化过和程序，可以直接在 AWS 上进行运行测试。&lt;/p&gt;
&lt;p&gt;最后进行了知识竞赛，前三名留下邮箱领取奖品。&lt;/p&gt;
&lt;h2 id="tuesday-january-27"&gt;Tuesday, January 27&lt;/h2&gt;
&lt;p&gt;上午听了题为 Toward High Performance Quantum Computing: From NISQ to FTQC 的 keynote 演讲。在 5F main hall 举行的，听众多，内容较宽泛，收获不大。&lt;/p&gt;
&lt;p&gt;中午听的 IBM 的 launch speaker，吃的盒饭。&lt;/p&gt;
&lt;p&gt;下午整理碰撞模型的程序，等三点半的报告。Research session 有三个半小时的报告。第二个报告用一个辅助比特，在已知旋转次数的情况下，使得 Grover 算法可以把态完全转到好态上。&lt;/p&gt;
&lt;p&gt;之后是 banquet。我愿称之为垃圾到家。没有座位，站了半个多少时，终于等到六点半。结果还得等领导讲话。又等了 20 多分钟。终于开饭了，但是人多饭少，根本抢不到。于是我们提前退场，回三宫吃了拉面。&lt;/p&gt;
&lt;h2 id="wednesday-january-28"&gt;Wednesday, January 28&lt;/h2&gt;
&lt;p&gt;老板有报告，而且有 R-CCS 的论坛。上午有家整理程序。赶在午饭前到。三楼的午餐自助。评价是不如盒饭。然后逛 exhibition。领了一些纪念品，和几家做量子计算的公司交流了一下。下午听了老板的报告，参加了论坛，晚上去论坛的 Reception 稍微吃了点喝了点，晚上在车站附近大家一起吃的烧鸟。晚上到家就不早了。&lt;/p&gt;
&lt;h2 id="thursday-january-29"&gt;Thursday, January 29&lt;/h2&gt;
&lt;p&gt;午饭前到的，听懂了 Google Cloud 的 launch speaker。盒饭还是比自助好多了。下午参加了 cudaq 加速 qutip 的 tutorial。但是可能是由于参加的人不多 speaker 讲得非常快。原定于五点结束的，四点多就讲完了。收获就是把相应的 notebook 下载了下来。&lt;/p&gt;
&lt;p&gt;晚上回家吃饭和 AS 煮的火锅。吃得有点多了。&lt;/p&gt;
&lt;h2 id="结语"&gt;结语&lt;/h2&gt;
&lt;p&gt;开会还是有点累。不过收获也很多。&lt;/p&gt;
</content><category term="blog"/><category term="conference"/></entry><entry><title>三只黑猫</title><link href="https://zqw.ink/2026-01-21-blog-3_black_cat.html" rel="alternate"/><published>2026-01-21T00:00:00+08:00</published><updated>2026-01-21T00:00:00+08:00</updated><author><name>ZQW</name></author><id>tag:zqw.ink,2026-01-21:/2026-01-21-blog-3_black_cat.html</id><summary type="html">
&lt;p&gt;在五号步道桥和南公园喷泉之间，常看见三只黑猫。&lt;/p&gt;
&lt;p&gt;每天上班的时候，如果是晴天，它们就会出来晒太阳。阴天的时候就躲在 …&lt;/p&gt;</summary><content type="html">
&lt;p&gt;在五号步道桥和南公园喷泉之间，常看见三只黑猫。&lt;/p&gt;
&lt;p&gt;每天上班的时候，如果是晴天，它们就会出来晒太阳。阴天的时候就躲在植物后面。&lt;/p&gt;
&lt;p&gt;有时会看见有人骑行车过来喂投。&lt;/p&gt;
&lt;p&gt;先看到黑猫出来了。&lt;/p&gt;
&lt;p&gt;&lt;img src="./2026-01-21-blog-3_black_cat/20260121_091528.jpg" alt="先看到黑猫出来了" /&gt;&lt;/p&gt;
&lt;p&gt;看清了两只！&lt;/p&gt;
&lt;p&gt;&lt;img src="./2026-01-21-blog-3_black_cat/20260121_091539.jpg" alt="看清了两只" /&gt;&lt;/p&gt;
&lt;p&gt;另一只呢？&lt;/p&gt;
&lt;p&gt;&lt;img src="./2026-01-21-blog-3_black_cat/20260121_091544.jpg" alt="另一只呢" /&gt;&lt;/p&gt;
&lt;p&gt;原来在躲在后面。&lt;/p&gt;
&lt;p&gt;&lt;img src="./2026-01-21-blog-3_black_cat/20260121_091550.jpg" alt="原来在躲在后面" /&gt;&lt;/p&gt;
</content><category term="blog"/><category term="猫"/></entry><entry><title>时间紧</title><link href="https://zqw.ink/2026-01-11-blog-time_account.html" rel="alternate"/><published>2026-01-11T00:00:00+08:00</published><updated>2026-01-11T00:00:00+08:00</updated><author><name>ZQW</name></author><id>tag:zqw.ink,2026-01-11:/2026-01-11-blog-time_account.html</id><summary type="html">
&lt;p&gt;人总是有一些周期性的东西，真正能用来自由分配的时间，非常有限。尤其是成年人，尤其是成家之后。一边时间少了，必定会 …&lt;/p&gt;</summary><content type="html">
&lt;p&gt;人总是有一些周期性的东西，真正能用来自由分配的时间，非常有限。尤其是成年人，尤其是成家之后。一边时间少了，必定会找补回来，或者别的事情效率降低。总体一定是平衡的。如果看到一个人在某方面特别出色，那他一定是在那方面花费的你意想不到的时间。&lt;/p&gt;
&lt;p&gt;最近看了几篇博客：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://yufree.cn/cn/2025/11/08/time-account/"&gt;时间账户&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://alexhsu.com/cant-finish"&gt;一輩子也看不完的內容 &lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://wiwi.blog/blog/live-longer"&gt;想活久一點嗎？&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;颇有感想。&lt;/p&gt;
&lt;h2 id="给自己算一下"&gt;给自己算一下&lt;/h2&gt;
&lt;p&gt;拿自己现在的状态算一下。每年的公共假期加上周末，大约是120天。年假加上 WLB 假期是 27 天。所以每年约有 150 天是假期，210 天是工作日。大约是 2/5 的假期，3/5 的工作。&lt;/p&gt;
&lt;p&gt;工作日的作息：&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;时间&lt;/th&gt;
&lt;th&gt;项目&lt;/th&gt;
&lt;th&gt;用时&lt;/th&gt;
&lt;th&gt;备注&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;23:20 - 7:20&lt;/td&gt;
&lt;td&gt;睡觉&lt;/td&gt;
&lt;td&gt;8 小时&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;7:20  - 9:00&lt;/td&gt;
&lt;td&gt;从睁眼到出门上班&lt;/td&gt;
&lt;td&gt;1 小时 40 分钟&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;9:00  - 9:30&lt;/td&gt;
&lt;td&gt;步行通勤&lt;/td&gt;
&lt;td&gt;30 分钟&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;9:30  - 18:00&lt;/td&gt;
&lt;td&gt;上班&lt;/td&gt;
&lt;td&gt;8 小时 30 分钟&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;18:00 - 19:00&lt;/td&gt;
&lt;td&gt;步行通勤 + 去超市&lt;/td&gt;
&lt;td&gt;1 小时 30 分钟&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;19:00 - 20:00&lt;/td&gt;
&lt;td&gt;做饭吃饭&lt;/td&gt;
&lt;td&gt;1 小时&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;20:00 - 20:30&lt;/td&gt;
&lt;td&gt;洗漱刷碗&lt;/td&gt;
&lt;td&gt;30 分钟&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;20:30 - 23:20&lt;/td&gt;
&lt;td&gt;自由支配&lt;/td&gt;
&lt;td&gt;2 小时 50 分钟&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;通常周末：&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;项目&lt;/th&gt;
&lt;th&gt;平均时间支出&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;洗衣服&lt;/td&gt;
&lt;td&gt;每周 0.5 小时&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;打扫&lt;/td&gt;
&lt;td&gt;每周 2 小时&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;与家人朋友保持联络&lt;/td&gt;
&lt;td&gt;每周 2.5 小时&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;每周的聚餐和运动&lt;/td&gt;
&lt;td&gt;每周 6 小时&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;总计&lt;/td&gt;
&lt;td&gt;11小时&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;算下来，一个普通的工作周，能有工作日大约 14 小时，周末除去吃饭睡觉用去一半，还有 24 小时。所以一个普通的工作周大约有 28 小时。&lt;/p&gt;
&lt;p&gt;工作日按 3 小时算，节假日按 8 小时算，一年总共 630 + 1200 = 1830 小时。&lt;br /&gt;
一部 12 集的剧大约要 10 到 12 小时。一部 12 集的动漫大约 5 小时。一部电影大约 2 小时。&lt;br /&gt;
换算一下，一年 166 部剧，366 部动漫，915 部电影。这就是把所有业余时间用来干一件事上限。&lt;/p&gt;
&lt;h2 id="宏观上的分配"&gt;宏观上的分配&lt;/h2&gt;
&lt;p&gt;人的一生的时间是有限的。&lt;/p&gt;
&lt;p&gt;就像玩 DNF 一样，技能点是有限的。&lt;/p&gt;
&lt;p&gt;而有些东西，只能靠堆时间。&lt;/p&gt;
&lt;p&gt;所以当考虑到要开始一件事情时，不能是仅仅因为结果看起来光鲜亮丽，而不去考虑相应的时间成本。例如，看别人画画画得好，琴弹得好，程序写得好，字写得漂亮，历史知识懂得多，球打得好，饭做得好吃，外表打扮得好看，专业能力超强，旅行过得地方多，英语说得好……这些，无一不是需要付出相当多的时间。必定不能既要又要。&lt;/p&gt;
&lt;p&gt;做出决定，一定是权衡自己想要的程度和所需要的时间成本的结果。&lt;/p&gt;
&lt;p&gt;而有些东西，就是看起来简单，但做起来非常花时间。比如说用 Docker 部署一个软件。不过好在现在有 AI 了好很多，但是也会积累技术债。&lt;/p&gt;
&lt;p&gt;所以，当羡慕一种能力，打算开始时，一定要做好时间成本的估计！如果超出心理预期，就会对自己有一种愤怒，要么半途而废，要么占用了其它事情的时间。&lt;/p&gt;
&lt;h2 id="珍惜细小的时间"&gt;珍惜细小的时间&lt;/h2&gt;
&lt;p&gt;短视频和社交媒体是个很杀时间的东西，这点必须要清楚地认识到。&lt;/p&gt;
&lt;p&gt;短视频和社交媒体上当然有非常有价值的东西。但是关键是信息太散。一个视频只有几秒，然后你要在很短的时间内决定要不要看。而短时间内的决定并没有权衡时间成本的过程，因为几秒的成本看起来并不起眼。所以这种短时间的决策，就由瞬时爽感的高低决定。&lt;/p&gt;
&lt;p&gt;单纯的娱乐（搞笑段子），和长期的兴趣爱好（小教学）混合在一起。而且这里的长期爱好还是没有慎重决定的。最终的结果就是，花在短视频和社交媒体上的娱乐和培养爱好的时间比例并不能自我决定。当你打开短视频和社交媒体时，如果动机不是单纯娱乐看段子，而是想学点东西，那这样就是把时间用娱乐段子稀释了。同时，这里的要学的东西也不是自己决定的单一方向，相当于打游戏时，把技能点到处乱点。&lt;/p&gt;
&lt;p&gt;娱乐段子，有价值的视频混合在一起，它们的比例，不同方向的有价值的视频（比如画画和弹琴），都会出于在你的首页。具体的内容，是个人没有考虑时间成本的对某种能力和羡慕，和平台的推流共同决定的。&lt;/p&gt;
&lt;p&gt;如果能够控制好时间，并且认为是纯看段子娱乐排解压力，短视频和社交媒体是没问题的。如果不是，那就是整块的时间被单纯娱乐和不同方向的有价值内容严重稀释。&lt;/p&gt;
&lt;h2 id="时间紧"&gt;时间紧&lt;/h2&gt;
&lt;p&gt;人生时间紧，想清楚把时间花在哪。&lt;/p&gt;
</content><category term="blog"/><category term="时间"/><category term="idea"/></entry><entry><title>2025 初来神户</title><link href="https://zqw.ink/2026-01-04-blog-2025_kobe.html" rel="alternate"/><published>2026-01-04T00:00:00+08:00</published><updated>2026-01-04T00:00:00+08:00</updated><author><name>ZQW</name></author><id>tag:zqw.ink,2026-01-04:/2026-01-04-blog-2025_kobe.html</id><summary type="html">
&lt;p&gt;2025 年已经过去了。我在神户也已经生活了九个多月。从各个方面讲，都是第一次体验。第一次领到真正的工资。第一次出国。第 …&lt;/p&gt;</summary><content type="html">
&lt;p&gt;2025 年已经过去了。我在神户也已经生活了九个多月。从各个方面讲，都是第一次体验。第一次领到真正的工资。第一次出国。第一次一个人生活了这么久（在深圳城中村的几个月，虽然也是一个人生活，但是心态完全不一样）&lt;/p&gt;
&lt;h2 id="春"&gt;春&lt;/h2&gt;
&lt;p&gt;我是 3 月 23 日中午，直接从深圳宝安机场，到大阪关机机场，然后乘机场巴士到神户三宫，晚上住在三宫附近的酒店。第二天，在单位 HR 的帮助下，完成一系列手续，到达租的房子里。晚上又回酒店住了一晚，因为租的房子还没有开通水电。&lt;/p&gt;
&lt;p&gt;第二天开通了水电。我也早早就从亚马逊上预订好了床铺（布团）。但是就在我出门那一小会儿，错过了快递，收到了“不在连络票”。所以，当晚，就只能躺在榻榻米上，枕着衣服睡了一晚。&lt;/p&gt;
&lt;p&gt;距离正式入职还有好几天，就在附近逛了逛，买了一些生活用品，熟悉了一下环境。也提前去单位看了一下，见了老板和同事们。&lt;/p&gt;
&lt;p&gt;4 月 1 号正式入职。还有好几个同事与我同一天入职。一切都非常顺利。&lt;/p&gt;
&lt;p&gt;恰好是樱花盛开的季节，每天上下班的路上，景色都很美，心情都非常好。&lt;/p&gt;
&lt;p&gt;每天都很规律地作息。尝试做不同的饭，不同的饮料。和同事们一起去爬山。&lt;/p&gt;
&lt;p&gt;五一的时候，曹爷来了，一直去了大阪和京都。&lt;/p&gt;
&lt;p&gt;参加 IBM 的落成典礼的时候，也第一次尝试了西装。&lt;/p&gt;
&lt;h2 id="夏"&gt;夏&lt;/h2&gt;
&lt;p&gt;当 7 月份的电费账单从之前的两三块，涨到六七时，意味着夏天来了。&lt;/p&gt;
&lt;p&gt;夏天的蝉真的非常有活力。我本身住的楼层比较低，在二楼。所以，每天五点左右就会被蝉叫醒一次，然后接着睡。&lt;/p&gt;
&lt;p&gt;当周末一个人在家里着空调，或者吹着风扇，弹着吉他时，这种情景，是很久以前就憧憬的。&lt;/p&gt;
&lt;p&gt;妹妹初中毕业了，8 月份回家一趟。&lt;/p&gt;
&lt;p&gt;和同事们一起去了淡路岛，感受了日本乡下夏天。&lt;/p&gt;
&lt;p&gt;买了很多不同颜色的纯色短袖。每次洗完衣服，挂在阳台晾晒时，就像是彩旗一样。&lt;/p&gt;
&lt;p&gt;10 月份，阿斯旺结婚了。大奔，阿斯旺，和我，又一次相聚了。&lt;/p&gt;
&lt;p&gt;和同事们去了山上，见到了神户自来水的水库。&lt;/p&gt;
&lt;p&gt;当 10 月分的电费账单，又降回到三千块时，夏天也结束了。&lt;/p&gt;
&lt;h2 id="秋冬"&gt;秋冬&lt;/h2&gt;
&lt;p&gt;秋天，上班路上的颜色非常丰富。绿，黄，红，非常有层次感。&lt;/p&gt;
&lt;p&gt;这里没有暖气。应该说除了中国北方，其它地方都没有暖气。虽然神户的冬天，气温通常不会降到零度以下。但是还是稍微有点冷。有时会开空调，也买了一个电暖气。&lt;/p&gt;
&lt;p&gt;神户有一点我不喜欢，没有雪。虽然六甲山顶上有，虽然有时天空中会飘一点，但始终积不到窗外。&lt;/p&gt;
&lt;h2 id="自由的时光"&gt;自由的时光&lt;/h2&gt;
&lt;p&gt;现在的生活状态应该是非常难得的了。在比较自由的时候，就有时间，也可以想清楚很多事情。我想这会是非常宝贵的时光。无论是对于当下，还是对于将来。&lt;/p&gt;
</content><category term="blog"/><category term="总结"/><category term="神户"/><category term="2025"/></entry><entry><title>博客第三次改版</title><link href="https://zqw.ink/2026-01-03-coding-blog_3rd_version.html" rel="alternate"/><published>2026-01-03T00:00:00+08:00</published><updated>2026-01-03T00:00:00+08:00</updated><author><name>ZQW</name></author><id>tag:zqw.ink,2026-01-03:/2026-01-03-coding-blog_3rd_version.html</id><summary type="html">
&lt;p&gt;本博客首版于 2018 年 9 月 7 日，用 &lt;a href="https://hexo.io"&gt;Hexo&lt;/a&gt; 从 markdown 生成静态页面，发表了第一篇文章：&lt;a href="./2018-09-07-coding-typora_note.html"&gt;Typora 使用笔记&lt;/a&gt;。&lt;/p&gt;
&lt;p&gt;2022 年 4 月 16 日进行了&lt;a href="./2022-04-16-thinking-blog_evolution.html"&gt;第一次改版&lt;/a&gt; 用 …&lt;/p&gt;</summary><content type="html">
&lt;p&gt;本博客首版于 2018 年 9 月 7 日，用 &lt;a href="https://hexo.io"&gt;Hexo&lt;/a&gt; 从 markdown 生成静态页面，发表了第一篇文章：&lt;a href="./2018-09-07-coding-typora_note.html"&gt;Typora 使用笔记&lt;/a&gt;。&lt;/p&gt;
&lt;p&gt;2022 年 4 月 16 日进行了&lt;a href="./2022-04-16-thinking-blog_evolution.html"&gt;第一次改版&lt;/a&gt; 用 python 重写生成引擎和主题。&lt;/p&gt;
&lt;p&gt;2024 年 10 月 24 日进行了&lt;a href="./2024-10-24-pelican_blog.html"&gt;第二次改版&lt;/a&gt;后，采用了 Pelican 引擎。&lt;/p&gt;
&lt;p&gt;在 2025 末，2026 初，这是对本博客进行了第三次改版。下面详细解释具体的更改。&lt;/p&gt;
&lt;p&gt;目录：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#%E6%9B%B4%E6%94%B9%E4%B8%BB%E9%A2%98"&gt;更改主题&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#%E5%A2%9E%E5%8A%A0%E9%A3%8E%E6%A0%BC%E6%8C%87%E5%8D%97"&gt;增加风格指南&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#%E4%BC%98%E5%8C%96%E5%8D%9A%E5%AE%A2%E5%86%85%E9%83%A8%E7%9A%84%E5%8D%9A%E6%96%87%E5%BC%95%E7%94%A8"&gt;优化博客内部的博文引用&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#%E6%94%B9%E7%94%A8-markdown-it-py-%E6%B8%B2%E6%9F%93-markdown"&gt;改用 markdown-it-py 渲染 markdown&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#%E6%9B%B4%E6%94%B9%E5%AF%BC%E5%90%91%E6%A0%8F"&gt;更改导向栏&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#%E5%A2%9E%E5%8A%A0-rss-%E8%AE%A2%E9%98%85"&gt;增加 RSS 订阅&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#%E6%8F%90%E9%AB%98%E6%A0%87%E7%AD%BE%E7%9A%84%E7%94%A8%E9%80%94"&gt;提高标签的用途&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#%E5%86%B3%E5%AE%9A%E6%94%BE%E5%BC%83-org-mode-%E6%A0%BC%E5%BC%8F"&gt;决定放弃 Org Mode 格式&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr /&gt;
&lt;h2 id="更改主题"&gt;更改主题&lt;/h2&gt;
&lt;p&gt;在 AI 的帮助下，利用 vibe coding，去掉了 banner，增加明暗两套本色。更改后，感观更加“平凡”，易于阅读。&lt;/p&gt;
&lt;h2 id="增加风格指南"&gt;增加风格指南&lt;/h2&gt;
&lt;p&gt;为了格式统一，提升博客质量，便于迁移，增加了一系列&lt;a href="./2025-12-30-coding-style_guide.html"&gt;风格指南&lt;/a&gt;。&lt;/p&gt;
&lt;h2 id="优化博客内部的博文引用"&gt;优化博客内部的博文引用&lt;/h2&gt;
&lt;p&gt;之前的博客应该可用在不同博文之间引用，但没有统一的格式，我也没有用过。现在在 markdown 格式的博文中统一格式为 &lt;code&gt;[comment](./xxxx-xx-xx-xx-xxxx.html)&lt;/code&gt; 的格式。在渲染时用正则替换，将相对引用替换为网址绝对引用。这样能保证在本地的 markdown 编辑器中，能很好的预览和跳转，生成 html 后也能支持链接跳转。&lt;/p&gt;
&lt;p&gt;此外，增加不同博文之间的引用，可以提升关联性，以此提升写作体验和读者体验，也利于搜索引擎的索引。&lt;/p&gt;
&lt;h2 id="改用-markdown-it-py-渲染-markdown"&gt;改用 markdown-it-py 渲染 markdown&lt;/h2&gt;
&lt;p&gt;之前用的 &lt;a href="https://python-markdown.github.io/"&gt;Python-Markdown&lt;/a&gt;，并用 &lt;a href="https://github.com/sgryjp/markdown_math_escape"&gt;markdown_math_escape&lt;/a&gt; 处理数学公式。但是 Python-Markdown 与一些现代的 markdown 格式（&lt;a href="https://github.com/DavidAnson/markdownlint/blob/v0.40.0/doc/md007.md"&gt;比如用两个空格区分不同级别的列表&lt;/a&gt;）兼容性不好，因此换用支持更灵活的 &lt;a href="https://spec.commonmark.org/"&gt;CommonMark spec&lt;/a&gt; 的 &lt;a href="https://github.com/executablebooks/markdown-it-py"&gt;markdown-it-py&lt;/a&gt;。&lt;/p&gt;
&lt;p&gt;其实这些都无所谓，重要的是博客的内容。而目前 markdown-it-py 刚好实现了我的需要。&lt;/p&gt;
&lt;h2 id="更改导向栏"&gt;更改导向栏&lt;/h2&gt;
&lt;p&gt;一些博客文章的质量一般，但是也不应该删除，至少做为记录。所以改版后的导航栏分成以下几部分&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Home：主页，显示本博客的引言。&lt;/li&gt;
&lt;li&gt;Physics：物理，或者科研相关的内容。是筛选过质量过后的列表。&lt;/li&gt;
&lt;li&gt;Blog：生活相关的内容。是筛选过质量过后的列表。&lt;/li&gt;
&lt;li&gt;Coding：编程相关的内容。是筛选过质量过后的列表。&lt;/li&gt;
&lt;li&gt;All：所有的博客文章列表。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="增加-rss-订阅"&gt;增加 RSS 订阅&lt;/h2&gt;
&lt;p&gt;受到 &lt;a href="https://wiwi.blog/blog/you-should-use-rss"&gt;Wiwi&lt;/a&gt; 的影响，我现在自己也重新用起了 RSS，所以本站也应该支持 RSS 订阅。&lt;/p&gt;
&lt;h2 id="提高标签的用途"&gt;提高标签的用途&lt;/h2&gt;
&lt;p&gt;一些成系列的内容，可以用一个标签连起来，放到首页展示。&lt;/p&gt;
&lt;h2 id="决定放弃-org-mode-格式"&gt;决定放弃 Org Mode 格式&lt;/h2&gt;
&lt;p&gt;作为一名前 Emacs 用户，我曾经用 &lt;a href="https://orgmode.org/"&gt;Org Mode&lt;/a&gt; 记录和组织一些内容。但是它和可移植性显然没有 markdown 强。&lt;/p&gt;
</content><category term="coding"/><category term="blog"/><category term="vibe coding"/></entry><entry><title>人类对颜色的感知</title><link href="https://zqw.ink/2025-12-31-coding-color.html" rel="alternate"/><published>2025-12-31T00:00:00+08:00</published><updated>2025-12-31T00:00:00+08:00</updated><author><name>ZQW</name></author><id>tag:zqw.ink,2025-12-31:/2025-12-31-coding-color.html</id><summary type="html">
&lt;p&gt;人为什么会感觉到不同的颜色？颜色为什么可以用三基色混合而成？让我们从光的质出发来理解这些问题。&lt;/p&gt;
&lt;p&gt;目录：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#%E4%BA%BA%E7%9C%BC%E5%AF%B9%E5%85%89%E7%9A%84%E6%84%9F%E7%9F%A5"&gt;人眼对光 …&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;</summary><content type="html">
&lt;p&gt;人为什么会感觉到不同的颜色？颜色为什么可以用三基色混合而成？让我们从光的质出发来理解这些问题。&lt;/p&gt;
&lt;p&gt;目录：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#%E4%BA%BA%E7%9C%BC%E5%AF%B9%E5%85%89%E7%9A%84%E6%84%9F%E7%9F%A5"&gt;人眼对光的感知&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#%E8%89%B2%E5%BD%A9%E7%A9%BA%E9%97%B4"&gt;色彩空间&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#lms-%E8%89%B2%E5%BD%A9%E7%A9%BA%E9%97%B4"&gt;LMS 色彩空间&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#cie-rgb-%E8%89%B2%E5%BD%A9%E7%A9%BA%E9%97%B4"&gt;CIE RGB 色彩空间&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#cie-xyz-%E8%89%B2%E5%BD%A9%E7%A9%BA%E9%97%B4"&gt;CIE XYZ 色彩空间&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#cie-xyy-%E8%89%B2%E5%BD%A9%E7%A9%BA%E9%97%B4"&gt;CIE xyY 色彩空间&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#%E5%85%B6%E5%AE%83-rgb-%E8%89%B2%E5%BD%A9%E7%A9%BA%E9%97%B4"&gt;其它 RGB 色彩空间&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#%E5%85%B6%E5%AE%83%E8%89%B2%E5%BD%A9%E7%A9%BA%E9%97%B4"&gt;其它色彩空间&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#hsl-%E5%92%8C-hsv-%E8%89%B2%E5%BD%A9%E7%A9%BA%E9%97%B4"&gt;HSL 和 HSV 色彩空间&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#%E8%89%B2%E5%BD%A9%E6%90%AD%E9%85%8D%E7%BD%91%E7%AB%99"&gt;色彩搭配网站&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr /&gt;
&lt;h2 id="人眼对光的感知"&gt;人眼对光的感知&lt;/h2&gt;
&lt;p&gt;人眼中有&lt;a href="https://zh.wikipedia.org/zh-cn/%E8%A7%86%E9%94%A5%E7%BB%86%E8%83%9E"&gt;视锥细胞&lt;/a&gt;（&lt;a href="https://en.wikipedia.org/wiki/Cone_cell"&gt;cone cell&lt;/a&gt;）和&lt;a href="https://zh.wikipedia.org/zh-cn/%E8%A7%86%E6%9D%86%E7%BB%86%E8%83%9E"&gt;视杆细胞（rod cell）&lt;/a&gt;两种&lt;a href="https://zh.wikipedia.org/zh-cn/%E6%84%9F%E5%85%89%E7%BB%86%E8%83%9E"&gt;感光细胞（photoreceptor cell）&lt;/a&gt;。不同的感光细胞含有不同的&lt;a href="https://en.wikipedia.org/wiki/Opsin"&gt;视蛋白（opsins）&lt;/a&gt;，因此不同的感光细胞对不同波长的光敏感程度不同。&lt;/p&gt;
&lt;p&gt;视杆细胞只对光比较敏感，但只有一种光敏色素。相比于视杆细胞对光，视锥细胞对光的敏感度比较低，但有三种类型，分别可以感受长波长（Long, L），中波长（Medium, M）和短波长（Short, S）的光（&lt;a href="https://en.wikipedia.org/wiki/Trichromacy"&gt;trichromacy&lt;/a&gt;）。&lt;sup class="footnote-ref"&gt;&lt;a href="#fn1" id="fnref1"&gt;[1]&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;
&lt;table&gt;
  &lt;th colspan=4&gt;
  四种感光细胞对不同波长的光的敏感程度
  &lt;/th&gt;
  &lt;tr&gt;
    &lt;td&gt;Blue cones&lt;/td&gt;
    &lt;td&gt;Rods&lt;/td&gt;
    &lt;td&gt;Green cones&lt;/td&gt;
    &lt;td&gt;Red cones&lt;/td&gt;
  &lt;/tr&gt;
    &lt;tr&gt;
    &lt;td&gt;420 nm #6a00ff&lt;/td&gt;
    &lt;td&gt;498 nm #00ffa9&lt;/td&gt;
    &lt;td&gt;534 nm #6cff00&lt;/td&gt;
    &lt;td&gt;564 nm #cfff00&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td bgcolor="#6a00ff" height="20"&gt;&lt;/td&gt;
    &lt;td bgcolor="#00ffa9" height="20"&gt;&lt;/td&gt;
    &lt;td bgcolor="#6cff00" height="20"&gt;&lt;/td&gt;
    &lt;td bgcolor="#cfff00" height="20"&gt;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
  &lt;td colspan=4&gt;
  波长到RGB在线转换：&lt;a href="https://www.johndcook.com/wavelength_to_RGB.html"&gt;https://www.johndcook.com/wavelength_to_RGB.html&lt;/a&gt;
  &lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
  &lt;td colspan=4&gt;
  &lt;figure&gt;
    &lt;img src="./2025-12-31-coding-color/1416_Color_Sensitivity.svg" atl="color sensitivity"&gt;
    &lt;figcaption&gt;
    图片来自 &lt;a href="https://zh.wikipedia.org/zh-cn/File:1416_Color_Sensitivity.svg"&gt;Wikipedia&lt;/a&gt;。
    视杆细胞、视锥细胞能看到的各波长。纵轴是各自归一化过的&lt;a href="https://zh.wikipedia.org/zh-cn/%E5%90%B8%E5%85%89%E5%BA%A6"&gt;吸光度&lt;/a&gt;。
    &lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
  &lt;td colspan=4&gt;
  &lt;figure&gt;
    &lt;img src="./2025-12-31-coding-color/Cone-fundamentals-with-srgb-spectrum.svg" atl="cone fundamentals with srgb spectrum"&gt;
    &lt;figcaption&gt;
    图片来自 &lt;a href="https://upload.wikimedia.org/wikipedia/commons/0/04/Cone-fundamentals-with-srgb-spectrum.svg"&gt;Wikipedia&lt;/a&gt;。
    &lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;/td&gt;
  &lt;/tr&gt;
&lt;/table&gt;
&lt;h2 id="色彩空间"&gt;色彩空间&lt;/h2&gt;
&lt;p&gt;如何对不同的颜色定量地描述呢？最直接的描述就是人眼接收到光的光谱 $S(\lambda)$，其中 $\lambda$ 是光的波长。给定光谱 $S(\lambda)$，颜色也就确定了。本节提到的数学概念仅用于理解，不做严格定义。&lt;/p&gt;
&lt;p&gt;但人眼感受到的同一种的颜色的光，光谱也可能不完全一样（&lt;a href="https://en.wikipedia.org/wiki/Metamerism_(color)"&gt;条件等色， Metamerism&lt;/a&gt;）。比如&lt;a href="https://en.wikipedia.org/wiki/Sunlight"&gt;太阳光&lt;/a&gt;的光谱非常丰富，人眼感受到的颜色是白色。但电子显示器上白色，却只有红绿蓝三种光。原因很简单，光谱 $S(\lambda)$ 的变量是连续变化的波长 $\lambda$ 是一个无穷维的空间，但是人眼只有三种对波长敏感的细胞，把光谱 $S(\lambda)$ 投影到了三维空间上。所有具有相同颜色的光谱 $S(\lambda)$ 可以理解成一个等价类，人眼就只有分辨不同的等价类，不能分辨不同的光谱 $S(\lambda)$ 。简而言之，$S(\lambda)\mapsto \mathrm{Color}$ 不是单射。&lt;/p&gt;
&lt;p&gt;直接用光的波长描述颜色也不好，因为有些颜色没有单一波长的光的对应。比如品红（&lt;span style="color: #FF00FF;"&gt;#FF00FF&lt;/span&gt;，&lt;a href="https://en.wikipedia.org/wiki/Magenta"&gt;magenta&lt;/a&gt;），就没有单一波长的可见光与之对应。原因是，波长 $\lambda$ 是单一变量，一维空间，但人眼能感受的颜色是三种视锥细胞的响应，是一个三维空间。简而言之，$\lambda\mapsto \mathrm{Color}$ 是单射，但不是满射。&lt;/p&gt;
&lt;p&gt;我们想要一个好的描述，它应该是把无穷维的光谱，映射到一个三维的空间（因为有三种视锥细胞）。这个三维空间到所有的颜色的映射，即是单射，又是满射，即双射。或者近似是单射也行。这个有限维的空间，就是&lt;a href="https://en.wikipedia.org/wiki/Color_space"&gt;色彩空间（color space）&lt;/a&gt;。&lt;a href="https://en.wikipedia.org/wiki/Grassmann%27s_laws_(color_science)"&gt;Grassmann 定律&lt;/a&gt;&lt;sup class="footnote-ref"&gt;&lt;a href="#fn2" id="fnref2"&gt;[2]&lt;/a&gt;&lt;/sup&gt;给出了一些色彩空间的性质，大致是说，色彩空间应该是一个“三维”，且“线性”的空间。&lt;/p&gt;
&lt;p&gt;在 1931 年，国际照明委员会（&lt;a href="https://en.wikipedia.org/wiki/International_Commission_on_Illumination"&gt;International Commission on Illumination, CIE&lt;/a&gt;）定义了人眼看到的一束光（光谱 $S(\lambda)$）的颜色，即，与色彩空间中的一个点的映射关系（&lt;a href="https://en.wikipedia.org/wiki/CIE_1931_color_space"&gt;CIE 1931 color space&lt;/a&gt;）。&lt;/p&gt;
&lt;p&gt;色彩空间有好多种。下面简要介绍。&lt;/p&gt;
&lt;h3 id="lms-色彩空间"&gt;LMS 色彩空间&lt;/h3&gt;
&lt;p&gt;&lt;a href="https://en.wikipedia.org/wiki/LMS_color_space"&gt;LMS 色彩空间&lt;/a&gt;就是直接根据人眼的三种视锥细胞的响应函数定义的。它是一个三维的线性空间，有三个坐标 $L, M$ ，和 &lt;eq&gt;S&lt;/eq&gt;。由光谱 $S(\lambda)$ 到LMS 色彩空间的映射定义为&lt;/p&gt;
$$

\begin{align*}
L =&amp; \int_{0}^{\infty}  S(\lambda) l(\lambda) \,\mathrm{d}\lambda, \\
M =&amp; \int_{0}^{\infty}  S(\lambda) m(\lambda) \,\mathrm{d}\lambda, \\
S =&amp; \int_{0}^{\infty}  S(\lambda) s(\lambda) \,\mathrm{d}\lambda,
\end{align*}

$$&lt;p&gt;其中响应函数 $l(\lambda), m(\lambda)$ 和 $ s(\lambda)$ 由实验测定。即使是不同的光谱 $S(\lambda)$ ，只要坐标 $L, M, S$ 相同，人眼感受的颜色就是相同的。响应函数 $l(\lambda), m(\lambda)$ 和 $ s(\lambda)$ 也已经把人眼看不见的颜色做了截断。所以，从 LMS 色彩空间到所有人眼能感觉到的颜色的映射 $\mathcal{C}_{LMS}\mapsto \{\mathrm{Colors}\}$ 这是一个双射。&lt;/p&gt;
&lt;h3 id="cie-rgb-色彩空间"&gt;CIE RGB 色彩空间&lt;/h3&gt;
&lt;p&gt;在 1931 年，国际照明委员会（&lt;a href="https://en.wikipedia.org/wiki/International_Commission_on_Illumination"&gt;International Commission on Illumination, CIE)&lt;/a&gt;）实验测定的色彩空间。&lt;/p&gt;
&lt;p&gt;实验用波长为 435.8nm（蓝）， 546.1nm（绿）， 700nm（红） 三种光混合，调节比例，使被试者认为混合之后的颜色，与某个波长的单色光（从连续光谱的光源通过分光获得）颜色相同，记下比例。由此可以测出响应函数 $\bar{r}(\lambda), \bar{g}(\lambda)$ ，和 $\bar{b}(\lambda)$ ,&lt;/p&gt;
$$

\begin{align*}
R =&amp; \int_{0}^{\infty}  S(\lambda) \bar{r}(\lambda) \,\mathrm{d}\lambda, \\
G =&amp; \int_{0}^{\infty}  S(\lambda) \bar{g}(\lambda) \,\mathrm{d}\lambda, \\
B =&amp; \int_{0}^{\infty}  S(\lambda) \bar{b}(\lambda) \,\mathrm{d}\lambda.
\end{align*}

$$&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th style="text-align:center"&gt;&lt;img src="./2025-12-31-coding-color/CIE1931_RGBCMF2.png" alt="CIE1931_RGBCMF2" /&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style="text-align:center"&gt;实验测得的 Color Matching Function。纵轴是归一化过的。给定一个横轴的值，三条曲线在此处的值，对应的就是合成此波长的单色光所需的三种颜色的光的比例。图片来自 &lt;a href="https://upload.wikimedia.org/wikipedia/commons/0/0c/CIE1931_RGBCMF2.png"&gt;Wikipedia&lt;/a&gt;。&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;仔细观察可以发现，在 435.8nm（蓝）， 546.1nm（绿）， 700nm（红）三处，只有一种光有值，其它光为零就可以合成。比如 700nm（红）的单色光的颜色的坐标为，&lt;/p&gt;
$$

\begin{align*}
R_{\mathrm{R}} = &amp; \int_{0}^{\infty}  \delta(\lambda - \lambda_{\mathrm{R}}) \bar{r}(\lambda) \,\mathrm{d}\lambda, \\
G_{\mathrm{R}} = &amp; \int_{0}^{\infty}  \delta(\lambda - \lambda_{\mathrm{R}}) \bar{g}(\lambda) \,\mathrm{d}\lambda = 0, \\
B_{\mathrm{R}} = &amp; \int_{0}^{\infty}  \delta(\lambda - \lambda_{\mathrm{R}}) \bar{b}(\lambda) \,\mathrm{d}\lambda = 0.
\end{align*}

$$&lt;p&gt;除了这三个点外，都由两个正值，一个负值合成。负值代表的意义是减去该颜色的光，实验上是用该颜色的光照到单色光源上，以此来等效实现。&lt;/p&gt;
&lt;h3 id="cie-xyz-色彩空间"&gt;CIE XYZ 色彩空间&lt;/h3&gt;
&lt;p&gt;CIE RGB 色彩空间会出现负值，这会很不方便。由此就从 CIE RGB 定义了一个新的色彩空间。三个坐标为 $X, Y$ ， 和 &lt;eq&gt;Z&lt;/eq&gt;。其中 &lt;eq&gt;Y&lt;/eq&gt; 选做 &lt;a href="https://en.wikipedia.org/wiki/Luminance"&gt;亮度（luminance）&lt;/a&gt;的响应函数。&lt;eq&gt;Z&lt;/eq&gt; 先择与 LMS 色彩空间的的 &lt;eq&gt;S&lt;/eq&gt; 相同。选适当的 &lt;eq&gt;X&lt;/eq&gt; 使得坐标在可见单色光谱内的所有颜色的坐标非负。&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th style="text-align:center"&gt;&lt;img src="./2025-12-31-coding-color/CIE_1931_XYZ_Color_Matching_Functions.svg" alt="CIE 1931 XYZ Color Matching Functions" /&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style="text-align:center"&gt;CIE XYZ 色彩空间的 Color Matching Function。图片来自 &lt;a href="https://en.wikipedia.org/wiki/File:CIE_1931_XYZ_Color_Matching_Functions.svg"&gt;Wikipedia&lt;/a&gt;。&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;CIE XYZ 色彩空间和 LMS 色彩空间之间的线性变换为，&lt;/p&gt;
$$

\begin{align*}
  \begin{pmatrix}
    X\\
    Y\\
    Z
  \end{pmatrix} =
    \begin{pmatrix}
  1.91020 &amp; -1.11212 &amp; 0.20191\\
  0.37095 &amp; 0.62905  &amp; 0\\
  0       &amp; 0        &amp; 1
  \end{pmatrix}
  \begin{pmatrix}
  L\\
  M\\
  S
  \end{pmatrix}_{\mathrm{HPE}}
\end{align*}

$$&lt;h3 id="cie-xyy-色彩空间"&gt;CIE xyY 色彩空间&lt;/h3&gt;
&lt;p&gt;由于 CIE XYZ 的 Y 选做亮度，所以定义&lt;/p&gt;
$$

\begin{align*}
x =&amp; \frac{X}{X + Y + Z}\\
y =&amp; \frac{Y}{X + Y + Z}
\end{align*}

$$&lt;p&gt;这样 $x, y$ 取值在 &lt;eq&gt;0&lt;/eq&gt; 和 &lt;eq&gt;1&lt;/eq&gt; 之间。在给定亮度下，在 $x-y$ 平面内就表示了所有的颜色。&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th style="text-align:center"&gt;&lt;img src="./2025-12-31-coding-color/CIE1931xy_CIERGB.svg" alt="CIE 1931 XYZ Color Matching Functions" /&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style="text-align:center"&gt;CIE xyY 色彩空间。图片来自 &lt;a href="https://en.wikipedia.org/wiki/File:CIE1931xy_CIERGB.svg"&gt;Wikipedia&lt;/a&gt;。图中的光滑边缘是单色可见光谱。三角形由 CIE RGB 的三个从单色可见光谱中选取的围成。在三角形内, CIE RGB 坐标是非负的，而在外面，至少有一个值为负。同时也可以看出，在左上部分有较大部分在三角形外，对应的是 &lt;eq&gt;R&lt;/eq&gt; 坐标为负的那部分青光。同时值得注意，这里只是示意图，因为普通显示器不可能显示出这里的所有的颜色。&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="其它-rgb-色彩空间"&gt;其它 RGB 色彩空间&lt;/h3&gt;
&lt;p&gt;除了 CIE RGB 色彩空间，还有许多其它的 RGB 色彩空间。比如，我们常用的用十六进制表示的 RGB 颜色（#RRGGBB）就是 &lt;a href="https://en.wikipedia.org/wiki/SRGB"&gt;sRGB&lt;/a&gt; 色彩空间中的坐示。&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th style="text-align:center"&gt;&lt;img src="./2025-12-31-coding-color/CIE1931xy%20gamut%20comparison.svg" alt="CIE 1931 xy gamut comparision" /&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style="text-align:center"&gt;其它 RGB 色彩空间在 CIE xy 坐标中的色域（&lt;a href="https://en.wikipedia.org/wiki/Gamut"&gt;gamut&lt;/a&gt;）。图片来自 &lt;a href="https://en.wikipedia.org/wiki/File:CIE1931xy_gamut_comparison.svg"&gt;Wikipedia&lt;/a&gt;。&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="其它色彩空间"&gt;其它色彩空间&lt;/h3&gt;
&lt;p&gt;&lt;a href="https://en.wikipedia.org/wiki/CIELAB_color_space"&gt;CIELAB 色彩空间&lt;/a&gt;等。&lt;/p&gt;
&lt;h2 id="hsl-和-hsv-色彩空间"&gt;HSL 和 HSV 色彩空间&lt;/h2&gt;
&lt;p&gt;设计和画画的时候，还经常用到 &lt;a href="https://en.wikipedia.org/wiki/HSL_and_HSV"&gt;HSL 和 HSV 色彩空间&lt;/a&gt;。他们是把 RGB 色彩空间做了简单的变换，使得人们可以更容易地调出想要的颜色。&lt;/p&gt;
&lt;h2 id="色彩搭配网站"&gt;色彩搭配网站&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://m2.material.io/design/color/the-color-system.html?utm_source=chatgpt.com#tools-for-picking-colors"&gt;Material design tools for picking colors&lt;/a&gt;：谷歌为 Material Design 提供的色彩搭配工具，选一个主题色，会自动给出相应的搭配色彩。同时也介绍了一些色彩搭配的基本概念。&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.happyhues.co/"&gt;happyhues&lt;/a&gt;：提供了一些色彩搭配方案。作者 &lt;a href="https://www.mackenziechild.me/"&gt;Mackenzie&lt;/a&gt; 是一名前端工程师。&lt;/li&gt;
&lt;li&gt;&lt;a href="https://coolors.co/"&gt;coolors.co&lt;/a&gt;：一个调色盘网站。&lt;/li&gt;
&lt;li&gt;&lt;a href="https://colorhunt.co"&gt;colorhunt.co&lt;/a&gt;：提供了很多配色，每一套四种颜色。可以根据标签查找。&lt;/li&gt;
&lt;li&gt;&lt;a href="https://zhongguose.com"&gt;中国传统色&lt;/a&gt;、&lt;a href="https://nipponcolors.com"&gt;日本传统色&lt;/a&gt;。&lt;/li&gt;
&lt;/ul&gt;
&lt;hr class="footnotes-sep" /&gt;
&lt;section class="footnotes"&gt;
&lt;ol class="footnotes-list"&gt;
&lt;li id="fn1" class="footnote-item"&gt;&lt;p&gt;有一个把光谱转换成 RGB 色的 Python 包：&lt;a href="http://markkness.net/colorpy/ColorPy.html"&gt;ColorPy&lt;/a&gt;。 &lt;a href="#fnref1" class="footnote-backref"&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn2" class="footnote-item"&gt;&lt;p&gt;没错，就是&lt;a href="https://en.wikipedia.org/wiki/Grassmann_number"&gt;Grassmann 数&lt;/a&gt;的那个 &lt;a href="https://en.wikipedia.org/wiki/Hermann_Grassmann"&gt;Hermann Grassmann（1809-1877）&lt;/a&gt;。 &lt;a href="#fnref2" class="footnote-backref"&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/section&gt;
</content><category term="coding"/><category term="颜色"/></entry><entry><title>个人博客风格指南（备忘）</title><link href="https://zqw.ink/2025-12-30-coding-style_guide.html" rel="alternate"/><published>2025-12-30T00:00:00+08:00</published><updated>2025-12-30T00:00:00+08:00</updated><author><name>ZQW</name></author><id>tag:zqw.ink,2025-12-30:/2025-12-30-coding-style_guide.html</id><summary type="html">
&lt;h2 id="博客文件名yyyy-mm-dd-category-blog_slugmd"&gt;博客文件名：&lt;code&gt;yyyy-mm-dd-category-blog_slug.md&lt;/code&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;日期（yyyy-mm-dd）&lt;/li&gt;
&lt;li&gt;分类（category）：一篇博客只有一个分类，且为英文，全部小写&lt;/li&gt;
&lt;li&gt;Blog slug（blog_slug）:一般全部小写，用下划线连接。如果有些 …&lt;/li&gt;&lt;/ul&gt;</summary><content type="html">
&lt;h2 id="博客文件名yyyy-mm-dd-category-blog_slugmd"&gt;博客文件名：&lt;code&gt;yyyy-mm-dd-category-blog_slug.md&lt;/code&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;日期（yyyy-mm-dd）&lt;/li&gt;
&lt;li&gt;分类（category）：一篇博客只有一个分类，且为英文，全部小写&lt;/li&gt;
&lt;li&gt;Blog slug（blog_slug）:一般全部小写，用下划线连接。如果有些词习惯大小，则可大写，例如：AMO_note&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="yaml-metadata"&gt;YAML metadata&lt;/h2&gt;
&lt;p&gt;示例如下：&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-yaml"&gt;---
title: 个人博客风格指南
date: yyyy-mm-dd
category: category
tags:
  - 'first tag'
  - 'second tag'
  - tag3
---
&lt;/code&gt;&lt;/pre&gt;
&lt;ul&gt;
&lt;li&gt;title：无要求。&lt;/li&gt;
&lt;li&gt;date: yyyy-mm-dd 应与文件名一致。&lt;/li&gt;
&lt;li&gt;category: 唯一，应与文件名一致。&lt;/li&gt;
&lt;li&gt;tags:
&lt;ul&gt;
&lt;li&gt;中英文皆可。&lt;/li&gt;
&lt;li&gt;写成 &lt;a href="https://zh.wikipedia.org/zh-cn/YAML"&gt;YAML&lt;/a&gt; 清单的形式。&lt;/li&gt;
&lt;li&gt;空，一个，或多个。&lt;/li&gt;
&lt;li&gt;用空格连接，不用下划线。如果有空格则加单引号引起来，没有空格不必加单引号。&lt;/li&gt;
&lt;li&gt;一般全部小写，如果有些词习惯大小，则可大写。&lt;/li&gt;
&lt;li&gt;一些形成系列的博客，可以用同一个 tag 组织，如“总结”系列。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="正文内容"&gt;正文内容&lt;/h2&gt;
&lt;p&gt;参考 &lt;a href="https://github.com/DavidAnson/markdownlint/tree/v0.40.0?tab=readme-ov-file"&gt;markdownlint&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;内容超过两页，可考虑生成目录。&lt;/p&gt;
&lt;p&gt;中英混输且中文为主：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;使用中文标点。&lt;/li&gt;
&lt;li&gt;英文或阿拉伯数字与汉字用空格隔开。&lt;/li&gt;
&lt;li&gt;中文括号中为英文，不加空格。如：风格指南（Style guide）。&lt;/li&gt;
&lt;li&gt;逗号，句号等后为英文，按英文的习惯，加一个空格。&lt;/li&gt;
&lt;/ul&gt;
</content><category term="coding"/><category term="style guide"/></entry><entry><title>Homepage</title><link href="https://zqw.ink/home.html" rel="alternate"/><published>2025-12-30T00:00:00+08:00</published><updated>2025-12-30T00:00:00+08:00</updated><author><name>ZQW</name></author><id>tag:zqw.ink,2025-12-30:/home.html</id><summary type="html">
&lt;h2 id="welcome-to-从冰上的水"&gt;Welcome to 从冰上的水&lt;/h2&gt;
&lt;p&gt;I am ZQW.&lt;/p&gt;
&lt;p&gt;I am interested in physics, music, and coding.&lt;/p&gt;
&lt;p&gt;Bingo! If your comes here from ORCiD or Google Scholar, and want to learn more about me.&lt;br /&gt;
(But there's no train from here to my ORCiD or Google Scholar page.)&lt;/p&gt;
&lt;p&gt;Most of …&lt;/p&gt;</summary><content type="html">
&lt;h2 id="welcome-to-从冰上的水"&gt;Welcome to 从冰上的水&lt;/h2&gt;
&lt;p&gt;I am ZQW.&lt;/p&gt;
&lt;p&gt;I am interested in physics, music, and coding.&lt;/p&gt;
&lt;p&gt;Bingo! If your comes here from ORCiD or Google Scholar, and want to learn more about me.&lt;br /&gt;
(But there's no train from here to my ORCiD or Google Scholar page.)&lt;/p&gt;
&lt;p&gt;Most of content in this site is written in Chinese. If you are interested, you can use translators, such as &lt;a href="https://translate.google.com"&gt;Google translator&lt;/a&gt;, &lt;a href="https://www.deepl.com"&gt;DeepL&lt;/a&gt;...&lt;/p&gt;
&lt;p&gt;Have a nice day!&lt;/p&gt;
&lt;hr /&gt;
&lt;h2 id="欢迎来到从冰上的水"&gt;欢迎来到“从冰上的水”&lt;/h2&gt;
&lt;p&gt;“从冰上的水”这个是我第一次玩&lt;a href="https://zh.wikipedia.org/wiki/%E8%B7%91%E8%B7%91%E5%8D%A1%E4%B8%81%E8%BD%A6"&gt;跑跑卡丁车&lt;/a&gt;时在键盘上随机打出的 ID。现在把博客也叫这个名字，为之纪念。&lt;/p&gt;
&lt;p&gt;职业是物理，兴趣爱好是物理、音乐和写程序。这里有一些生活随笔和科研笔记。&lt;/p&gt;
&lt;p&gt;我把自己的 ORCiD 和 Google Scholar 链接到了这里。这里可以了解更多和科研关系不大的方面。但是这里没有给出到 ORCiD 和 Google Scholar 的链接。&lt;/p&gt;
&lt;p&gt;欢迎发电子邮件和我交流: &lt;a href="mailto:zeqing6688@126.com"&gt;zeqing6688@126.com&lt;/a&gt;！关于本站点的搭建，可以参考标签&lt;a href="/tag/blog"&gt;#blog&lt;/a&gt;下的博客。&lt;/p&gt;
&lt;h2 id="系列文章"&gt;系列文章：&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="/tag/zong-jie"&gt;#总结&lt;/a&gt;：个人总结汇总。&lt;/li&gt;
&lt;li&gt;&lt;a href="/tag/blog"&gt;#blog&lt;/a&gt;：本博客的搭建历史。&lt;/li&gt;
&lt;li&gt;&lt;a href="/tag/chu-zhong-hui-yi-lu"&gt;#初中回忆录&lt;/a&gt;：初中毕业时写的。以前在新浪博客上，现在搬了过来。&lt;/li&gt;
&lt;li&gt;&lt;a href="/tag/wen-xue-qing-nian"&gt;#文学青年&lt;/a&gt;：虚构故事。文学青年的梦一直在。&lt;/li&gt;
&lt;li&gt;&lt;a href="/tag/atomic-and-optical-physics"&gt;#Atomic and Optical Physics&lt;/a&gt;：Wolfgang Ketterle 的 &lt;a href="https://www.youtube.com/playlist?list=PLUl4u3cNGP62FPGcyFJkzhqq9c5cHCK32"&gt;AMO 公开课&lt;/a&gt;笔记。&lt;/li&gt;
&lt;li&gt;&lt;a href="/tag/susskind"&gt;#Susskind&lt;/a&gt;：Susskind 的公开课笔记。&lt;/li&gt;
&lt;li&gt;&lt;a href="/tag/carl-bender"&gt;#Carl Bender&lt;/a&gt;：Carl Bender 的 &lt;a href="https://www.youtube.com/playlist?list=PLzcd6SoIscwjHuWRE38UXWG92uq0Sy4UF"&gt;Perturbation Theory 公开课&lt;/a&gt;笔记。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="blogroll"&gt;Blogroll&lt;/h2&gt;
&lt;p&gt;这里列出一些优秀的个人站点。&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;站名&lt;/th&gt;
&lt;th&gt;简介&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://susskindsblogphysicsforeveryone.blogspot.com/"&gt;Susskind's Blog: Physics for Everyone &lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Susskind 教授的系列公开课：&lt;a href="https://theoreticalminimum.com/courses"&gt;Theoretical Minimum&lt;/a&gt;  是我读博期间科研受挫时的精神慰藉。&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://webspace.science.uu.nl/~hooft101/"&gt; Gerard ’t Hooft&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;著名物理学家。他给出了物理学从入门到精通：&lt;a href="https://www.goodtheorist.science/"&gt;How to become a GOOD Theoretical Physicist&lt;/a&gt;。&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://web.physics.wustl.edu/cmb/"&gt;Carl M. Bender's Home Page&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Carl 教授的主页。我从他的公开课 &lt;a href="https://www.youtube.com/playlist?list=PLzcd6SoIscwjHuWRE38UXWG92uq0Sy4UF"&gt;Perturbation Theory&lt;/a&gt; 中收获很多。&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://www.physixfan.com/"&gt;physixfan&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;物理专业出身的博主。&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://yihui.org/"&gt;Yihui Xie 谢益辉&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;非常优雅的个人主页。我从这里学习到很多。也从这里知道了很多优秀的个人博客。&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://wiwi.blog/"&gt;Wiwi 的貼文和筆記&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;极客音乐家。无论是音乐知识，还是搭建个人网站的一些理念，都使我受益匪浅。同时也从他的 &lt;a href="https://wiwi.blog/blogroll"&gt;部落卷/Blogroll&lt;/a&gt; 里知道了好多优秀的个人博客。&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://www.ruanyifeng.com/blog/"&gt;阮一峰的网络日志&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;著名博主，引用作者的介绍：“这里记录每周值得分享的科技内容，周五发布。”&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://yxli8023.github.io/"&gt;Yu-Xuan's Blog&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;充满热情的物理学研究者。&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://alexhsu.com/"&gt;Alex Hsu 徐小翔&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;引用作者的自我介绍：“獨立開發者，想成為作家。紀錄持續學習和追求簡單的感悟。”&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://jmyblog.top/"&gt;谁把钱丢了&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;引用作者的自我介绍：“一个不想努力的老阿姨”。&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://yufree.cn/"&gt;Miao Yu 于淼&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;生活在美国的科学家。&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://tang-jay.github.io/"&gt;Tan Jay 唐 洁&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;一位在读博士生。&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://antfu.me"&gt;Anthony Fu&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;非常漂亮的博客，作者是专业开发者。作者我自我介绍：“A fanatical open sourceror and design engineer.”。&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://sive.rs/"&gt;Derek Sivers&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;作者的自我介绍：“I’ve been a musician, circus performer, entrepreneur, and speaker.”。&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="往期-banner"&gt;往期 Banner&lt;/h2&gt;
&lt;p&gt;网站以前的版本，会用一个 Banner 放在顶部。这里列出以往用过的 Banner。基本就是那一段时期看了，也特别喜欢的动漫。图片大部分是从 &lt;a href="https://fanart.tv/"&gt;Fanart&lt;/a&gt; 上找的。&lt;/p&gt;
&lt;h3 id="2023-年-10-月-30-日至-2026-年-1-月-3-日cyberpunk-edgerunners"&gt;2023 年 10 月 30 日至 2026 年 1 月 3 日：Cyberpunk: Edgerunners&lt;/h3&gt;
&lt;p&gt;用的是：&lt;a href="https://bgm.tv/subject/309311"&gt;Cyberpunk: Edgerunners&lt;/a&gt;。基本是延期那段时间看的，&lt;a href="./2025-04-06-blog-baicaoyuan_huizhou.html"&gt;住在校外&lt;/a&gt;。这个 Banner 是我自己把好几张拼在一直形成的。&lt;br /&gt;
&lt;img src="./images/banner_20231030_cyberpunk.jpg" alt="edgerunners" /&gt;&lt;/p&gt;
&lt;h3 id="2023-年-5-月-7-日至-2023-年-10-月-30-日剧场版-刀剑神域-进击篇-黯淡黄昏的谐谑曲"&gt;2023 年 5 月 7 日至 2023 年 10 月 30 日：剧场版 刀剑神域 进击篇 黯淡黄昏的谐谑曲&lt;/h3&gt;
&lt;p&gt;用的是：&lt;a href="https://bgm.tv/subject/355004"&gt;剧场版 刀剑神域 进击篇 黯淡黄昏的谐谑曲&lt;/a&gt;。和小戴去电影院看的。好看。&lt;br /&gt;
&lt;img src="./images/banner_20230507_sword-art-online-progressive.jpg" alt="sword art online progressive" /&gt;&lt;/p&gt;
&lt;h3 id="2023-年-4-月-23-日至-2023-年-5-月-7-日我推的孩子"&gt;2023 年 4 月 23 日至 2023 年 5 月 7 日：【我推的孩子】&lt;/h3&gt;
&lt;p&gt;用的是：&lt;a href="https://bgm.tv/subject/386809"&gt;【我推的孩子】&lt;/a&gt;。也是小戴推荐的。好看。&lt;br /&gt;
&lt;img src="./images/banner_20230423_oshi_no_ko.jpg" alt="o shi no ko" /&gt;&lt;/p&gt;
&lt;h3 id="2023-年-3-月-28-日至-2023-年-4-月-23-日铃芽之旅"&gt;2023 年 3 月 28 日至 2023 年 4 月 23 日：铃芽之旅&lt;/h3&gt;
&lt;p&gt;用的是&lt;a href="https://bgm.tv/subject/362577"&gt;铃芽之旅&lt;/a&gt;。也是去电影院看的，记得有好几个人一起。&lt;/p&gt;
&lt;p&gt;&lt;img src="./images/banner_20230328_suzume.jpg" alt="suzume" /&gt;&lt;br /&gt;
&lt;img src="./images/banner_20230328_suzume2.jpg" alt="another suzume" /&gt;&lt;/p&gt;
&lt;h3 id="2022-年-4-月-27-日至-2023-年-3-月-28-日玉子爱情故事"&gt;2022 年 4 月 27 日至 2023 年 3 月 28 日：玉子爱情故事&lt;/h3&gt;
&lt;p&gt;用的是：&lt;a href="https://bgm.tv/subject/90880"&gt;玉子爱情故事&lt;/a&gt;。是&lt;a href="https://bgm.tv/subject/55113"&gt;玉子市场&lt;/a&gt;的剧场版。&lt;br /&gt;
&lt;img src="./images/banner_20220427_tamako-love-story.jpg" alt="tamako love story" /&gt;&lt;/p&gt;
&lt;h3 id="2022-年至-2023-年夏日重现"&gt;2022 年至 2023 年：夏日重现&lt;/h3&gt;
&lt;p&gt;用的是：&lt;a href="https://bgm.tv/subject/326895"&gt;夏日重现&lt;/a&gt;。也是小戴推荐的。好看。取景地是和歌山。离得不远，之后可以去看看。&lt;/p&gt;
&lt;p&gt;&lt;img src="./images/banner_2022-2023.jpg" alt="summer time rendering" /&gt;&lt;/p&gt;
</content><category term="other"/><category term="other"/></entry><entry><title>个人数据管理策略与感想</title><link href="https://zqw.ink/2025-12-28-blog-data_manage_backup.html" rel="alternate"/><published>2025-12-28T00:00:00+08:00</published><updated>2025-12-28T00:00:00+08:00</updated><author><name>ZQW</name></author><id>tag:zqw.ink,2025-12-28:/2025-12-28-blog-data_manage_backup.html</id><summary type="html">
&lt;p&gt;有时引入数据库会使数据看起来很漂亮，但如无必要，应尽量避免引入数据库。&lt;/p&gt;
&lt;h2 id="照片的确需要数据库"&gt;照片的确需要数据库&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;照片很多。&lt;/li&gt;
&lt;li&gt;我们经常需 …&lt;/li&gt;&lt;/ul&gt;</summary><content type="html">
&lt;p&gt;有时引入数据库会使数据看起来很漂亮，但如无必要，应尽量避免引入数据库。&lt;/p&gt;
&lt;h2 id="照片的确需要数据库"&gt;照片的确需要数据库&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;照片很多。&lt;/li&gt;
&lt;li&gt;我们经常需要按时间、地点、人物等进行预览。&lt;/li&gt;
&lt;li&gt;数据库只做缓存/索引，不做唯一真相。数据库中的数据应大部分为能够从文件自动生成的数据，不在数据库中写入过多信息，减少数据库丢失导致的信息损失。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="不引入没有必要的数据库"&gt;不引入没有必要的数据库&lt;/h2&gt;
&lt;p&gt;引入不必的数据库，会导致：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;数据依赖某个软件。这会导致：
&lt;ul&gt;
&lt;li&gt;迁移时数据会很麻烦，甚至丢失。比如用了很多 obsidian 插件。&lt;/li&gt;
&lt;li&gt;跨端读取的困难，比如：
&lt;ul&gt;
&lt;li&gt;文件命名不利于其它软件读取（zotero， calibre）。而有些软件本身并非全平台开发。&lt;/li&gt;
&lt;li&gt;如果软件本身只有本地数据库，如果用 webDev 同步时会有数据库冲突的风险。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;由于引入了数据库，导入文件时往往会不经过自己的大脑，看起来数据井井有条，但实际上自己对数据库的掌控变低了。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="现行方案"&gt;现行方案&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;照片： immich 用 3-2-1 备份原则&lt;sup class="footnote-ref"&gt;&lt;a href="#fn1" id="fnref1"&gt;[1]&lt;/a&gt;&lt;/sup&gt;&lt;/li&gt;
&lt;li&gt;其它全直接存文件，用 nextcloud 同步：
&lt;ul&gt;
&lt;li&gt;论文：直接放到对应的课题内的 reference 的文件夹中。按 &lt;code&gt;year-cite-title&lt;/code&gt; 的格式命名。&lt;/li&gt;
&lt;li&gt;电子书：直接存相应的文件。&lt;/li&gt;
&lt;li&gt;随笔：存成 markdown 格式，写好元信息。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr class="footnotes-sep" /&gt;
&lt;section class="footnotes"&gt;
&lt;ol class="footnotes-list"&gt;
&lt;li id="fn1" class="footnote-item"&gt;&lt;p&gt;3-2-1 备份原则指：存储 3 份完整文件，一份原件加上两份拷贝；将文件起码保持在 2 种不同的介质上；将一份拷贝保存在异地。 &lt;a href="#fnref1" class="footnote-backref"&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/section&gt;
</content><category term="blog"/><category term="immich"/><category term="zotero"/></entry><entry><title>杨振宁先生逝世</title><link href="https://zqw.ink/2025-10-18-cn_yang_pass_away.html" rel="alternate"/><published>2025-10-18T00:00:00+08:00</published><updated>2025-10-18T00:00:00+08:00</updated><author><name>ZQW</name></author><id>tag:zqw.ink,2025-10-18:/2025-10-18-cn_yang_pass_away.html</id><summary type="html">
&lt;p&gt;杨振宁先生于今日逝世。&lt;/p&gt;
&lt;p&gt;一个物理学时代的终结。&lt;/p&gt;
&lt;p&gt;去年是李政道先生逝世。&lt;/p&gt;
&lt;p&gt;杨先生是真正的物理学大师，我非常敬佩。&lt;/p&gt;
&lt;p&gt;对物理 …&lt;/p&gt;</summary><content type="html">
&lt;p&gt;杨振宁先生于今日逝世。&lt;/p&gt;
&lt;p&gt;一个物理学时代的终结。&lt;/p&gt;
&lt;p&gt;去年是李政道先生逝世。&lt;/p&gt;
&lt;p&gt;杨先生是真正的物理学大师，我非常敬佩。&lt;/p&gt;
&lt;p&gt;对物理和数学的掌控。&lt;/p&gt;
&lt;p&gt;人固有一死。&lt;/p&gt;
&lt;p&gt;每个人都有这样的一天，&lt;/p&gt;
&lt;p&gt;不论是谁。&lt;/p&gt;
&lt;p&gt;不过，&lt;/p&gt;
&lt;p&gt;今天阳光正好，&lt;/p&gt;
&lt;p&gt;大有可为。&lt;/p&gt;
</content><category term="blog"/><category term="杨振宁"/><category term="日记"/></entry><entry><title>用 certbot 手动获取受信任的 SSL证，并实现对 NextCloud 容器 80 端口的 SSL 访问</title><link href="https://zqw.ink/2025-09-14-coding-certbot.html" rel="alternate"/><published>2025-09-14T00:00:00+08:00</published><updated>2025-09-14T00:00:00+08:00</updated><author><name>ZQW</name></author><id>tag:zqw.ink,2025-09-14:/2025-09-14-coding-certbot.html</id><summary type="html">
&lt;h2 id="ssl加密"&gt;SSL加密&lt;/h2&gt;
&lt;p&gt;在使用自己搭建的服务，如 &lt;code&gt;emby&lt;/code&gt; ,&lt;code&gt;nextcloud&lt;/code&gt;, &lt;code&gt;immich&lt;/code&gt; 时，如果使用域名访问，当没有进行受信任的 SSL 加密时，对应的手机 app 会连不上，提醒，或 …&lt;/p&gt;</summary><content type="html">
&lt;h2 id="ssl加密"&gt;SSL加密&lt;/h2&gt;
&lt;p&gt;在使用自己搭建的服务，如 &lt;code&gt;emby&lt;/code&gt; ,&lt;code&gt;nextcloud&lt;/code&gt;, &lt;code&gt;immich&lt;/code&gt; 时，如果使用域名访问，当没有进行受信任的 SSL 加密时，对应的手机 app 会连不上，提醒，或报错。&lt;/p&gt;
&lt;p&gt;最简单的方式是用 &lt;code&gt;certbot&lt;/code&gt; 获取一个 90 天期限的 SSL 证书，到期后再更新。此篇博客做一备忘。&lt;/p&gt;
&lt;h2 id="证书获取过程"&gt;证书获取过程&lt;/h2&gt;
&lt;p&gt;安装好certbot后，执行以下命令手动获取 SSL 证书，并用在域名上添加一条 txt 解析的方式进行域名验证：&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-bash"&gt;certbot certonly --manual --preferred-challenges dns -d xxx.xxx.com
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;按提示在域名提供商处添加记录：&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-bash"&gt;Saving debug log to /var/log/letsencrypt/letsencrypt.log
Requesting a certificate for xxx.xxx.com

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Please deploy a DNS TXT record under the name:

_acme-challenge.xxx.xxx.com.

with the following value:

GxxxxxxxxxxxxxQ

Before continuing, verify the TXT record has been deployed. Depending on the DNS
provider, this may take some time, from a few seconds to multiple minutes. You can
check if it has finished deploying with aid of online tools, such as the Google
Admin Toolbox: https://toolbox.googleapps.com/apps/dig/#TXT/_acme-challenge.xxx.xxx.com.
Look for one or more bolded line(s) below the line ';ANSWER'. It should show the
value(s) you've just added.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Press Enter to Continue

Successfully received certificate.
Certificate is saved at: /etc/letsencrypt/live/xxx.xxx.com/fullchain.pem
Key is saved at:         /etc/letsencrypt/live/xxx.xxx.com/privkey.pem
This certificate expires on 2025-12-13.
These files will be updated when the certificate renews.

NEXT STEPS:
- This certificate will not be renewed automatically. Autorenewal of --manual certificates requires the use of an authentication hook script (--manual-auth-hook) but one was not provided. To renew this certificate, repeat this same certbot command before the certificate's expiry date.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
If you like Certbot, please consider supporting our work by:
 * Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
 * Donating to EFF:                    https://eff.org/donate-le
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;code&gt;.pem&lt;/code&gt;、&lt;code&gt;.crt&lt;/code&gt;、&lt;code&gt;.key&lt;/code&gt; 本质上都是文本格式的证书/密钥文件，只是扩展名不同而已。可以直接需要复制或改名：&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-bash"&gt;fullchain.pem -&amp;gt;.crt
privkey.pem -&amp;gt;.key
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;正确设置权限，参考如下：&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-bash"&gt;-rw-r--r--. 1 zqw zqw 2.8K Sep 14 17:40 server.crt
-rw-------. 1 zqw zqw  227 Sep 14 17:40 server.key
&lt;/code&gt;&lt;/pre&gt;
&lt;h2 id="代理的-podman-文件代理容器的配置文件示例"&gt;代理的 Podman 文件，代理容器的配置文件示例&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;nextcloud-proxy.container&lt;/code&gt;:&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-bash"&gt;[Container]
ContainerName=nextcloud-proxy
Pod=nextcloud.pod
Image=docker.io/library/httpd:2.4
Volume=/xxx/extra-proxy.conf:/usr/local/apache2/conf/extra/proxy.conf:ro,Z
Volume=/xxx/httpd.conf:/usr/local/apache2/conf/httpd.conf:ro,Z
Volume=/xxx/server.crt:/usr/local/apache2/conf/server.crt:ro,Z
Volume=/xxx/server.key:/usr/local/apache2/conf/server.key:ro,Z
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;code&gt;httpd.conf&lt;/code&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-bash"&gt;# Real-time info on requests and configuration
#Include conf/extra/httpd-info.conf

# Virtual hosts
#Include conf/extra/httpd-vhosts.conf

# Local access to the Apache HTTP Server Manual
#Include conf/extra/httpd-manual.conf

# Distributed authoring and versioning (WebDAV)
#Include conf/extra/httpd-dav.conf

# Various default settings
#Include conf/extra/httpd-default.conf

# Configure mod_proxy_html to understand HTML4/XHTML1
&amp;lt;IfModule proxy_html_module&amp;gt;
Include conf/extra/proxy-html.conf
&amp;lt;/IfModule&amp;gt;

# Secure (SSL/TLS) connections
#Include conf/extra/httpd-ssl.conf
#
# Note: The following must must be present to support
#       starting without SSL on platforms with no /dev/random equivalent
#       but a statically compiled-in mod_ssl.
#
&amp;lt;IfModule ssl_module&amp;gt;
SSLRandomSeed startup builtin
SSLRandomSeed connect builtin
&amp;lt;/IfModule&amp;gt;

Include conf/extra/proxy.conf
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;反向代理容器和 nextcloud 容器在同个 pod 内，把nextcloud 默认的 80 代理到了 443:&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-bash"&gt;LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy_http.so

&amp;lt;IfModule mod_proxy.c&amp;gt;
    ProxyPreserveHost On
    ProxyPass / http://localhost:80/
    ProxyPassReverse / http://localhost:80/
&amp;lt;/IfModule&amp;gt;

LoadModule socache_shmcb_module modules/mod_socache_shmcb.so
LoadModule ssl_module modules/mod_ssl.so
Include conf/extra/httpd-ssl.conf
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;在 &lt;code&gt;~/.config/containers/systemd/nextcloud.pod&lt;/code&gt; 文件中，再把 443 映射到想要的端口（如9999），这样就可能在外网通过 SSL 访问 NextCloud 容器:&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-bash"&gt;
[Pod]
PodName=nextcloud
Network=bridge
PublishPort=9999:443

[Install]
WantedBy=default.target
&lt;/code&gt;&lt;/pre&gt;
&lt;h2 id="参考资料"&gt;参考资料&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://wiki.archlinux.org/title/Certbot"&gt;ArchWiki: Certbot&lt;/a&gt;&lt;/p&gt;
</content><category term="coding"/><category term="SSL"/><category term="certbot"/></entry><entry><title>Plotly 绘制动图</title><link href="https://zqw.ink/2025-06-18-coding-plotly_animation.html" rel="alternate"/><published>2025-06-18T00:00:00+08:00</published><updated>2025-06-18T00:00:00+08:00</updated><author><name>ZQW</name></author><id>tag:zqw.ink,2025-06-18:/2025-06-18-coding-plotly_animation.html</id><summary type="html">
&lt;h2 id="基础版本"&gt;基础版本&lt;/h2&gt;
&lt;pre&gt;&lt;code class="language-python"&gt;import plotly.graph_objects as go
import numpy as np

x = np.linspace(0, 2*np.pi, 50)
t = np.linspace(0, 2*np.pi, 500)
yt = [np.sin(x + ti) for ti in t]
frames = [go.Frame(data=[go.Scatter(x=x, y=y1i)]) for y1i …&lt;/code&gt;&lt;/pre&gt;</summary><content type="html">
&lt;h2 id="基础版本"&gt;基础版本&lt;/h2&gt;
&lt;pre&gt;&lt;code class="language-python"&gt;import plotly.graph_objects as go
import numpy as np

x = np.linspace(0, 2*np.pi, 50)
t = np.linspace(0, 2*np.pi, 500)
yt = [np.sin(x + ti) for ti in t]
frames = [go.Frame(data=[go.Scatter(x=x, y=y1i)]) for y1i in yt]

fig = go.Figure(data=frames[0].data, frames=frames)

ani_opts = dict(frame={&amp;quot;duration&amp;quot;: 20, &amp;quot;redraw&amp;quot;: False})
bt = go.layout.updatemenu.Button(label=&amp;quot;Play&amp;quot;, method=&amp;quot;animate&amp;quot;,
                                 args=[None, ani_opts])

fig.update_layout(updatemenus=[dict(type='buttons', buttons=[bt])])

fig.write_html(file=&amp;quot;basic_ver.html&amp;quot;, include_mathjax='cdn', auto_play=False)
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;a href="2025-06-18-coding-plotly_animation/basic_ver.py"&gt;basic_ver.py&lt;/a&gt;&lt;/p&gt;
&lt;iframe src="2025-06-18-coding-plotly_animation/basic_ver.html" width="100%" height=600&gt;&lt;/iframe&gt;
&lt;h2 id="高级版本"&gt;高级版本&lt;/h2&gt;
&lt;pre&gt;&lt;code class="language-python"&gt;import plotly.graph_objects as go
import numpy as np
import plotly.io as pio

pio.renderers.default = 'notebook_connected'

x = np.linspace(0, 2*np.pi, 50)
t = np.linspace(0, 2*np.pi, 500)
y1t = [np.sin(x + ti) for ti in t]
y2t = [np.cos(x + ti) for ti in t]
frames = [go.Frame(data=[go.Scatter(x=x, y=y1i, name=r'$\sin(x+t)$'),
                         go.Scatter(x=x, y=y2i, name=r'$\cos(x+t)$')],
                   name=f'{ti:.2f}')
          for y1i, y2i, ti in zip(y1t, y2t, t)]

fig = go.Figure(data=frames[0].data, frames=frames)

ani_opts = dict(frame={&amp;quot;duration&amp;quot;: 20, &amp;quot;redraw&amp;quot;: False})
bt_play = go.layout.updatemenu.Button(label=&amp;quot;Play&amp;quot;, method=&amp;quot;animate&amp;quot;,
                                      args=[None, ani_opts])

ani_opts_stop = dict(mode='immediate')
bt_stop = go.layout.updatemenu.Button(
    label=&amp;quot;Stop&amp;quot;, method=&amp;quot;animate&amp;quot;,
    args=[[fig.frames[0].name, fig.frames[1].name], ani_opts_stop])

ani_opts_slider = dict(frame={&amp;quot;duration&amp;quot;: 20, &amp;quot;redraw&amp;quot;: True})
slider_steps = [go.layout.slider.Step(args=[[f.name], ani_opts_slider],
                                      label=f.name, method='animate')
                for f in fig.frames]
slider = go.layout.Slider(active=0, steps=slider_steps)


fig.update_layout(updatemenus=[dict(type='buttons',
                                    buttons=[bt_play, bt_stop])],
                  sliders=[slider],
                  xaxis_title=r'$x$',
                  paper_bgcolor='rgba(0,0,0,0)',
                  plot_bgcolor='rgba(0,0,0,0)')

fig.write_html(file=&amp;quot;pro_ver.html&amp;quot;, include_mathjax='cdn', auto_play=False)

&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;a href="2025-06-18-coding-plotly_animation/pro_ver.py"&gt;pro_ver.py&lt;/a&gt;&lt;/p&gt;
&lt;iframe src="2025-06-18-coding-plotly_animation/pro_ver.html" width="100%" height=600&gt;&lt;/iframe&gt;
&lt;h2 id="参考"&gt;参考&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://plotly.com/python/animations/"&gt;Plotly Animations&lt;/a&gt;&lt;/p&gt;
</content><category term="coding"/><category term="plotly"/><category term="python"/></entry><entry><title>Rotating Wave Approximation Numerical Check</title><link href="https://zqw.ink/2025-06-16-physics-rwa_check.html" rel="alternate"/><published>2025-06-16T00:00:00+08:00</published><updated>2025-06-16T00:00:00+08:00</updated><author><name>ZQW</name></author><id>tag:zqw.ink,2025-06-16:/2025-06-16-physics-rwa_check.html</id><summary type="html">&lt;pre&gt;&lt;code class="language-python"&gt;import numpy as np
import qutip as qtp
import plotly.graph_objects as go
import plotly.io as pio

pio.renderers.default = 'browser'
pio.templates.default = 'plotly_dark'

w0 = 8
wL = 7
Omega = 1
tlist = np.linspace(0, 20, 1000)

psi0 = qtp.basis(2, 0)

H0 = w0/2 * qtp.sigmaz()

H_full = qtp …&lt;/code&gt;&lt;/pre&gt;</summary><content type="html">&lt;pre&gt;&lt;code class="language-python"&gt;import numpy as np
import qutip as qtp
import plotly.graph_objects as go
import plotly.io as pio

pio.renderers.default = 'browser'
pio.templates.default = 'plotly_dark'

w0 = 8
wL = 7
Omega = 1
tlist = np.linspace(0, 20, 1000)

psi0 = qtp.basis(2, 0)

H0 = w0/2 * qtp.sigmaz()

H_full = qtp.QobjEvo(lambda t: w0/2 * qtp.sigmaz()
                               + Omega*np.cos(wL*t)*qtp.sigmax())
H_rwa = qtp.QobjEvo(lambda t: w0/2 * qtp.sigmaz()
                              + Omega/2*np.exp(-1j*wL*t)*qtp.sigmap()
                              + Omega/2*np.exp(1j*wL*t)*qtp.sigmam())
H_neg = qtp.QobjEvo(lambda t: w0/2 * qtp.sigmaz()
                              + Omega/2*np.exp(1j*wL*t)*qtp.sigmap()
                              + Omega/2*np.exp(-1j*wL*t)*qtp.sigmam())

result_full = qtp.mesolve(H=H_full, rho0=psi0, tlist=tlist, c_ops=[],
                          e_ops=[(1 - qtp.sigmaz()) / 2])

result_rwa = qtp.mesolve(H=H_rwa, rho0=psi0, tlist=tlist, c_ops=[],
                         e_ops=[(1 - qtp.sigmaz()) / 2])
result_neg = qtp.mesolve(H=H_neg, rho0=psi0, tlist=tlist, c_ops=[],
                         e_ops=[(1 - qtp.sigmaz()) / 2])

fig = go.Figure()
fig.add_trace(go.Scatter(x=tlist, y=result_full.expect[0],
                         name=&amp;quot;Full (no RWA)&amp;quot;))
fig.add_trace(go.Scatter(x=tlist, y=result_rwa.expect[0], name=&amp;quot;RWA&amp;quot;))
fig.add_trace(go.Scatter(x=tlist, y=result_neg.expect[0], name=&amp;quot;High-freq&amp;quot;))
# fig.add_trace(go.Scatter(x=tlist, y=result_neg.expect[0]+result_rwa.expect[0],
#                          name=&amp;quot;High-freq + Low-freq&amp;quot;, mode='markers'))
fig.update_layout(xaxis=dict(title=r'$\Omega t$'),
                  yaxis=dict(title=r'$|\psi_{\downarrow}|^2$'),
                  title='Rotating Wave Approximation')
fig.add_annotation(x=.8, y=1.2,
                   text=r'$\omega_0/\Omega='+f'{w0/Omega:n}'+ r', \omega_L/\Omega='+f'{wL/Omega:n}'+r'$',
                   showarrow=False,
                   xref='paper', yref='paper', font=dict(size=30))

fig.write_html('check1.html', include_mathjax=&amp;quot;cdn&amp;quot;)

w0 = 8
w1 = 7

g = 1

H0 = w0/2 * qtp.tensor(qtp.sigmaz(), qtp.qeye(2))
H1 = w1/2 * qtp.tensor(qtp.qeye(2), qtp.sigmaz())

V_full = g*qtp.tensor(qtp.sigmap() + qtp.sigmam(), qtp.sigmap() + qtp.sigmam())
V_rwa = g*(qtp.tensor(qtp.sigmap(), qtp.sigmam())
           +qtp.tensor(qtp.sigmam(), qtp.sigmap()))

psi0 = qtp.tensor(qtp.spin_coherent(j=1/2, theta=.7*np.pi, phi=1),
                  qtp.spin_coherent(j=1/2, theta=.8*np.pi, phi=2))

tlist = np.linspace(0, 20, 10000)
res_full = qtp.mesolve(H=H0+H1+V_full, rho0=psi0, tlist=tlist,
                       c_ops=[],
                       e_ops=[(1-qtp.tensor(qtp.sigmaz(), qtp.qeye(2))) / 2])
res_rwa = qtp.mesolve(H=H0+H1+V_rwa, rho0=psi0, tlist=tlist,
                      c_ops=[],
                      e_ops=[(1-qtp.tensor(qtp.sigmaz(), qtp.qeye(2))) / 2])
fig = go.Figure()
fig.add_trace(go.Scatter(x=tlist, y=res_full.expect[0], name='Full (no RWA)'))
fig.add_trace(go.Scatter(x=tlist, y=res_rwa.expect[0], name='RWA'))

fig.write_html('check2.html', include_mathjax=&amp;quot;cdn&amp;quot;)
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;a href="2025-06-16-physics-rwa_check/check.py"&gt;check.py&lt;/a&gt;&lt;/p&gt;
&lt;iframe src="2025-06-16-physics-rwa_check/check1.html" width="100%" height="600"&gt;&lt;/iframe&gt;
&lt;iframe src="2025-06-16-physics-rwa_check/check2.html" width="100%" height="600"&gt;&lt;/iframe&gt;</content><category term="physics"/><category term="rotating wave approximation"/><category term="ploly"/></entry><entry><title>Linux 使用笔记（进阶）</title><link href="https://zqw.ink/2025-05-10-coding-rocklinux.html" rel="alternate"/><published>2025-05-10T00:00:00+08:00</published><updated>2025-05-10T00:00:00+08:00</updated><author><name>ZQW</name></author><id>tag:zqw.ink,2025-05-10:/2025-05-10-coding-rocklinux.html</id><summary type="html">
&lt;h2 id="引言"&gt;引言&lt;/h2&gt;
&lt;p&gt;从 2018 年开始入门 Linux，已经 7 年了。&lt;br /&gt;
从 Deepin 到 Manjaro，再到 Rocky Linux。&lt;br /&gt;
中间也尝试过 ArchLinux, Debian, Ubuntu, CentOS等等。&lt;/p&gt;
&lt;p&gt;一开始入门是能用就行，折腾桌面环境。&lt;br /&gt;
到 …&lt;/p&gt;</summary><content type="html">
&lt;h2 id="引言"&gt;引言&lt;/h2&gt;
&lt;p&gt;从 2018 年开始入门 Linux，已经 7 年了。&lt;br /&gt;
从 Deepin 到 Manjaro，再到 Rocky Linux。&lt;br /&gt;
中间也尝试过 ArchLinux, Debian, Ubuntu, CentOS等等。&lt;/p&gt;
&lt;p&gt;一开始入门是能用就行，折腾桌面环境。&lt;br /&gt;
到现在开始考虑一些安全性，长期的稳定性，不再为了图省事直接关闭防火墙和 SELinux。&lt;br /&gt;
每一行代码都想要理解含义。&lt;br /&gt;
理解配置的逻辑和哲学。&lt;/p&gt;
&lt;h2 id="rocky-linux"&gt;&lt;code&gt;Rocky Linux&lt;/code&gt;&lt;/h2&gt;
&lt;p&gt;用 &lt;code&gt;Rocky Linux&lt;/code&gt; 用的还不多，在此写一些备忘。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;Rocky Linux&lt;/code&gt; 是 CentOS 替代品，适用于服务器。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;默认使用 &lt;code&gt;SELinux&lt;/code&gt;，&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;使用&lt;code&gt;Cockpit&lt;/code&gt; 面版，&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;使用 LVM 和 &lt;code&gt;xfs&lt;/code&gt;文件系统。&lt;br /&gt;
&lt;code&gt;xfs&lt;/code&gt;文件系统，性能高，适合处理大文件，并行写入，可以不停机扩容，但是不支持缩容，跨平台兼容性差。&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="lvm逻辑卷管理"&gt;LVM（逻辑卷管理）&lt;/h2&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;层级&lt;/th&gt;
&lt;th&gt;作用&lt;/th&gt;
&lt;th&gt;类比&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;物理卷 PV&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;实际的硬盘或分区&lt;/td&gt;
&lt;td&gt;地基&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;卷组 VG&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;若干物理卷组合的池子&lt;/td&gt;
&lt;td&gt;水泥池&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;逻辑卷 LV&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;从卷组中划分出来的卷&lt;/td&gt;
&lt;td&gt;建在池子里的房间&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;可以用 &lt;code&gt;pvdispaly&lt;/code&gt; 查看，或者简写为 &lt;code&gt;pvs&lt;/code&gt;。同理 &lt;code&gt;vgs&lt;/code&gt; 和 &lt;code&gt;lvs&lt;/code&gt;&lt;/p&gt;
&lt;h3 id="示例"&gt;示例&lt;/h3&gt;
&lt;p&gt;先用 &lt;code&gt;lsblk&lt;/code&gt; 查看硬盘情况。只有 &lt;code&gt;nvme0n1p3&lt;/code&gt; 分区中有 3 个 lv：&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-shell"&gt;AMD-ZQW-srv ➜  ~ lsblk -f
NAME        FSTYPE      FSVER    LABEL UUID                                   FSAVAIL FSUSE% MOUNTPOINTS
sda
└─sda1      ntfs                 Music 123419620B147062                         37.4G    98% /hdd7
nvme0n1
├─nvme0n1p1 vfat        FAT32          1234-B31A                               562.6M     6% /boot/efi
├─nvme0n1p2 xfs                        1234d41c-4f32-4759-9d14-652ee9c5688f     64.6M    93% /boot
└─nvme0n1p3 LVM2_member LVM2 001       1234Wo-pyLw-p278-rTFa-D4ix-7ob1-jEKxpp
  ├─rl-root xfs                        12347aef-b5a5-4034-8b01-1449de8cc13f     21.7G    69% /
  ├─rl-swap swap        1              1234c97d-5ec9-4720-84f2-30440f4269d3                  [SWAP]
  └─rl-home xfs                        1234270f-41f8-4d69-bd4d-43e20c790d82    768.9G     9% /home

&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;3个 lv 中，有一个是 swap，另外两个 lv 的文件格式都是 xfs。&lt;/p&gt;
&lt;p&gt;再 &lt;code&gt;df&lt;/code&gt; 一下，作为参考：&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-shell"&gt;AMD-ZQW-srv ➜  ~ df -hT
Filesystem          Type      Size  Used Avail Use% Mounted on
devtmpfs            devtmpfs  4.0M     0  4.0M   0% /dev
tmpfs               tmpfs      16G   84K   16G   1% /dev/shm
tmpfs               tmpfs     6.1G   11M  6.1G   1% /run
efivarfs            efivarfs  128K   36K   88K  30% /sys/firmware/efi/efivars
/dev/mapper/rl-root xfs        70G   49G   22G  69% /
/dev/mapper/rl-home xfs       845G   76G  769G   9% /home
/dev/nvme0n1p2      xfs       960M  896M   65M  94% /boot
/dev/nvme0n1p1      vfat      599M   37M  563M   7% /boot/efi
/dev/sda1           fuseblk   1.9T  1.8T   38G  98% /hdd7
tmpfs               tmpfs     3.1G  200K  3.1G   1% /run/user/1000
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;code&gt;nvme0n1p3&lt;/code&gt; 分区是一个 pv：&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-shell"&gt;AMD-ZQW-srv ➜  ~ sudo pvs
  PV             VG Fmt  Attr PSize   PFree
  /dev/nvme0n1p3 rl lvm2 a--  929.92g    0
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;code&gt;/dev/nvme0n1p3&lt;/code&gt; pv 中的三个 lv 组成一个名为 &lt;code&gt;rl&lt;/code&gt; (Rocky Linux) 的 vg：&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-shell"&gt;AMD-ZQW-srv ➜  ~ sudo vgs
  VG #PV #LV #SN Attr   VSize   VFree
  rl   1   3   0 wz--n- 929.92g    0
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;查看所有的 lv，3 个 lv 分别为 &lt;code&gt;home&lt;/code&gt; &lt;code&gt;root&lt;/code&gt; &lt;code&gt;swap&lt;/code&gt; ，全都属于 vg &lt;code&gt;rl&lt;/code&gt;：&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-shell"&gt;AMD-ZQW-srv ➜  ~ sudo lvs
  LV   VG Attr       LSize    Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  home rl -wi-ao---- &amp;lt;844.63g
  root rl -wi-ao----   70.00g
  swap rl -wi-ao----   15.29g
&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code&gt;sudo lvmdevices --adddev /dev/nvme1n1p3
sudo pvscan
sudo vgchange -ay
sudo lvs

&lt;/code&gt;&lt;/pre&gt;
&lt;h2 id="dnf-和-rpm"&gt;dnf 和 rpm&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;Rocky Linux&lt;/code&gt; 使用 &lt;code&gt;dnf&lt;/code&gt; 和 &lt;code&gt;rpm&lt;/code&gt; 管理软件包。&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;功能&lt;/th&gt;
&lt;th&gt;命令&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;查找软件包&lt;/td&gt;
&lt;td&gt;&lt;code&gt;dnf search &amp;lt;关键词&amp;gt;&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;安装软件包&lt;/td&gt;
&lt;td&gt;&lt;code&gt;dnf install &amp;lt;软件包名&amp;gt;&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;删除软件包&lt;/td&gt;
&lt;td&gt;&lt;code&gt;dnf remove &amp;lt;软件包名&amp;gt;&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;更新所有包&lt;/td&gt;
&lt;td&gt;&lt;code&gt;dnf upgrade&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;查看包信息&lt;/td&gt;
&lt;td&gt;&lt;code&gt;dnf info &amp;lt;软件包名&amp;gt;&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;清理缓存&lt;/td&gt;
&lt;td&gt;&lt;code&gt;dnf clean all&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;显示所有可更新包&lt;/td&gt;
&lt;td&gt;&lt;code&gt;dnf check-update&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;启用/禁用源&lt;/td&gt;
&lt;td&gt;&lt;code&gt;dnf config-manager --set-enabled &amp;lt;repo&amp;gt;&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;查看软件源&lt;/td&gt;
&lt;td&gt;&lt;code&gt;dnf repolist&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;工具&lt;/th&gt;
&lt;th&gt;作用&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;rpm&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;管理单个 &lt;code&gt;.rpm&lt;/code&gt; 包（安装、查询、卸载等）&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;dnf&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;依赖于 &lt;code&gt;rpm&lt;/code&gt;&lt;/strong&gt;，自动处理依赖，连接仓库&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="zsh"&gt;zsh&lt;/h2&gt;
&lt;h2 id="硬盘挂载"&gt;硬盘挂载&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;etc/systemd/system/hdd1.mount &lt;/code&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;[Unit]
Description=Mount hdd1
# After=local-fs.target

[Mount]
What=/dev/sda1
Where=/hdd1
Type=ntfs
Options=defaults,uid=1000,gid=1000

[Install]
WantedBy=multi-user.target
&lt;/code&gt;&lt;/pre&gt;
&lt;h2 id="journalctl-查看日志"&gt;journalctl 查看日志&lt;/h2&gt;
&lt;h2 id="podmandocker"&gt;Podman(Docker)&lt;/h2&gt;
&lt;p&gt;以 NextCloud为例&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-shell"&gt;~/.config/containers/systemd/nextcloud.pod
[Pod]
PodName=nextcloud
Network=bridge
PublishPort=xxxx:80

[Install]
WantedBy=default.target
&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code class="language-shell"&gt;~/.config/containers/systemd/nextcloud-app.container
[Container]
Image=docker.io/library/nextcloud:apache
Pod=nextcloud.pod
ContainerName=nextcloud-app
Volume=/XXX/data:/var/www/html:Z
Environment=MYSQL_PASSWORD=nextcloudpass
Environment=MYSQL_DATABASE=nextcloud
Environment=MYSQL_USER=nextcloud
Environment=MYSQL_HOST=nextcloud-db
#Environment=NEXTCLOUD_ADMIN_USER=admin
#Environment=NEXTCLOUD_ADMIN_PASSWORD=adminpass
Environment=&amp;quot;NEXTCLOUD_TRUSTED_DOMAINS=192.168.0.XX xx.xxx.com&amp;quot;
#Exec=sleep infinity
&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code class="language-shell"&gt;~/.config/containers/systemd/nextcloud-db.container
[Container]
Image=docker.io/library/mariadb:10.6
Pod=nextcloud.pod
ContainerName=nextcloud-db
Volume=/XXX/db:/var/lib/mysql:Z
Environment=MYSQL_ROOT_PASSWORD=rootpass
Environment=MYSQL_PASSWORD=nextcloudpass
Environment=MYSQL_DATABASE=nextcloud
Environment=MYSQL_USER=nextcloud
#Exec=sleep infinity

&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code class="language-shell"&gt;loginctl enable-linger &amp;lt;user&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;code&gt;quadlet&lt;/code&gt;是一次性读取所有的&lt;code&gt;.pod&lt;/code&gt; &lt;code&gt;.container&lt;/code&gt; 文件，所以只要有一个格式不对，就会导致所有的文件都不能生成相应的服务。可以用如下命令测试，看看是哪个文件格式有问题：&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-shell"&gt;/usr/lib/systemd/system-generators/podman-system-generator --user --dryrun
&lt;/code&gt;&lt;/pre&gt;
&lt;h2 id="selinux"&gt;SELinux&lt;/h2&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;部分&lt;/th&gt;
&lt;th&gt;含义说明&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sudo&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;以超级用户身份运行命令&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;semanage&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;SELinux 管理工具，用来配置策略（如端口、文件类型等）&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;port&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;操作对象是“端口”&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;-a&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;添加一个新记录（a = add）&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;-t ssh_port_t&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;设置这个端口的类型为 &lt;code&gt;ssh_port_t&lt;/code&gt;（也就是允许 &lt;code&gt;sshd&lt;/code&gt; 使用）&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;-p tcp&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;协议类型为 TCP（SSH 是基于 TCP 的）&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;2222&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;要添加的新端口号&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;添加端口&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-shell"&gt;sudo semanage port -a -t http_port_t -r 's0' -p tcp xxxx

sudo semanage port -a -t http_port_t -p tcp 8096
sudo semanage port -a -t http_port_t -p tcp 8920
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;允许访问目录，以及递归的子目录&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-shell"&gt;sudo semanage fcontext -a -f a -t container_file_t -r 's0' '/home/zqw(/.*)?'
sudo restorecon -Rv /home/zqw/
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;查看 SELinux 状态：&lt;br /&gt;
&lt;code&gt;getenforce&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;关闭：&lt;br /&gt;
&lt;code&gt;setenforce 0&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;开启：&lt;br /&gt;
&lt;code&gt;setenforce 1&lt;/code&gt;&lt;/p&gt;
&lt;h2 id="firewall"&gt;Firewall&lt;/h2&gt;
&lt;pre&gt;&lt;code class="language-xml"&gt;&amp;lt;!-- /etc/firewalld/services/emby.xml --&amp;gt;
&amp;lt;service&amp;gt;
  &amp;lt;short&amp;gt;Emby&amp;lt;/short&amp;gt;
  &amp;lt;description&amp;gt;Media server&amp;lt;/description&amp;gt;
  &amp;lt;port protocol=&amp;quot;tcp&amp;quot; port=&amp;quot;8096&amp;quot;/&amp;gt;
  &amp;lt;port protocol=&amp;quot;tcp&amp;quot; port=&amp;quot;8920&amp;quot;/&amp;gt;
&amp;lt;/service&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code class="language-shell"&gt;sudo firewall-cmd --permanent --add-service=emby
sudo firewall-cmd --reload
&lt;/code&gt;&lt;/pre&gt;
&lt;h2 id="rsync"&gt;Rsync&lt;/h2&gt;
&lt;p&gt;远程同步&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;rsync -av --delete --info=progress2 -e 'ssh -p ****' ./music/ ***@***.***:/hdd1/musiclib/
&lt;/code&gt;&lt;/pre&gt;
&lt;h2 id="systemctl"&gt;Systemctl&lt;/h2&gt;
&lt;h2 id="初始化与用户权限管理"&gt;初始化与用户、权限管理&lt;/h2&gt;
&lt;p&gt;出于安全考虑修改 &lt;code&gt;ssh&lt;/code&gt; 的默认端口。&lt;br /&gt;
修改 &lt;code&gt;/etc/ssh/sshd_config&lt;/code&gt; 中的 &lt;code&gt;Port&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;semanage port -a -t ssh_port_t -p tcp #PORTNUMBER&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;firewall-cmd --permanent --add-port=2222/tcp&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;firewall-cmd --reload&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;systemctl restart sshd&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;chsh -s /usr/bin/zsh&lt;/code&gt;&lt;/p&gt;
&lt;h2 id="引导"&gt;引导&lt;/h2&gt;
&lt;p&gt;ESP (EFI System Partition)&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sudo efibootmgr --create \
  --disk /dev/sdX \
  --part Y \
  --label &amp;quot;RockyLinux-GRUB&amp;quot; \
  --loader &amp;quot;\EFI\rocky\grubx64.efi&amp;quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;/dev/sdX 是你的 EFI 分区所在的磁盘，比如 /dev/sda&lt;/p&gt;
&lt;p&gt;Y 是该 EFI 分区在该盘上的分区号，比如是 /dev/sda1，那就是 --part 1&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sudo efibootmgr --bootorder 0005
&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code&gt;sudo efibootmgr --bootnum 0002 --delete-bootnum
&lt;/code&gt;&lt;/pre&gt;
&lt;h2 id="kdump"&gt;Kdump&lt;/h2&gt;
&lt;h2 id="rsync-1"&gt;rsync&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;rsync -ah --info=progress2 ../home_old/zqw/immich-app ./immich-app
&lt;/code&gt;&lt;/pre&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;参数&lt;/th&gt;
&lt;th&gt;作用&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;-a&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;归档模式，保留权限、时间戳、符号链接等&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;-v&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;verbose，显示详细信息&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;-h&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;human-readable，以 KB/MB 显示文件大小&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;--progress&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;显示每个文件的复制进度&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;/source/path/&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;结尾有 &lt;code&gt;/&lt;/code&gt; 表示复制&lt;strong&gt;目录内容&lt;/strong&gt;（而非目录本身）&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;/destination/path/&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;目标路径，需有写权限&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;--info=progress2&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;显示总进度&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="wordpress-迁移"&gt;WordPress 迁移&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;wp-settings.php&lt;/code&gt; 中添加：&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-php"&gt;define('WP_HOME', 'http://your.new.domain');
define('WP_SITEURL', 'http://your.new.domain');
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;用&lt;code&gt;wp-cli&lt;/code&gt;替换旧域名：&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-shell"&gt;curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar
chmod +x wp-cli.phar
mv wp-cli.phar /usr/local/bin/wp

wp --info

cd /var/www/html
wp search-replace 'http://xxx.xxx' 'http://xxx.xxx.xxx.xxx:xxxx' --all-tables --allow-root

&lt;/code&gt;&lt;/pre&gt;
&lt;h2 id="致谢"&gt;致谢&lt;/h2&gt;
&lt;p&gt;所有为 ChatGPT 提供训练素材的人。&lt;/p&gt;
</content><category term="coding"/><category term="SELinux"/><category term="RockyLinux"/></entry><entry><title>研六一年，延期一年，鹅城半载———从品园到百草园，再从百草园到龙光城</title><link href="https://zqw.ink/2025-04-06-blog-baicaoyuan_huizhou.html" rel="alternate"/><published>2025-04-06T00:00:00+08:00</published><updated>2025-04-06T00:00:00+08:00</updated><author><name>ZQW</name></author><id>tag:zqw.ink,2025-04-06:/2025-04-06-blog-baicaoyuan_huizhou.html</id><summary type="html">
&lt;h2 id="序"&gt;序&lt;/h2&gt;
&lt;p&gt;从 2022 年 9 月 14 日的《研五下学期总结》，已经过去了两年半的时间。&lt;/p&gt;
&lt;p&gt;遗憾的是，并没有如《研五下学期总结》中所说，能够按时毕 …&lt;/p&gt;</summary><content type="html">
&lt;h2 id="序"&gt;序&lt;/h2&gt;
&lt;p&gt;从 2022 年 9 月 14 日的《研五下学期总结》，已经过去了两年半的时间。&lt;/p&gt;
&lt;p&gt;遗憾的是，并没有如《研五下学期总结》中所说，能够按时毕业。&lt;/p&gt;
&lt;p&gt;令人满意的是，找到了一个心仪的博后。&lt;/p&gt;
&lt;h2 id="研六上"&gt;研六上&lt;/h2&gt;
&lt;h3 id="学业上"&gt;学业上&lt;/h3&gt;
&lt;p&gt;2022年秋冬，研六上学期，主要在为毕业准备两个事情。&lt;/p&gt;
&lt;p&gt;一是准备同步阻塞的文章，准备用来毕业。但是，此时合作老师建议重新调整一下，投 PRL。&lt;br /&gt;
所以又重新画图。此时，这个工作能在 2023 年 3 月份前接收，这个念头从我脑中消失，不再抱有希望。&lt;br /&gt;
这个工作在研六上学期结束后的寒假，春节过后，才投出去。&lt;/p&gt;
&lt;p&gt;这个学期的另一个事情，是写 rf 谱的文章，这成了我可能按时毕业的一线希望。如果能够尽快写好，投 CTP，然后一个月被接收，就有按时毕业的希望。然而，几乎没有进展。&lt;/p&gt;
&lt;p&gt;同时，这个学期也联系了香港大学的一个老师，他也有空位，欢迎到时再联系。&lt;/p&gt;
&lt;h3 id="生活"&gt;生活&lt;/h3&gt;
&lt;p&gt;这是从深圳回来后的第一个学期，组里的人员发生了变化，舒哥和 cy 毕业了，xc 加入到了组里。组里也产生了新的大师姐，大师兄。人员变化，大家之间的关系也有变化。之前不怎么熟悉的成员变得更加熟悉。&lt;/p&gt;
&lt;h3 id="疫情"&gt;疫情&lt;/h3&gt;
&lt;p&gt;也是在这个学期，大家几乎都阳了，清零政策再也执行不下去。&lt;/p&gt;
&lt;p&gt;全面解封的前几天，学校里出现阳的，哪个宿舍楼里有阳的，就当天早上封楼。&lt;br /&gt;
我也总是想，早上早点出宿舍，就不至于在宿舍荒废一天。去不了北园，就在明德楼找教室上自习。&lt;/p&gt;
&lt;p&gt;清楚地记得，在巨大的毕业压力下，在兵荒马乱的疫情下，我竟然一大早起来，跑到明德楼的教室，就我一个人在教室里，看高等量子力学，理解之前疑惑和不清晰的地方，大概是含时微扰那一部分。一方面，是我菜，一方面，有点浪漫主义的感觉。&lt;/p&gt;
&lt;p&gt;终于，我也阳了，2022 年 12 月 13 日 21 点 56 分，就是在明德楼开心地看了一天高等量子力学，回到宿舍之后，体温烧起来了，37度7。发烧，浑身疼得整晚没睡着觉，还是头一回经历。&lt;/p&gt;
&lt;p&gt;14 日，白天吃了布洛芬胶囊退烧，晚上又烧起来，又吃了一颗。&lt;/p&gt;
&lt;p&gt;15 日，21 点，38度6。&lt;/p&gt;
&lt;p&gt;16 日，下午，终于不发烧了，但是嗓子疼。然后就窝在宿舍看《走向共和》，看了两天。&lt;/p&gt;
&lt;p&gt;18 日，去校医院领了一盒《菊蓝抗流感片》，一盒《止咳宝片》，学校还发了中药包。不过，最救命了还是那两粒布洛芬胶囊。&lt;/p&gt;
&lt;p&gt;19 日，转阴了。之后就是长达一个月的咳嗽。&lt;/p&gt;
&lt;p&gt;问了问家里的人也都阳了，回家过年了。疫情就这么过去了。&lt;/p&gt;
&lt;h2 id="研六下"&gt;研六下&lt;/h2&gt;
&lt;p&gt;2023年，春节过后，返校。疫情也结束了。也确定延期了。&lt;/p&gt;
&lt;p&gt;这三年对所有中国人来说，都是不同的。其中一大部分人，像是失去的三年。&lt;/p&gt;
&lt;p&gt;如果你这三年是高中生。&lt;/p&gt;
&lt;p&gt;如果你这三年恰好是大学生，那可真是。&lt;/p&gt;
&lt;p&gt;我这三年，刚好转成博士生，津贴变多了。但是，没怎么开会，也没怎么有什么新鲜的事情。真就人生刚刚经济独立，并且有些富余时，就是这三年。所以对我来说，像是失去的三年。&lt;/p&gt;
&lt;p&gt;确定延期后，有点放松了。像是紧张了好久，毕业压力，加上疫情。一旦真正确定要延期之后，甚至有点向往在校外的全新生活。因为计划在下个学期，搬到舒哥和小马哥那里。而且经济上，齐老师也给予了支持。我算是幸运，有导师的经济支持，有朋友的住所接济。&lt;/p&gt;
&lt;p&gt;还去上了张老师在研究生院开的《量子光学》课。&lt;/p&gt;
&lt;p&gt;在 6 月 3 号的时候，买了美芬超极眼镜蛇蓝，以及雅马哈 THR 音箱！&lt;/p&gt;
&lt;p&gt;这个学期，把同步阻塞，现在变成了 No-go theorem ，的文章投出去了，也很快就收到了审稿意见，但是就卡住了，拖住了。反而，是趋肤效应的工作，算完，丝滑地投出去，在暑假被接收。这样，终于有一篇文章用来毕业！&lt;/p&gt;
&lt;p&gt;学期末的时候，和舒哥小马哥去看房子，之后组里的大家，帮我搬到时茉莉园。然后过了几天，就到了百草园。接下来一年多，就住在了百草园。从品园，经过茉莉园，到百草园。&lt;/p&gt;
&lt;p&gt;舒哥住主卧，马哥住次卧，我住在客厅的“大炕”上。&lt;/p&gt;
&lt;p&gt;有个厨房，是全新的体验。我开始尝试做饭。不过也就煮个面条什么的。我觉得在做饭方面，我是天赋异禀的。&lt;/p&gt;
&lt;p&gt;在7月分左右的时候，也就是暑假的时候，玩《晶核》。有点好玩，PK让人上头，晚上一下打到一两点，不能打了。但是之后头脑兴奋，也不能立马睡着，就躺在“大炕”上，看着天一点一点亮了。由于是新游戏，我建了一个舰队，没想到没几天人数就爆满。没过多久，舒哥有了新宠，不玩《晶核》了，一个人玩也没什么意思，就弃坑了。意外的是，没想到这个舰队还卖了150。第一次玩游戏赚到钱，值了。&lt;/p&gt;
&lt;p&gt;七月底的时候，自己组了一个NAS，自己选各种配件。然后选系统。非常有意思。现在还在304放着，一直运行。&lt;/p&gt;
&lt;p&gt;2023年的夏天，暑假去郑州开了冷原子会。很意思，但是没有写一篇博客记录一下。唱ktv，吃生蚝自助，玩柏青哥，买盲盒。&lt;/p&gt;
&lt;p&gt;暑假的时候，也终于要着手写 rf 谱的文章了。&lt;/p&gt;
&lt;p&gt;仿佛，这个学期，才是2020年春天的，博一。&lt;/p&gt;
&lt;h2 id="研七上"&gt;研七上&lt;/h2&gt;
&lt;p&gt;研七上，延期上。2023年9月。开学没几天，就决定了再延期半年。&lt;/p&gt;
&lt;p&gt;这学期是在百草园度过的第一个学期。在百草园和学校之前通勤。坐二层公交。果真人对时间的感觉是对数的，现在的我，明明每一个小学同学的名字都记得很清楚，却不记得两年前坐了一年的公交是几路。如果记忆从5岁算起，小学的有效时候长度是 $\ln(13-5) \ln(7-5) \approx 1.386$ ，而百草园的通勤时光不过是 $\ln(29-5) \ln(28-5) \approx 0.043$ 。&lt;/p&gt;
&lt;p&gt;9月26，大家一起去了深圳，第一次去深技大。晚上一起去堕落街吃饭，去海滩玩滑沙，第一次出境，去香港玩到很晚才回，去澳门更是战到凌晨，在车上过夜。&lt;/p&gt;
&lt;p&gt;从深圳回到北京，分到了宿舍。本来想冬天的时候，如果懒了，可以住在学校。就买了所有的宿舍用品。结果却是一次没用过，来看夏天毕业的时候，又把全新的宿舍用品搬了出来。&lt;/p&gt;
&lt;p&gt;10月份的时候，还兴致勃勃的去北科参加了ASML的招聘，还参加了当场的笔试。然后之前再也没有收到他们的消息。这大概是目前为止我唯一一次参加某个企业的招聘了。&lt;/p&gt;
&lt;p&gt;延期还是有压力的，不过感谢我的导师，至少没有让我在经济方面有压力。在11月2号，大概是双11预热的时候，买了一把贝斯。&lt;/p&gt;
&lt;p&gt;记不清在百草园，有多少次，大家来百草草园一起玩。在去了龙光城后，就几乎再没有那样的体验，即使我买了新出的马里奥派队。&lt;/p&gt;
&lt;p&gt;11月20号，我收到了全球限量1份的延期帆布包。&lt;/p&gt;
&lt;p&gt;11月21号的时候，我又买了XBOX，也许是用购物发泄延期的压力，也许是单纯想玩。&lt;/p&gt;
&lt;p&gt;12月份的时候，终于把rf谱的文章投了出去。&lt;/p&gt;
&lt;h2 id="研七下"&gt;研七下&lt;/h2&gt;
&lt;p&gt;终于要在这个学期毕业了。在29岁生日这天，我的RF谱的被接收了！&lt;/p&gt;
&lt;p&gt;写毕业论文。送匿名评审。改毕业论文。答辩。&lt;/p&gt;
&lt;p&gt;学生生涯的最后一个学期。&lt;/p&gt;
&lt;p&gt;这学期自己做饭的次数少了，减肥事业也迎来了巅峰，66公斤左右。&lt;/p&gt;
&lt;p&gt;在准备答辩的同时，也在找博后的位置。发了好多邮件，期待回复。&lt;/p&gt;
&lt;p&gt;在找博后位置的同时，突然心血来潮，又是烫头，又是打羽毛球，认识了非常好的朋友。&lt;br /&gt;
虽然有一丝丝遗憾，但是我觉得我的学生生涯可以圆满结束了。&lt;/p&gt;
&lt;p&gt;在五一的时候，大奔和阿斯旺来找我玩了。七年没见了，大奔成为了战神，阿斯旺变得有沧桑。&lt;/p&gt;
&lt;p&gt;在毕业的事情基本完成之后，去杭州找了坤哥，去上海找了建国。算是毕业旅行。这是第一次以旅行为目的的独自远行。&lt;/p&gt;
&lt;p&gt;毕业之后暑假去了重庆冷原子。吃重庆火锅，去重庆的各个景点玩，在街头演出的地方点歌，这也算是毕业旅行吧。&lt;/p&gt;
&lt;p&gt;8月份的时候从北京回家，去济南找了老师口中的好学生刘老板。这也是毕业旅行的一部分的。&lt;/p&gt;
&lt;h2 id="南下之旅"&gt;南下之旅&lt;/h2&gt;
&lt;p&gt;8 月底回到百草园，在进行了一个月的告别之后，我和舒哥先行一步，在 9 月份准备南下。&lt;/p&gt;
&lt;p&gt;9 月 17 号的晚上，我们打包完所有的行李，一部分寄到鹅城，一部分寄回家。打扫完了百草园的房间。我们 18 号南下的车票，所以 17 号是在搓澡城过的夜。去搓澡城之前，我记得去了大师兄家里，还玩了会游戏。之后我们到搓澡城的时候已经很晚了。而且是骑的共享单车。&lt;/p&gt;
&lt;p&gt;现在回想起来就挺神奇的。俩人大半夜骑共享单车去搓澡城过夜。半路上饿了，还去 KFC 还是金拱门吃饭。还在里面碰到了在里面吵架。&lt;/p&gt;
&lt;p&gt;第二天醒来就已经中午了，下午和舒哥一个朋友去餐厅吃了饭。之后便在地铁站分别。&lt;/p&gt;
&lt;p&gt;我们买的车票是 18 号 17:36 出发，第二天早上 6:50 到时苏州的动卧。这还是我第一次坐卧铺。说实话体验很不好。空间小。可能我是上铺，还冷。没怎么睡好，只是一直昐天亮到站。&lt;/p&gt;
&lt;p&gt;19 号早上到了酒店。之后和舒哥同学在苏州逛了一天。&lt;/p&gt;
&lt;p&gt;20 号早上吃了生煎。好吃。我记得舒哥一咬，直接给喷到对面座位上了。有点搞。12 点 37 乘上去厦门的车，晚上 9 点 7 分到厦门北。打车去了厦大在荒山上的那个校区去找曹爷。曹爷的住处是极简风格，没啥娱乐的。我们去超市买了点吃的就睡了。也睡得不咋样。&lt;/p&gt;
&lt;p&gt;21 号一大早我就扫了个共享电动车在他们学校转了一大圈。之后我们在学校附近吃了午餐。下午打车进城。找了个海景房，看了个电影。下午在高级饭店吃了个饭。然后去抓娃娃抓了不少，还便宜。晚上在附近转了转。&lt;/p&gt;
&lt;p&gt;22 号早上（或者是中午）去了一家具有本地特色的饭店，还不错。之后便搭乘 13:19 出发去深圳北的车。16:09 到了深圳。&lt;/p&gt;
&lt;h2 id="鹅城-gap"&gt;鹅城 GAP&lt;/h2&gt;
&lt;p&gt;刚到深圳，晚上和小戴还有郭一起吃了晚饭。之后便搭车去坪山，入住 1034。之后便是好几天找房子，还体验了电竞房和一些民宿。&lt;/p&gt;
&lt;p&gt;最终找到了大叠墅。&lt;/p&gt;
&lt;p&gt;在大叠墅里的半年，也体验了不同的生活。天台烧烤用吹风机，尝试做饭，一直去吃潮汕牛肉自助。非常有趣的半年。&lt;/p&gt;
&lt;p&gt;期间也完成了博后的正式面试，申请签证。&lt;/p&gt;
&lt;p&gt;找博后的房子也是在这完成的。&lt;/p&gt;
&lt;p&gt;直到 2024年的 3 月底，在迎来而立之年不久，便离开鹅城，去往神户，开始新的旅程！&lt;/p&gt;
&lt;h2 id="读者评论"&gt;读者评论&lt;/h2&gt;
&lt;p&gt;舒哥评论于 2026 年 1 月 7 日（提到的&lt;a href="./2026-01-04-blog-2025_kobe.html"&gt;另一篇&lt;/a&gt;）：&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;做饭方面[旺柴]天赋异禀&lt;br /&gt;
两篇都看完了，忍不住吐槽，你这是小学生写作水平，就比记流水账好一些&lt;br /&gt;
王桑还是这么自信，我很放心，绝对不会内耗&lt;/p&gt;
&lt;/blockquote&gt;
</content><category term="blog"/><category term="总结"/><category term="深圳"/><category term="延期"/><category term="毕业"/><category term="鹅城"/><category term="惠州"/></entry><entry><title>NSR 计算 s-wave BEC-BCS crossover 的临界温度</title><link href="https://zqw.ink/2024-11-13-physics-nsr-tc-s-wave.html" rel="alternate"/><published>2024-11-13T00:00:00+08:00</published><updated>2024-11-13T00:00:00+08:00</updated><author><name>ZQW</name></author><id>tag:zqw.ink,2024-11-13:/2024-11-13-physics-nsr-tc-s-wave.html</id><summary type="html">&lt;h2&gt;Sokhotski-Plemelj 积分&lt;/h2&gt;
&lt;p&gt;根据 Sokhotski-Plemelj 定理有
\begin{align}
  \frac{1}{x + \mathrm{i}0^+}
  = \mathcal{P}\left(\frac{1}{x}\right) -\mathrm{i}\pi\delta(x)
\end{align}
因此有
\begin{align}
  \mathrm{Im} \int\mathrm{d}x\cdot \frac{f(x)}{a x^2 + bx …&lt;/p&gt;</summary><content type="html">&lt;h2&gt;Sokhotski-Plemelj 积分&lt;/h2&gt;
&lt;p&gt;根据 Sokhotski-Plemelj 定理有
\begin{align}
  \frac{1}{x + \mathrm{i}0^+}
  = \mathcal{P}\left(\frac{1}{x}\right) -\mathrm{i}\pi\delta(x)
\end{align}
因此有
\begin{align}
  \mathrm{Im} \int\mathrm{d}x\cdot \frac{f(x)}{a x^2 + bx + c + \mathrm{i}0^+}
   =  \frac{-\pi}{a|x_1-x_2|}\int \mathrm{d}x\cdot f(x)[\cdot \delta(x-x_1) + \delta(x - x_2)]
\end{align}
其中 $x_1, x_2$ 是 $a x^2 + bx + c$ 的两个根。在数值计算自能虚部时，对 $q$ 的积分是
形如  的积分。&lt;/p&gt;
&lt;h2&gt;计算积分 （&lt;a href="./2024-11-13-physics-NSR-Tc-s-wave/nsr.py"&gt;源文件：nsr.py&lt;/a&gt;）(大概运行了37分钟)&lt;/h2&gt;
&lt;p&gt;&lt;pre&gt;In [2]&lt;/pre&gt;&lt;/p&gt;&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="c1"&gt;# Reference:&lt;/span&gt;
&lt;span class="c1"&gt;# 博士学位论文： BEC-BCS 过渡体系的热力学性质与旋量 BEC 中的非阿贝尔约瑟夫森效应的研究 齐燃&lt;/span&gt;
&lt;span class="c1"&gt;# 计算过程，全部以温度 T 做单位，进行无量纲化处理&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;numpy&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="nn"&gt;np&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;scipy&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;integrate&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;scipy.special&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;zeta&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;scipy&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;optimize&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;scipy.misc&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;derivative&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;matplotlib.pyplot&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="nn"&gt;plt&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;mpmath&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;polylog&lt;/span&gt;


&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;bose&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;beta&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;energy&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="sd"&gt;&amp;quot;&amp;quot;&amp;quot; Bose 分布函数&lt;/span&gt;
&lt;span class="sd"&gt;    有些计算中, energy 也可能是负的.&lt;/span&gt;
&lt;span class="sd"&gt;    &amp;quot;&amp;quot;&amp;quot;&lt;/span&gt;
    &lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;beta&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="n"&gt;energy&lt;/span&gt;
    &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;energy&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
        &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;np&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;exp&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="n"&gt;np&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;exp&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
    &lt;span class="k"&gt;else&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
        &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;np&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;exp&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;


&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;fermi&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;beta&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;energy&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="sd"&gt;&amp;#39;&amp;#39;&amp;#39;&lt;/span&gt;
&lt;span class="sd"&gt;    Fermi distribution function&lt;/span&gt;
&lt;span class="sd"&gt;    &amp;#39;&amp;#39;&amp;#39;&lt;/span&gt;
    &lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;beta&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="n"&gt;energy&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;np&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;exp&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="n"&gt;np&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;exp&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;


&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;free_fermion_density&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;mu&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="sd"&gt;&amp;quot;&amp;quot;&amp;quot;&lt;/span&gt;
&lt;span class="sd"&gt;    Integrate[q^2/\[Pi]^2 1/(E^(q^2/2-\[Mu])+1),{q, 0, \[Infinity]}]&lt;/span&gt;
&lt;span class="sd"&gt;    &amp;gt;&amp;gt;  -(PolyLog[3/2,-E^\[Mu]]/(Sqrt[2] \[Pi]^(3/2)))&lt;/span&gt;
&lt;span class="sd"&gt;    &amp;quot;&amp;quot;&amp;quot;&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="n"&gt;polylog&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;s&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;z&lt;/span&gt;&lt;span class="o"&gt;=-&lt;/span&gt;&lt;span class="n"&gt;np&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;exp&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;mu&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;real&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;np&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;sqrt&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="n"&gt;np&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;pi&lt;/span&gt;&lt;span class="o"&gt;**&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;


&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;PrincipalValueInt&lt;/span&gt;&lt;span class="p"&gt;():&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="sd"&gt;&amp;quot;&amp;quot;&amp;quot;Calculate a 2nd order Cauchy integral:&lt;/span&gt;
&lt;span class="sd"&gt;    int  dx    f(x) / (a*x^2 + b^x + i0^+)&lt;/span&gt;
&lt;span class="sd"&gt;    latex:&lt;/span&gt;
&lt;span class="sd"&gt;    \int \mathrm{d}x \frac{f(x)}{a x^2 + b x + \mathrm{i}0^+}&lt;/span&gt;

&lt;span class="sd"&gt;    Attributes&lt;/span&gt;
&lt;span class="sd"&gt;    ----------&lt;/span&gt;
&lt;span class="sd"&gt;    get_image : float&lt;/span&gt;
&lt;span class="sd"&gt;                Calculate the imaginary part of the integral.&lt;/span&gt;
&lt;span class="sd"&gt;    get_real : float&lt;/span&gt;
&lt;span class="sd"&gt;        Calculate the real part of the integral.&lt;/span&gt;
&lt;span class="sd"&gt;    &amp;quot;&amp;quot;&amp;quot;&lt;/span&gt;

    &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="fm"&gt;__init__&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;numerator&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;coeff&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;list&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
                 &lt;span class="n"&gt;lower_lim&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;upper_lim&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;debug&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="kc"&gt;False&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="sd"&gt;&amp;quot;&amp;quot;&amp;quot;&lt;/span&gt;
&lt;span class="sd"&gt;        numerator: function f(x)&lt;/span&gt;
&lt;span class="sd"&gt;        coeff: [a, b, c] is the coefficients in the denominator.&lt;/span&gt;
&lt;span class="sd"&gt;        lower_lim: lower limit of the integral&lt;/span&gt;
&lt;span class="sd"&gt;        upper_lim: upper limit of the integral&lt;/span&gt;
&lt;span class="sd"&gt;        &amp;quot;&amp;quot;&amp;quot;&lt;/span&gt;
        &lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;debug&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;debug&lt;/span&gt;
        &lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;numerator&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;numerator&lt;/span&gt;
        &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="nb"&gt;isinstance&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;numerator&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;int&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nb"&gt;float&lt;/span&gt;&lt;span class="p"&gt;)):&lt;/span&gt;
            &lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;numerator&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;lambda&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;numerator&lt;/span&gt;
        &lt;span class="k"&gt;else&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
            &lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;numerator&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;numerator&lt;/span&gt;
        &lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;lower_lim&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;lower_lim&lt;/span&gt;
        &lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;upper_lim&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;upper_lim&lt;/span&gt;
        &lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;a&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;coeff&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
        &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;a&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
            &lt;span class="k"&gt;raise&lt;/span&gt; &lt;span class="ne"&gt;ValueError&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;a should not be 0!&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;  &lt;span class="c1"&gt;# TODO: deal the a=0 case.&lt;/span&gt;
        &lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;b&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;coeff&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
        &lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;c&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;coeff&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
        &lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;delta&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;b&lt;/span&gt;&lt;span class="o"&gt;**&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;c&lt;/span&gt;
        &lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;root_exist&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;delta&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="ow"&gt;and&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;a&lt;/span&gt; &lt;span class="o"&gt;!=&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

        &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;root_exist&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
            &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;a&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
                &lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;root1&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;b&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="n"&gt;np&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;sqrt&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;delta&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
                &lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;root2&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;b&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="n"&gt;np&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;sqrt&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;delta&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
            &lt;span class="k"&gt;else&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
                &lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;root1&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;b&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="n"&gt;np&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;sqrt&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;delta&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
                &lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;root2&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;b&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="n"&gt;np&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;sqrt&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;delta&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
            &lt;span class="c1"&gt;# cherck if the roots in the integral interval&lt;/span&gt;
            &lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;root1_in&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;lower_lim&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt; &lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;root1&lt;/span&gt; &lt;span class="ow"&gt;and&lt;/span&gt; &lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;root1&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt; &lt;span class="n"&gt;upper_lim&lt;/span&gt;
            &lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;root2_in&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;lower_lim&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt; &lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;root2&lt;/span&gt; &lt;span class="ow"&gt;and&lt;/span&gt; &lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;root2&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt; &lt;span class="n"&gt;upper_lim&lt;/span&gt;

    &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;get_imag&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="sd"&gt;&amp;quot;&amp;quot;&amp;quot;Imaginary part of the integral.&amp;quot;&amp;quot;&amp;quot;&lt;/span&gt;
        &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;root_exist&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
            &lt;span class="n"&gt;imag&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;root1_in&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;numerator&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;root1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
            &lt;span class="n"&gt;imag&lt;/span&gt; &lt;span class="o"&gt;+=&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;root2_in&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;numerator&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;root2&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
            &lt;span class="n"&gt;imag&lt;/span&gt; &lt;span class="o"&gt;*=&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;np&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;pi&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="n"&gt;np&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;abs&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;root2&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;root1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="k"&gt;else&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
            &lt;span class="n"&gt;imag&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;
        &lt;span class="n"&gt;imag&lt;/span&gt; &lt;span class="o"&gt;*=&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;a&lt;/span&gt;
        &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;imag&lt;/span&gt;

    &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;get_real&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="sd"&gt;&amp;quot;&amp;quot;&amp;quot;&lt;/span&gt;
&lt;span class="sd"&gt;        Real part of the integral.&lt;/span&gt;

&lt;span class="sd"&gt;        Note(TODO):&lt;/span&gt;
&lt;span class="sd"&gt;        When upper_lim is very larg, e.g. self.upper_lim &amp;gt; 1e4,&lt;/span&gt;
&lt;span class="sd"&gt;        if the function do not decay to 0, the result is wrong.&lt;/span&gt;
&lt;span class="sd"&gt;        The same warning in Mathematica:&lt;/span&gt;
&lt;span class="sd"&gt;        NIntegrate[1/(x-10^8)^2, {x, 1, 10^8+1}]&lt;/span&gt;
&lt;span class="sd"&gt;        &amp;quot;&amp;quot;&amp;quot;&lt;/span&gt;
        &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;root_exist&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
            &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="ow"&gt;not&lt;/span&gt; &lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;root1_in&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="ow"&gt;and&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="ow"&gt;not&lt;/span&gt; &lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;root2_in&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
                &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;debug&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
                    &lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;No root in!!!!!!!!!&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
                &lt;span class="n"&gt;res&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;integrate&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;quad&lt;/span&gt;&lt;span class="p"&gt;((&lt;/span&gt;&lt;span class="k"&gt;lambda&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;numerator&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
                                      &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="o"&gt;**&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;b&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;c&lt;/span&gt;&lt;span class="p"&gt;)),&lt;/span&gt;
                                     &lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;lower_lim&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;upper_lim&lt;/span&gt;&lt;span class="p"&gt;)[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
                &lt;span class="n"&gt;inte_metheod&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;no_root_in&amp;#39;&lt;/span&gt;
            &lt;span class="k"&gt;elif&lt;/span&gt; &lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;root1_in&lt;/span&gt; &lt;span class="ow"&gt;and&lt;/span&gt; &lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;root2_in&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
                &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;debug&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
                    &lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;All root in~~~~~~~~~&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
                &lt;span class="n"&gt;mid&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;root2&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;root1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;

                &lt;span class="n"&gt;real1&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;integrate&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;quad&lt;/span&gt;&lt;span class="p"&gt;((&lt;/span&gt;&lt;span class="k"&gt;lambda&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;numerator&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
                                        &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;a&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;root2&lt;/span&gt;&lt;span class="p"&gt;))),&lt;/span&gt;
                                       &lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;lower_lim&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;mid&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
                                       &lt;span class="n"&gt;weight&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;cauchy&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;wvar&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;root1&lt;/span&gt;&lt;span class="p"&gt;)[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;

                &lt;span class="n"&gt;right_range&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;root2&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;root1&lt;/span&gt;
                &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;upper_lim&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;right_range&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
                    &lt;span class="c1"&gt;# 如果积分上限特别大, 就分段积, 要不然算法找不到 pole 的贡献.&lt;/span&gt;
                    &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;debug&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
                        &lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;Big upbound, range has been split!&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
                    &lt;span class="n"&gt;real2&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;integrate&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;quad&lt;/span&gt;&lt;span class="p"&gt;((&lt;/span&gt;&lt;span class="k"&gt;lambda&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;numerator&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
                                            &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;a&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;root1&lt;/span&gt;&lt;span class="p"&gt;))),&lt;/span&gt;
                                           &lt;span class="n"&gt;mid&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;right_range&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
                                           &lt;span class="n"&gt;weight&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;cauchy&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;wvar&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;root2&lt;/span&gt;&lt;span class="p"&gt;)[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
                    &lt;span class="n"&gt;real2&lt;/span&gt; &lt;span class="o"&gt;+=&lt;/span&gt; &lt;span class="n"&gt;integrate&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;quad&lt;/span&gt;&lt;span class="p"&gt;((&lt;/span&gt;&lt;span class="k"&gt;lambda&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;numerator&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
                                             &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="o"&gt;**&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;b&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt;
                                                &lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;c&lt;/span&gt;&lt;span class="p"&gt;)),&lt;/span&gt;
                                            &lt;span class="n"&gt;right_range&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;upper_lim&lt;/span&gt;&lt;span class="p"&gt;)[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;

                &lt;span class="k"&gt;else&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
                    &lt;span class="n"&gt;real2&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;integrate&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;quad&lt;/span&gt;&lt;span class="p"&gt;((&lt;/span&gt;&lt;span class="k"&gt;lambda&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;numerator&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
                                            &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;a&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;root1&lt;/span&gt;&lt;span class="p"&gt;))),&lt;/span&gt;
                                           &lt;span class="n"&gt;mid&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;upper_lim&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
                                           &lt;span class="n"&gt;weight&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;cauchy&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;wvar&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;root2&lt;/span&gt;&lt;span class="p"&gt;)[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
                &lt;span class="n"&gt;res&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;real1&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="n"&gt;real2&lt;/span&gt;
                &lt;span class="n"&gt;inte_metheod&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;all_root_in&amp;#39;&lt;/span&gt;
            &lt;span class="k"&gt;elif&lt;/span&gt; &lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;root1_in&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
                &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;debug&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
                    &lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;root1 in 111111111111111111111&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
                &lt;span class="n"&gt;res&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;integrate&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;quad&lt;/span&gt;&lt;span class="p"&gt;((&lt;/span&gt;&lt;span class="k"&gt;lambda&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;numerator&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
                                      &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;a&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;root2&lt;/span&gt;&lt;span class="p"&gt;))),&lt;/span&gt;
                                     &lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;lower_lim&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;upper_lim&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
                                     &lt;span class="n"&gt;weight&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;cauchy&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;wvar&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;root1&lt;/span&gt;&lt;span class="p"&gt;)[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
                &lt;span class="n"&gt;inte_metheod&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;root1_in&amp;#39;&lt;/span&gt;
            &lt;span class="k"&gt;else&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
                &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;debug&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
                    &lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;root2 in 2222222222222222&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

                &lt;span class="n"&gt;right_range&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;root2&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;root1&lt;/span&gt;
                &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;upper_lim&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;right_range&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
                    &lt;span class="c1"&gt;# 如果积分上限特别大, 就分段积, 要不然算法找不到 pole 的贡献.&lt;/span&gt;
                    &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;debug&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
                        &lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;Big upbound, range has been split!&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
                    &lt;span class="n"&gt;res&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;integrate&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;quad&lt;/span&gt;&lt;span class="p"&gt;((&lt;/span&gt;&lt;span class="k"&gt;lambda&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;numerator&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
                                          &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;a&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;root1&lt;/span&gt;&lt;span class="p"&gt;))),&lt;/span&gt;
                                         &lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;lower_lim&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;right_range&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
                                         &lt;span class="n"&gt;weight&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;cauchy&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;wvar&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;root2&lt;/span&gt;&lt;span class="p"&gt;)[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
                    &lt;span class="n"&gt;res&lt;/span&gt; &lt;span class="o"&gt;+=&lt;/span&gt; &lt;span class="n"&gt;integrate&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;quad&lt;/span&gt;&lt;span class="p"&gt;((&lt;/span&gt;&lt;span class="k"&gt;lambda&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;numerator&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
                                           &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="o"&gt;**&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;b&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt;
                                              &lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;c&lt;/span&gt;&lt;span class="p"&gt;)),&lt;/span&gt;
                                          &lt;span class="n"&gt;right_range&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;upper_lim&lt;/span&gt;&lt;span class="p"&gt;)[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
                &lt;span class="k"&gt;else&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
                    &lt;span class="n"&gt;res&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;integrate&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;quad&lt;/span&gt;&lt;span class="p"&gt;((&lt;/span&gt;&lt;span class="k"&gt;lambda&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;numerator&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
                                          &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;a&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;root1&lt;/span&gt;&lt;span class="p"&gt;))),&lt;/span&gt;
                                         &lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;lower_lim&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;upper_lim&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
                                         &lt;span class="n"&gt;weight&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;cauchy&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;wvar&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;root2&lt;/span&gt;&lt;span class="p"&gt;)[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
                &lt;span class="n"&gt;inte_metheod&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;root2_in&amp;#39;&lt;/span&gt;
        &lt;span class="k"&gt;else&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
            &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;a&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
                &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;debug&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
                    &lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;a = 0 ! 000000000000&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
                &lt;span class="n"&gt;res&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;integrate&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;quad&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;lambda&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;numerator&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;b&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
                                     &lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;lower_lim&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;upper_lim&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
                                     &lt;span class="n"&gt;weight&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;cauchy&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;wvar&lt;/span&gt;&lt;span class="o"&gt;=-&lt;/span&gt;&lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;c&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;b&lt;/span&gt;&lt;span class="p"&gt;)[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
                &lt;span class="n"&gt;inte_metheod&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;trivial&amp;#39;&lt;/span&gt;
            &lt;span class="k"&gt;else&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
                &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;debug&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
                    &lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;Root Not Exist!...................&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
                &lt;span class="n"&gt;res&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;integrate&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;quad&lt;/span&gt;&lt;span class="p"&gt;((&lt;/span&gt;&lt;span class="k"&gt;lambda&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;numerator&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
                                      &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="o"&gt;**&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;b&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;c&lt;/span&gt;&lt;span class="p"&gt;)),&lt;/span&gt;
                                     &lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;lower_lim&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;upper_lim&lt;/span&gt;&lt;span class="p"&gt;)[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
                &lt;span class="n"&gt;inte_metheod&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;root_not_exist&amp;#39;&lt;/span&gt;
        &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;res&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;inte_metheod&lt;/span&gt;


&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;_g&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;y&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;muT&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;debug&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="kc"&gt;False&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="sd"&gt;&amp;quot;&amp;quot;&amp;quot;Qi PhD Eq.(3.48)&lt;/span&gt;

&lt;span class="sd"&gt;    Parameters&lt;/span&gt;
&lt;span class="sd"&gt;    ----------&lt;/span&gt;
&lt;span class="sd"&gt;    x : float&lt;/span&gt;
&lt;span class="sd"&gt;        x&lt;/span&gt;
&lt;span class="sd"&gt;    y : float&lt;/span&gt;
&lt;span class="sd"&gt;        y&lt;/span&gt;
&lt;span class="sd"&gt;    muT : float&lt;/span&gt;
&lt;span class="sd"&gt;          μ / T&lt;/span&gt;
&lt;span class="sd"&gt;    debug : bool&lt;/span&gt;
&lt;span class="sd"&gt;            debug&lt;/span&gt;
&lt;span class="sd"&gt;    Returns&lt;/span&gt;
&lt;span class="sd"&gt;    -------&lt;/span&gt;
&lt;span class="sd"&gt;    res : float&lt;/span&gt;
&lt;span class="sd"&gt;          g&lt;/span&gt;
&lt;span class="sd"&gt;    &amp;quot;&amp;quot;&amp;quot;&lt;/span&gt;
    &lt;span class="n"&gt;a&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="o"&gt;**&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="n"&gt;y&lt;/span&gt;&lt;span class="o"&gt;**&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="mi"&gt;8&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="n"&gt;muT&lt;/span&gt;
    &lt;span class="n"&gt;b&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;y&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;
    &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;debug&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
        &lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;a = &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="si"&gt;:&lt;/span&gt;&lt;span class="s1"&gt;.2f&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s1"&gt;, b = &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;b&lt;/span&gt;&lt;span class="si"&gt;:&lt;/span&gt;&lt;span class="s1"&gt;.2f&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;b&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
        &lt;span class="c1"&gt;# g = 4/(1 + np.exp(a))&lt;/span&gt;
        &lt;span class="n"&gt;g&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;np&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;exp&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;np&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;exp&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="k"&gt;else&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
        &lt;span class="n"&gt;g&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;np&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;exp&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;b&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="n"&gt;np&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;exp&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="n"&gt;denominator&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;np&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;exp&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;b&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="n"&gt;np&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;exp&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;a&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;b&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;denominator&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
            &lt;span class="n"&gt;g&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;np&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;inf&lt;/span&gt;
        &lt;span class="k"&gt;else&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
            &lt;span class="n"&gt;g&lt;/span&gt; &lt;span class="o"&gt;/=&lt;/span&gt; &lt;span class="n"&gt;denominator&lt;/span&gt;
        &lt;span class="n"&gt;g&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;np&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;g&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="n"&gt;g&lt;/span&gt; &lt;span class="o"&gt;*=&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;b&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;g&lt;/span&gt;


&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;_g_diff_a&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;y&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;muT&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="sd"&gt;&amp;quot;&amp;quot;&amp;quot;d g / d a&amp;quot;&amp;quot;&amp;quot;&lt;/span&gt;
    &lt;span class="n"&gt;a&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="o"&gt;**&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="n"&gt;y&lt;/span&gt;&lt;span class="o"&gt;**&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="mi"&gt;8&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="n"&gt;muT&lt;/span&gt;
    &lt;span class="n"&gt;b&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;y&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;
    &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;b&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
        &lt;span class="n"&gt;dg&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;np&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;exp&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="n"&gt;dg&lt;/span&gt; &lt;span class="o"&gt;/=&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;np&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;exp&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;**&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;
    &lt;span class="k"&gt;else&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
        &lt;span class="n"&gt;dg&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="n"&gt;np&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;exp&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;b&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="n"&gt;dg&lt;/span&gt; &lt;span class="o"&gt;/=&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="n"&gt;np&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;exp&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;b&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="n"&gt;np&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;exp&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;b&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="n"&gt;np&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;exp&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;b&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="n"&gt;dg&lt;/span&gt; &lt;span class="o"&gt;*=&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="n"&gt;b&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;dg&lt;/span&gt;


&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;Gamma_0_re&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;q&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;omega&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;mu&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="sd"&gt;&amp;quot;&amp;quot;&amp;quot; 以 T 作单位制下的 particle-partilce propagator&lt;/span&gt;
&lt;span class="sd"&gt;    Eq.(3.47)&lt;/span&gt;
&lt;span class="sd"&gt;    Real part of inverse BCS pair propagator.&lt;/span&gt;

&lt;span class="sd"&gt;    a: a_s, s-wave scattering length, in unit of temperature&lt;/span&gt;
&lt;span class="sd"&gt;    q: q / sqrt(T)&lt;/span&gt;
&lt;span class="sd"&gt;    omega: omega / T&lt;/span&gt;
&lt;span class="sd"&gt;    mu : mu / T&lt;/span&gt;
&lt;span class="sd"&gt;    &amp;quot;&amp;quot;&amp;quot;&lt;/span&gt;

    &lt;span class="n"&gt;Omega&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;omega&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;mu&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="n"&gt;q&lt;/span&gt;&lt;span class="o"&gt;**&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="mi"&gt;4&lt;/span&gt;

    &lt;span class="n"&gt;re&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;np&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;pi&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="n"&gt;pv&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;PrincipalValueInt&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;numerator&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="k"&gt;lambda&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="o"&gt;**&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="n"&gt;_g&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;q&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;muT&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;mu&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
                           &lt;span class="n"&gt;coeff&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;Omega&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
                           &lt;span class="n"&gt;lower_lim&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;upper_lim&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;get_real&lt;/span&gt;&lt;span class="p"&gt;()[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
    &lt;span class="n"&gt;re&lt;/span&gt; &lt;span class="o"&gt;+=&lt;/span&gt; &lt;span class="n"&gt;pv&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;np&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;pi&lt;/span&gt;&lt;span class="o"&gt;**&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;Omega&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
        &lt;span class="n"&gt;re&lt;/span&gt; &lt;span class="o"&gt;+=&lt;/span&gt; &lt;span class="n"&gt;np&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;sqrt&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;Omega&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;np&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;pi&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;re&lt;/span&gt;


&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;Gamma_0_im&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;q&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;omega&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;mu&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="sd"&gt;&amp;quot;&amp;quot;&amp;quot; 以 T 作单位制下的 particle-partilce propagator&lt;/span&gt;
&lt;span class="sd"&gt;    (3.47)&lt;/span&gt;
&lt;span class="sd"&gt;    Imaginary part of inverse BCS pair propagator.&lt;/span&gt;
&lt;span class="sd"&gt;    虚部与散射长度无关!!!!!&lt;/span&gt;

&lt;span class="sd"&gt;    a: a_s, s-wave scattering length, in unit of temperature&lt;/span&gt;
&lt;span class="sd"&gt;    q: q / sqrt(T)&lt;/span&gt;
&lt;span class="sd"&gt;    omega: omega / T&lt;/span&gt;
&lt;span class="sd"&gt;    mu : mu / T&lt;/span&gt;
&lt;span class="sd"&gt;    &amp;quot;&amp;quot;&amp;quot;&lt;/span&gt;

    &lt;span class="n"&gt;Omega&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;omega&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;mu&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="n"&gt;q&lt;/span&gt;&lt;span class="o"&gt;**&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="mi"&gt;4&lt;/span&gt;

    &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;Omega&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
        &lt;span class="n"&gt;im&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;np&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;sqrt&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;Omega&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;8&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;np&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;pi&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="n"&gt;im&lt;/span&gt; &lt;span class="o"&gt;*=&lt;/span&gt; &lt;span class="n"&gt;_g&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;np&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;sqrt&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;Omega&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="n"&gt;q&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;muT&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;mu&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;
    &lt;span class="k"&gt;else&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
        &lt;span class="n"&gt;im&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;im&lt;/span&gt;


&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;find_muT_at_Tc&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="sd"&gt;&amp;quot;&amp;quot;&amp;quot;Find Tc&lt;/span&gt;

&lt;span class="sd"&gt;    use Re(0, 0, muT, aT) = 0, given a aT, return muT&lt;/span&gt;

&lt;span class="sd"&gt;    Parameters&lt;/span&gt;
&lt;span class="sd"&gt;    ----------&lt;/span&gt;
&lt;span class="sd"&gt;    a : scattering length (a_s * sqrt(T))&lt;/span&gt;
&lt;span class="sd"&gt;    Returns&lt;/span&gt;
&lt;span class="sd"&gt;    -------&lt;/span&gt;
&lt;span class="sd"&gt;    muT : float&lt;/span&gt;
&lt;span class="sd"&gt;          μ / T&lt;/span&gt;
&lt;span class="sd"&gt;    &amp;quot;&amp;quot;&amp;quot;&lt;/span&gt;
    &lt;span class="n"&gt;res&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;optimize&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;root&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;lambda&lt;/span&gt; &lt;span class="n"&gt;muT&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;Gamma_0_re&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;q&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;omega&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;mu&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;muT&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="ow"&gt;not&lt;/span&gt; &lt;span class="n"&gt;res&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;success&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
        &lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;IMPORTANT ERROR !!!!!!!!!! ROOT NOT FIND!!!!!!find muT!&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="n"&gt;muT&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;res&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;muT&lt;/span&gt;


&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;find_omegaT&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;qT&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;muT&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;debug&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="kc"&gt;False&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="sd"&gt;&amp;quot;&amp;quot;&amp;quot;Given aT, aT, find the dispersion curve ω_q&lt;/span&gt;
&lt;span class="sd"&gt;    a: s-wave scattering length in unit of temperature&lt;/span&gt;
&lt;span class="sd"&gt;    &amp;quot;&amp;quot;&amp;quot;&lt;/span&gt;
    &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;re_qT_omegaT&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;omegaT&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;qT&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;qT&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
        &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;Gamma_0_re&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;q&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;qT&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;omega&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;omegaT&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;mu&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;muT&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

    &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;qT&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="mf"&gt;1e-4&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
        &lt;span class="n"&gt;res&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;optimize&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;root&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;re_qT_omegaT&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;options&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;xtol&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mf"&gt;1e-9&lt;/span&gt;&lt;span class="p"&gt;})&lt;/span&gt;
        &lt;span class="c1"&gt;# 如果比较低的精度就能满足要求, 可以用比较低的精度, 来避免返回 res.success=False.&lt;/span&gt;
        &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;debug&lt;/span&gt; &lt;span class="ow"&gt;and&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="ow"&gt;not&lt;/span&gt; &lt;span class="n"&gt;res&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;success&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
            &lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;Error infind omegaT, error message is:&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
            &lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;res&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;message&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
            &lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;error parameters is&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
            &lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;qT=&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;qT&lt;/span&gt;&lt;span class="si"&gt;:&lt;/span&gt;&lt;span class="s1"&gt;.15f&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s1"&gt;, muT=&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;muT&lt;/span&gt;&lt;span class="si"&gt;:&lt;/span&gt;&lt;span class="s1"&gt;.15f&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
            &lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;res para=&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="si"&gt;:&lt;/span&gt;&lt;span class="s1"&gt;.15f&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s1"&gt;, root=&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;res&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="n"&gt;omegaT&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;res&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
    &lt;span class="k"&gt;else&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;                       &lt;span class="c1"&gt;# 线性近似&lt;/span&gt;
        &lt;span class="c1"&gt;# TODO: 为了避免在 qT 很小时会剧烈抖动而找不到根, 采用了线性近似. 这个还是要改&lt;/span&gt;
        &lt;span class="c1"&gt;# 的. 现在去除了乘了两次 fluc 的 bug 后应该就没有这个问题了.&lt;/span&gt;
        &lt;span class="n"&gt;omegaT&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;qT&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mf"&gt;1e-4&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="n"&gt;optimize&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;root&lt;/span&gt;&lt;span class="p"&gt;((&lt;/span&gt;&lt;span class="k"&gt;lambda&lt;/span&gt; &lt;span class="n"&gt;omegaT&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
                                                &lt;span class="n"&gt;re_qT_omegaT&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;omegaT&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
                                                            &lt;span class="n"&gt;qT&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mf"&gt;1e-4&lt;/span&gt;&lt;span class="p"&gt;)),&lt;/span&gt;
                                                &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;options&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;xtol&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
                                                            &lt;span class="mf"&gt;1e-13&lt;/span&gt;&lt;span class="p"&gt;})&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;omegaT&lt;/span&gt;


&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;Density&lt;/span&gt;&lt;span class="p"&gt;():&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="sd"&gt;&amp;quot;&amp;quot;&amp;quot;Density, in unit of Temperature&lt;/span&gt;
&lt;span class="sd"&gt;    &amp;quot;&amp;quot;&amp;quot;&lt;/span&gt;
    &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="fm"&gt;__init__&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;mu&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;debug&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="kc"&gt;True&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="sd"&gt;&amp;quot;&amp;quot;&amp;quot;&lt;/span&gt;
&lt;span class="sd"&gt;        mu : chemical potential in unit of temperature, μ / T&lt;/span&gt;
&lt;span class="sd"&gt;        a: s-wave scattering length in unit of temperature,&lt;/span&gt;
&lt;span class="sd"&gt;        &amp;quot;&amp;quot;&amp;quot;&lt;/span&gt;
        &lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;mu&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;mu&lt;/span&gt;
        &lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;a&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;a&lt;/span&gt;
        &lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;debug&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;debug&lt;/span&gt;

    &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;_im_diff_mu_s&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;qT&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;float&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;omegaT&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;float&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="sd"&gt;&amp;quot;&amp;quot;&amp;quot;d im / d μ, (delta part has no contribution)&lt;/span&gt;
&lt;span class="sd"&gt;           验证过, 没有问题! s-wave&lt;/span&gt;
&lt;span class="sd"&gt;        &amp;quot;&amp;quot;&amp;quot;&lt;/span&gt;
        &lt;span class="n"&gt;OT&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;omegaT&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;mu&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="n"&gt;qT&lt;/span&gt;&lt;span class="o"&gt;**&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="mi"&gt;4&lt;/span&gt;
        &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;OT&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
            &lt;span class="n"&gt;dim&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;_g&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;np&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;sqrt&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;OT&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="n"&gt;qT&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;muT&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;mu&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="n"&gt;np&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;sqrt&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;OT&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
            &lt;span class="n"&gt;dim&lt;/span&gt; &lt;span class="o"&gt;+=&lt;/span&gt; &lt;span class="n"&gt;np&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;sqrt&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;OT&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="n"&gt;_g_diff_a&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;np&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;sqrt&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;OT&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="n"&gt;qT&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;muT&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;mu&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
            &lt;span class="n"&gt;dim&lt;/span&gt; &lt;span class="o"&gt;/=&lt;/span&gt; &lt;span class="mi"&gt;8&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;np&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;pi&lt;/span&gt;
            &lt;span class="n"&gt;dim&lt;/span&gt; &lt;span class="o"&gt;+=&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="n"&gt;np&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;sqrt&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;OT&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;8&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;np&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;pi&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="n"&gt;_g_diff_a&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;np&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;sqrt&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;OT&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="n"&gt;qT&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
                                                         &lt;span class="n"&gt;muT&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;mu&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="k"&gt;else&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
            &lt;span class="n"&gt;dim&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;
        &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;dim&lt;/span&gt;

    &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;_fluc1_dense&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;qT&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;omegaT&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="sd"&gt;&amp;quot;&amp;quot;&amp;quot;Eq. (3.49) and Eq. (3.49)&amp;quot;&amp;quot;&amp;quot;&lt;/span&gt;
        &lt;span class="n"&gt;real&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;Gamma_0_re&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;q&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;qT&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;omega&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;omegaT&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;mu&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;mu&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
                          &lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="n"&gt;imag&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;Gamma_0_im&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;q&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;qT&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;omega&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;omegaT&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;mu&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;mu&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

        &lt;span class="n"&gt;volume_elem&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="n"&gt;np&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;pi&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;np&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;pi&lt;/span&gt;&lt;span class="o"&gt;**&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;

        &lt;span class="n"&gt;diff_re&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;derivative&lt;/span&gt;&lt;span class="p"&gt;((&lt;/span&gt;&lt;span class="k"&gt;lambda&lt;/span&gt; &lt;span class="n"&gt;mu&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;Gamma_0_re&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;q&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;qT&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;omega&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;omegaT&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;mu&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;mu&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
                                                    &lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="p"&gt;)),&lt;/span&gt;
                             &lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;mu&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;dx&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mf"&gt;.1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="n"&gt;diff_im&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;_im_diff_mu_s&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;qT&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;omegaT&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="n"&gt;fluctdens&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;qT&lt;/span&gt;&lt;span class="o"&gt;**&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="n"&gt;bose&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;omegaT&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="n"&gt;fluctdens&lt;/span&gt; &lt;span class="o"&gt;*=&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;imag&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;diff_re&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="n"&gt;real&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;diff_im&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;imag&lt;/span&gt;&lt;span class="o"&gt;**&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="n"&gt;real&lt;/span&gt;&lt;span class="o"&gt;**&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="n"&gt;res&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;fluctdens&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="n"&gt;volume_elem&lt;/span&gt;
        &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;res&lt;/span&gt;

    &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;_fluc1_s&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;qT&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;BCS&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="sd"&gt;&amp;quot;&amp;quot;&amp;quot; 计算 pair 涨落在连续激发区的贡献 &amp;quot;&amp;quot;&amp;quot;&lt;/span&gt;
        &lt;span class="c1"&gt;# 实部为 0 时对应的准粒子激发&lt;/span&gt;
        &lt;span class="n"&gt;omega_p&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;find_omegaT&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;qT&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;qT&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;muT&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;mu&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
                              &lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="c1"&gt;# print(&amp;#39;omega p is&amp;#39;, omega_p)&lt;/span&gt;

        &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;BCS&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
            &lt;span class="s2"&gt;&amp;quot;如果在 BCS 极限下的的话, 连续激发边界的边界有比较重要的贡献&amp;quot;&lt;/span&gt;
            &lt;span class="n"&gt;boundary&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;qT&lt;/span&gt;&lt;span class="o"&gt;**&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="mi"&gt;4&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;mu&lt;/span&gt;  &lt;span class="c1"&gt;# 连续激发的边界&lt;/span&gt;
            &lt;span class="c1"&gt;# 从连续激发边界, 到准粒子激发处的贡献&lt;/span&gt;
            &lt;span class="n"&gt;int1&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;integrate&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;quad&lt;/span&gt;&lt;span class="p"&gt;((&lt;/span&gt;&lt;span class="k"&gt;lambda&lt;/span&gt; &lt;span class="n"&gt;omega&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
                                   &lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;_fluc1_dense&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;qT&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;qT&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;omegaT&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;omega&lt;/span&gt;&lt;span class="p"&gt;)),&lt;/span&gt;
                                  &lt;span class="n"&gt;boundary&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;omega_p&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;epsrel&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mf"&gt;1e-3&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;limit&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;40&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="k"&gt;else&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
            &lt;span class="n"&gt;int1&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;

        &lt;span class="c1"&gt;# 准粒子激发的贡献&lt;/span&gt;
        &lt;span class="n"&gt;int3&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;integrate&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;quad&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;lambda&lt;/span&gt; &lt;span class="n"&gt;omega&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;_fluc1_dense&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;qT&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;qT&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
                                                              &lt;span class="n"&gt;omegaT&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;omega&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
                              &lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;omega_p&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;11&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;omega_p&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;epsrel&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mf"&gt;1e-3&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;limit&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;40&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="n"&gt;res&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;int1&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="n"&gt;int3&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
        &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;res&lt;/span&gt;

    &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;_fluc2_s&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;qT&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="sd"&gt;&amp;quot;&amp;quot;&amp;quot; use Qi PhD Eq.(3.52) at Tc&lt;/span&gt;
&lt;span class="sd"&gt;            pair 涨落的 single pole 部分.&lt;/span&gt;
&lt;span class="sd"&gt;        &amp;quot;&amp;quot;&amp;quot;&lt;/span&gt;
        &lt;span class="n"&gt;volume_elem&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;qT&lt;/span&gt;&lt;span class="o"&gt;**&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;np&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;pi&lt;/span&gt;&lt;span class="o"&gt;**&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

        &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;omega_q&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;muT&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
            &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;find_omegaT&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;qT&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;qT&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;muT&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;muT&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

        &lt;span class="n"&gt;diff&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;derivative&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;omega_q&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;mu&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;dx&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mf"&gt;.1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="n"&gt;energy&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;omega_q&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;mu&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;  &lt;span class="c1"&gt;# qT**2/4  # - 2*muT - aT**2&lt;/span&gt;
        &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;energy&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt; &lt;span class="n"&gt;qT&lt;/span&gt;&lt;span class="o"&gt;**&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="mi"&gt;4&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;mu&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
            &lt;span class="n"&gt;fluc&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;bose&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;energy&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
            &lt;span class="n"&gt;fluc&lt;/span&gt; &lt;span class="o"&gt;*=&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="n"&gt;diff&lt;/span&gt;
            &lt;span class="n"&gt;fluc&lt;/span&gt; &lt;span class="o"&gt;*=&lt;/span&gt; &lt;span class="n"&gt;volume_elem&lt;/span&gt;
        &lt;span class="k"&gt;else&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
            &lt;span class="n"&gt;fluc&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;
        &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;fluc&lt;/span&gt;

    &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;s_wave_density&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;para&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;debug&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="kc"&gt;True&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="sd"&gt;&amp;quot;&amp;quot;&amp;quot; n / (T)^(3/2)&lt;/span&gt;
&lt;span class="sd"&gt;        Calculate the density.&lt;/span&gt;

&lt;span class="sd"&gt;        According the interaction strength, we use three different method to&lt;/span&gt;
&lt;span class="sd"&gt;        calculate the density.&lt;/span&gt;

&lt;span class="sd"&gt;        Parameters&lt;/span&gt;
&lt;span class="sd"&gt;        ----------&lt;/span&gt;
&lt;span class="sd"&gt;        muT : float&lt;/span&gt;
&lt;span class="sd"&gt;              μ / T&lt;/span&gt;
&lt;span class="sd"&gt;        aT : folat&lt;/span&gt;
&lt;span class="sd"&gt;             1 / (as * sqrt(T))&lt;/span&gt;
&lt;span class="sd"&gt;        Returns&lt;/span&gt;
&lt;span class="sd"&gt;        -------&lt;/span&gt;
&lt;span class="sd"&gt;        n : float&lt;/span&gt;
&lt;span class="sd"&gt;            density&lt;/span&gt;
&lt;span class="sd"&gt;        &amp;quot;&amp;quot;&amp;quot;&lt;/span&gt;
        &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;para&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;method&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;SinglePole_StrongBEC&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;span class="w"&gt;            &lt;/span&gt;&lt;span class="sd"&gt;&amp;quot;&amp;quot;&amp;quot;&lt;/span&gt;
&lt;span class="sd"&gt;            method [1]: SinglePole_StrongBEC.&lt;/span&gt;
&lt;span class="sd"&gt;            In Strong BEC limit, the density are mainly contributed by the&lt;/span&gt;
&lt;span class="sd"&gt;            dimers formed by two Fermion.&lt;/span&gt;

&lt;span class="sd"&gt;            Mathematica code:&lt;/span&gt;
&lt;span class="sd"&gt;            Integrate[q^2/(Exp[q^2/4]-1),{q,0,Infinity}]&lt;/span&gt;
&lt;span class="sd"&gt;            &amp;gt;&amp;gt; 2 Sqrt[\[Pi]] Zeta[3/2]&lt;/span&gt;
&lt;span class="sd"&gt;            &amp;quot;&amp;quot;&amp;quot;&lt;/span&gt;
            &lt;span class="n"&gt;n&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;np&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;sqrt&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;np&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;pi&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;zeta&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

        &lt;span class="k"&gt;elif&lt;/span&gt; &lt;span class="n"&gt;para&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;method&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;SinglePole&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;span class="w"&gt;            &lt;/span&gt;&lt;span class="sd"&gt;&amp;quot;&amp;quot;&amp;quot;&lt;/span&gt;
&lt;span class="sd"&gt;            method [2]: SinglePole.&lt;/span&gt;
&lt;span class="sd"&gt;            准粒子激发在 q=0 时, ω(q)=0. 因此, 在 μ&amp;lt;0 时, 准粒子激发完&lt;/span&gt;
&lt;span class="sd"&gt;            全位于连续激发外, 是孤立的奇点. 此时, 考虑自由费米子(几乎可以忽略) 和 Single&lt;/span&gt;
&lt;span class="sd"&gt;            Pole 的 pair 涨落的贡献.&lt;/span&gt;
&lt;span class="sd"&gt;            &amp;quot;&amp;quot;&amp;quot;&lt;/span&gt;
            &lt;span class="n"&gt;n_fluc2&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;integrate&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;quad&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;_fluc2_s&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;para&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;n_fluc2_up&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
                                     &lt;span class="n"&gt;epsrel&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;para&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;n_fluc2_epsrel&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
            &lt;span class="c1"&gt;# 此处也用较低的精度即可. 接近 0 时平滑地走近于一个常数. TODO: 动量积分的下限&lt;/span&gt;
            &lt;span class="c1"&gt;# 做了近似, 0 处有bug&lt;/span&gt;
            &lt;span class="n"&gt;n_fluc&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;n_fluc2&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
            &lt;span class="n"&gt;n_free&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;free_fermion_density&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;mu&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
            &lt;span class="n"&gt;n&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;n_free&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="n"&gt;n_fluc&lt;/span&gt;
            &lt;span class="c1"&gt;# print(&amp;#39;*************&amp;#39;, n_fxluc, n_free)&lt;/span&gt;
        &lt;span class="k"&gt;elif&lt;/span&gt; &lt;span class="n"&gt;para&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;method&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;NSR&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;span class="w"&gt;            &lt;/span&gt;&lt;span class="sd"&gt;&amp;quot;&amp;quot;&amp;quot;&lt;/span&gt;
&lt;span class="sd"&gt;            method [3]: NSR.&lt;/span&gt;
&lt;span class="sd"&gt;            在 μ&amp;gt;0 时, 准粒子激发几乎位于连续激发内, 在低动量低频率区有尖锐的&lt;/span&gt;
&lt;span class="sd"&gt;            准粒子峰贡献.&lt;/span&gt;
&lt;span class="sd"&gt;            BEC Unitary侧, 考虑自由费米子 和 pair 涨落(连续激发).&amp;quot;&amp;quot;&amp;quot;&lt;/span&gt;
            &lt;span class="n"&gt;n_fluc1&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;integrate&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;quad&lt;/span&gt;&lt;span class="p"&gt;((&lt;/span&gt;&lt;span class="k"&gt;lambda&lt;/span&gt; &lt;span class="n"&gt;qT&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
                                      &lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;_fluc1_s&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;qT&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;BCS&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;para&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;fluc1_BCS&lt;/span&gt;&lt;span class="p"&gt;)),&lt;/span&gt;
                                     &lt;span class="n"&gt;para&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;n_fluc1_a&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;para&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;n_fluc1_b&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
                                     &lt;span class="n"&gt;epsrel&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;para&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;n_fluc1_epsrel&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
                                     &lt;span class="n"&gt;limit&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;para&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;n_fluc1_limit&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
            &lt;span class="n"&gt;n_fluc&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;n_fluc1&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
            &lt;span class="n"&gt;n_free&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;free_fermion_density&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;mu&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
            &lt;span class="n"&gt;n&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;n_free&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="n"&gt;n_fluc&lt;/span&gt;
        &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;n&lt;/span&gt;


&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;plot_Tc&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;aT&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;para&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;debug&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="kc"&gt;False&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="sd"&gt;&amp;quot;&amp;quot;&amp;quot;&lt;/span&gt;
&lt;span class="sd"&gt;    aT : scattering length in unit of temperature&lt;/span&gt;
&lt;span class="sd"&gt;    &amp;quot;&amp;quot;&amp;quot;&lt;/span&gt;
    &lt;span class="n"&gt;muT&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[]&lt;/span&gt;
    &lt;span class="n"&gt;density_T&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[]&lt;/span&gt;
    &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;aTi&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;aT&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
        &lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;Calculating the results for point a_s*sqrt(T)=&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
              &lt;span class="n"&gt;aTi&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39; START!&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="n"&gt;muTi&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;find_muT_at_Tc&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;aTi&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="n"&gt;muT&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;append&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;muTi&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="n"&gt;density_T&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;append&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;Density&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;mu&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;muTi&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;aTi&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;s_wave_density&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;para&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
        &lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;Calculating the results for point a_s*sqrt(T)=&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
              &lt;span class="n"&gt;aTi&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39; FINISH!&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

    &lt;span class="n"&gt;n_T&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;np&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;array&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;density_T&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;  &lt;span class="c1"&gt;# density in unit of temperature&lt;/span&gt;
    &lt;span class="n"&gt;kF&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;np&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;pi&lt;/span&gt;&lt;span class="o"&gt;**&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;n_T&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;**&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;  &lt;span class="c1"&gt;# Fermi momentum in unit of temperature&lt;/span&gt;
    &lt;span class="n"&gt;EF&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;kF&lt;/span&gt;&lt;span class="o"&gt;**&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;  &lt;span class="c1"&gt;# Fermi energy in unit of temperature&lt;/span&gt;
    &lt;span class="n"&gt;kfas&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;aT&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="n"&gt;kF&lt;/span&gt;  &lt;span class="c1"&gt;# 1 / (k_F * a_s)&lt;/span&gt;
    &lt;span class="n"&gt;Tc_EF&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="n"&gt;EF&lt;/span&gt;
    &lt;span class="n"&gt;plt&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;plot&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;kfas&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;Tc_EF&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;o&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;label&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;This numerical program&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;


&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;plot_paper&lt;/span&gt;&lt;span class="p"&gt;():&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="sd"&gt;&amp;quot;&amp;quot;&amp;quot;&lt;/span&gt;
&lt;span class="sd"&gt;    The data from the published papers.&lt;/span&gt;
&lt;span class="sd"&gt;    &amp;quot;&amp;quot;&amp;quot;&lt;/span&gt;
    &lt;span class="n"&gt;paper_data&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;np&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;array&lt;/span&gt;&lt;span class="p"&gt;([[&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mf"&gt;1.99903&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mf"&gt;0.016667&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
                           &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mf"&gt;1.59262&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mf"&gt;0.034058&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
                           &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mf"&gt;1.30582&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mf"&gt;0.052899&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
                           &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mf"&gt;0.98741&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mf"&gt;0.084058&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
                           &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mf"&gt;0.73053&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mf"&gt;0.119565&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
                           &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mf"&gt;0.47717&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mf"&gt;0.16087&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
                           &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mf"&gt;0.21622&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mf"&gt;0.2&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
                           &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mf"&gt;0.0841&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mf"&gt;0.214493&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
                           &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mf"&gt;0.0013&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mf"&gt;0.222464&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
                           &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mf"&gt;0.10593&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mf"&gt;0.228986&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
                           &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mf"&gt;0.22578&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mf"&gt;0.231884&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
                           &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mf"&gt;0.35702&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mf"&gt;0.231159&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
                           &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mf"&gt;0.4381&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mf"&gt;0.231159&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
                           &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mf"&gt;0.56522&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mf"&gt;0.226087&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
                           &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mf"&gt;0.68084&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mf"&gt;0.222464&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
                           &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mf"&gt;0.83905&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mf"&gt;0.221014&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
                           &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mf"&gt;1.02812&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mf"&gt;0.218841&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
                           &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mf"&gt;1.19024&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mf"&gt;0.218116&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
                           &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mf"&gt;1.3524&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mf"&gt;0.218116&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
                           &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mf"&gt;1.41418&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mf"&gt;0.218116&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
                           &lt;span class="p"&gt;])&lt;/span&gt;
    &lt;span class="n"&gt;t_star&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;np&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;array&lt;/span&gt;&lt;span class="p"&gt;([[&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mf"&gt;1.99602&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mf"&gt;0.029288&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
                       &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mf"&gt;1.76099&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mf"&gt;0.038028&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
                       &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mf"&gt;1.53813&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mf"&gt;0.052065&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
                       &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mf"&gt;1.33351&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mf"&gt;0.070343&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
                       &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mf"&gt;1.09651&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mf"&gt;0.102372&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
                       &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mf"&gt;0.86968&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mf"&gt;0.147815&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
                       &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mf"&gt;0.62669&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mf"&gt;0.217954&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
                       &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mf"&gt;0.48093&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mf"&gt;0.271542&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
                       &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mf"&gt;0.26232&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mf"&gt;0.365333&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
                       &lt;span class="p"&gt;])&lt;/span&gt;
    &lt;span class="n"&gt;plt&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;plot&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;paper_data&lt;/span&gt;&lt;span class="p"&gt;[:,&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt; &lt;span class="n"&gt;paper_data&lt;/span&gt;&lt;span class="p"&gt;[:,&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
             &lt;span class="n"&gt;label&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;results from published papers&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="n"&gt;plt&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;plot&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;t_star&lt;/span&gt;&lt;span class="p"&gt;[:,&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt; &lt;span class="n"&gt;t_star&lt;/span&gt;&lt;span class="p"&gt;[:,&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;--&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;


&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;Para&lt;/span&gt;&lt;span class="p"&gt;():&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="sd"&gt;&amp;quot;&amp;quot;&amp;quot; 指定一些数值计算中需要调的参数.&lt;/span&gt;
&lt;span class="sd"&gt;    &amp;quot;&amp;quot;&amp;quot;&lt;/span&gt;
    &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="fm"&gt;__init__&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;method&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;str&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;n_fluc2_up&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
                 &lt;span class="n"&gt;n_fluc2_limit&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;n_fluc2_epsrel&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
                 &lt;span class="n"&gt;n_fluc1_a&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;n_fluc1_b&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;n_fluc1_limit&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;n_fluc1_epsrel&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
                 &lt;span class="n"&gt;fluc1_BCS&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="sd"&gt;&amp;quot;&amp;quot;&amp;quot;&lt;/span&gt;
&lt;span class="sd"&gt;        Parameters&lt;/span&gt;
&lt;span class="sd"&gt;        method : the method to be used when calculate the density.&lt;/span&gt;
&lt;span class="sd"&gt;                 There are three method can be use:&lt;/span&gt;
&lt;span class="sd"&gt;                 &amp;#39;SinglePole_StrongBEC&amp;#39;, &amp;#39;SinglePole&amp;#39;, &amp;#39;NSR&amp;#39;&lt;/span&gt;
&lt;span class="sd"&gt;        fluc1_BCS: bool&lt;/span&gt;
&lt;span class="sd"&gt;                 如果在 BCS 极限下的的话, 连续激发边界的边界有比较重要的贡献.&lt;/span&gt;
&lt;span class="sd"&gt;        &amp;quot;&amp;quot;&amp;quot;&lt;/span&gt;
        &lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;method&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;method&lt;/span&gt;

        &lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;n_fluc2_up&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;n_fluc2_up&lt;/span&gt;
        &lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;n_fluc2_limit&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;n_fluc2_limit&lt;/span&gt;
        &lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;n_fluc2_epsrel&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;n_fluc2_epsrel&lt;/span&gt;

        &lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;n_fluc1_a&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;n_fluc1_a&lt;/span&gt;
        &lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;n_fluc1_b&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;n_fluc1_b&lt;/span&gt;
        &lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;n_fluc1_limit&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;n_fluc1_limit&lt;/span&gt;
        &lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;n_fluc1_epsrel&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;n_fluc1_epsrel&lt;/span&gt;

        &lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;fluc1_BCS&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;fluc1_BCS&lt;/span&gt;


&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;runscp&lt;/span&gt;&lt;span class="p"&gt;():&lt;/span&gt;
    &lt;span class="c1"&gt;# ============ Single pole 近似下, aT 取 1.5~4 (取 10 个点)是可以的. ==========&lt;/span&gt;
    &lt;span class="n"&gt;paraSinglePole&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;Para&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;method&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;SinglePole&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
                              &lt;span class="n"&gt;n_fluc2_limit&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
                              &lt;span class="n"&gt;n_fluc2_up&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
                              &lt;span class="n"&gt;n_fluc2_epsrel&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mf"&gt;1e-2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
                              &lt;span class="n"&gt;n_fluc1_a&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mf"&gt;2e-2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;n_fluc1_b&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
                              &lt;span class="n"&gt;n_fluc1_limit&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;5&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;n_fluc1_epsrel&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mf"&gt;1e-3&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
                              &lt;span class="n"&gt;fluc1_BCS&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="kc"&gt;False&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="n"&gt;plot_Tc&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;aT&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mf"&gt;1.5&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt; &lt;span class="n"&gt;para&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;paraSinglePole&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;debug&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="kc"&gt;True&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

    &lt;span class="n"&gt;paraNSR&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;Para&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;method&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;NSR&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
                   &lt;span class="n"&gt;n_fluc2_limit&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
                   &lt;span class="n"&gt;n_fluc2_up&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
                   &lt;span class="n"&gt;n_fluc2_epsrel&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mf"&gt;1e-2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
                   &lt;span class="n"&gt;n_fluc1_a&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mf"&gt;2e-2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;n_fluc1_b&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
                   &lt;span class="n"&gt;n_fluc1_limit&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;5&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;n_fluc1_epsrel&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mf"&gt;1e-3&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
                   &lt;span class="n"&gt;fluc1_BCS&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="kc"&gt;False&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="c1"&gt;# plot_Tc(aT=[.1, .3, 0.5, 0.8, 1.0], para=paraNSR, debug=True)&lt;/span&gt;
    &lt;span class="n"&gt;plot_Tc&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;aT&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mf"&gt;0.1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mf"&gt;0.3&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt; &lt;span class="n"&gt;para&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;paraNSR&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;debug&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="kc"&gt;True&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

    &lt;span class="n"&gt;paraNSR_BCS&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;Para&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;method&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;NSR&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
                       &lt;span class="n"&gt;n_fluc2_limit&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
                       &lt;span class="n"&gt;n_fluc2_up&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
                       &lt;span class="n"&gt;n_fluc2_epsrel&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mf"&gt;1e-2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
                       &lt;span class="n"&gt;n_fluc1_a&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mf"&gt;2e-2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;n_fluc1_b&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
                       &lt;span class="n"&gt;n_fluc1_limit&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;n_fluc1_epsrel&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mf"&gt;1e-3&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
                       &lt;span class="n"&gt;fluc1_BCS&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="kc"&gt;True&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="c1"&gt;# plot_Tc(aT=[-5, -3, -1], para=paraNSR_BCS, debug=True)&lt;/span&gt;
    &lt;span class="n"&gt;plot_Tc&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;aT&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mf"&gt;.5&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mf"&gt;.1&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt; &lt;span class="n"&gt;para&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;paraNSR_BCS&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;debug&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="kc"&gt;True&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="c1"&gt;# plot_Tc(aT=[-5], para=paraNSR_BCS, debug=True)&lt;/span&gt;

    &lt;span class="n"&gt;plot_paper&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
    &lt;span class="n"&gt;plt&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;xlabel&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;r&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;$1/(k_F a_s)$&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="n"&gt;plt&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;ylabel&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;r&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;$T_C / \epsilon_F$&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="n"&gt;plt&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;legend&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
    &lt;span class="n"&gt;plt&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;show&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;


&lt;span class="n"&gt;runscp&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;pre&gt;Calculating the results for point a_s*sqrt(T)= 1.5  START!
&lt;/pre&gt;
&lt;pre&gt;/var/folders/51/4rnfl9_93gv1fhpymn1lsz_r0000gn/T/ipykernel_37194/4289401143.py:419: DeprecationWarning: scipy.misc.derivative is deprecated in SciPy v1.10.0; and will be completely removed in SciPy v1.12.0. You may consider using findiff: https://github.com/maroba/findiff or numdifftools: https://github.com/pbrod/numdifftools
  diff = derivative(omega_q, self.mu, dx=.1)
&lt;/pre&gt;
&lt;pre&gt;Calculating the results for point a_s*sqrt(T)= 1.5  FINISH!
Calculating the results for point a_s*sqrt(T)= 2  START!
Calculating the results for point a_s*sqrt(T)= 2  FINISH!
Calculating the results for point a_s*sqrt(T)= 3  START!
Calculating the results for point a_s*sqrt(T)= 3  FINISH!
Calculating the results for point a_s*sqrt(T)= 4  START!
Calculating the results for point a_s*sqrt(T)= 4  FINISH!
Calculating the results for point a_s*sqrt(T)= 0.1  START!
&lt;/pre&gt;
&lt;pre&gt;/var/folders/51/4rnfl9_93gv1fhpymn1lsz_r0000gn/T/ipykernel_37194/4289401143.py:377: DeprecationWarning: scipy.misc.derivative is deprecated in SciPy v1.10.0; and will be completely removed in SciPy v1.12.0. You may consider using findiff: https://github.com/maroba/findiff or numdifftools: https://github.com/pbrod/numdifftools
  diff_re = derivative((lambda mu: Gamma_0_re(q=qT, omega=omegaT, mu=mu,
/var/folders/51/4rnfl9_93gv1fhpymn1lsz_r0000gn/T/ipykernel_37194/4289401143.py:404: IntegrationWarning: The integral is probably divergent, or slowly convergent.
  int3 = integrate.quad(lambda omega: self._fluc1_dense(qT=qT,
/var/folders/51/4rnfl9_93gv1fhpymn1lsz_r0000gn/T/ipykernel_37194/4289401143.py:404: IntegrationWarning: The maximum number of subdivisions (40) has been achieved.
  If increasing the limit yields no improvement it is advised to analyze 
  the integrand in order to determine the difficulties.  If the position of a 
  local difficulty can be determined (singularity, discontinuity) one will 
  probably gain from splitting up the interval and calling the integrator 
  on the subranges.  Perhaps a special-purpose integrator should be used.
  int3 = integrate.quad(lambda omega: self._fluc1_dense(qT=qT,
/var/folders/51/4rnfl9_93gv1fhpymn1lsz_r0000gn/T/ipykernel_37194/4289401143.py:480: IntegrationWarning: The maximum number of subdivisions (5) has been achieved.
  If increasing the limit yields no improvement it is advised to analyze 
  the integrand in order to determine the difficulties.  If the position of a 
  local difficulty can be determined (singularity, discontinuity) one will 
  probably gain from splitting up the interval and calling the integrator 
  on the subranges.  Perhaps a special-purpose integrator should be used.
  n_fluc1 = integrate.quad((lambda qT:
&lt;/pre&gt;
&lt;pre&gt;Calculating the results for point a_s*sqrt(T)= 0.1  FINISH!
Calculating the results for point a_s*sqrt(T)= 0.3  START!
Calculating the results for point a_s*sqrt(T)= 0.3  FINISH!
Calculating the results for point a_s*sqrt(T)= -0.5  START!
&lt;/pre&gt;
&lt;pre&gt;/var/folders/51/4rnfl9_93gv1fhpymn1lsz_r0000gn/T/ipykernel_37194/4289401143.py:480: IntegrationWarning: The maximum number of subdivisions (10) has been achieved.
  If increasing the limit yields no improvement it is advised to analyze 
  the integrand in order to determine the difficulties.  If the position of a 
  local difficulty can be determined (singularity, discontinuity) one will 
  probably gain from splitting up the interval and calling the integrator 
  on the subranges.  Perhaps a special-purpose integrator should be used.
  n_fluc1 = integrate.quad((lambda qT:
&lt;/pre&gt;
&lt;pre&gt;Calculating the results for point a_s*sqrt(T)= -0.5  FINISH!
Calculating the results for point a_s*sqrt(T)= -0.1  START!
Calculating the results for point a_s*sqrt(T)= -0.1  FINISH!
&lt;/pre&gt;
&lt;pre&gt;&amp;lt;Figure size 640x480 with 1 Axes&amp;gt;&lt;/pre&gt;&lt;img src="data:image/png;base64,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O3GCC8uWEf/oY5zscw+pc94mb0cMlJRg3bwZ7i+MJfCHH2gWvQWvmW/i0KuX3PElGhxFUTDk55vkUdXVilatWoWVlRXbt29n2bJlZGZmcu+999KxY0f27NlDZGQkqampDB06FIDk5GSGDx/OM888w9GjR4mOjmbw4MFVPu4Vu3fvBmDFihUkJycbXz/55JM0btyY3bt3s3fvXl599dUKW3N2795N//79GTp0KMnJyXzwwQfG92bNmsUjjzzCP//8wzPPPMMvv/zCpEmTeOWVVzh06BBjx45l9OjRbNmypUydc+bMYcSIEcTGxtKqVSueeOIJxo4dy4wZM9izZw+KojB+/Pibnt/UqVN55ZVX2L9/Pz169OChhx4iIyOjStfo5MmTfP/99/z2229ERkayf/9+xo0bV6l99+zZw8SJE3nrrbeIi4sjMjKSu+++u0yZVatWYW9vz86dO1mwYAFvvfUWmzZtMr7/2GOPkZaWxsaNG9m7dy+dOnWib9++XLx4EYDvv/+eWbNm8e6777Jnzx68vb355JNPKhXf1KlTef/999m9ezeNGjXioYceovjyHcSFhYWEhISwfv16Dh06xJgxY3j66afZtWvXdfFbWFiwa9cuPvjgAxYtWsQXX3xhfH/8+PHExMSwZs0aDh48yGOPPUb//v05ceKEsUx+fj7z58/niy++4PDhw7i5uTFo0CB69+7NwYMHiYmJYcyYMTU7kbAiKpSVlaUASlZWVq0f21BSouTt3aukzF+gnOjXTznSstW/j1atlfjhTygXvviPoouPr/XYhDAHBQUFypEjR5SCggLjNn1eXtn/K7X40OflVTr23r17Kx07diyzbc6cOUq/fv3KbDt37pwCKHFxccrevXsVQDlz5kyFdU6aNKnMtoEDByojR440vg4ICFAWL15sfA0ov/zyS5l9HB0dlZUrV1b6XK49xpV6J0+eXGZbz549leeff77Mtscee0x54IEHyuz3xhtvGF/HxMQogPKf//zHuO27775TbGxsKownPj5eAZR58+YZtxUXFyuNGzdW5s+fryiKoqxYsUJxdnYus98vv/yiXP2VGBERoWg0GiUxMdG4bePGjYparVaSk5MVRVGUkSNHKgMHDjS+f/XP4KefflKcnJyU7OzscuPs3bu3cuedd5bZ1qVLF2X69OmKoijKtm3bFCcnJ6WwsLBM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"/&gt;</content><category term="专业笔记"/><category term="NSR"/><category term="s-wave"/><category term="BEC-BCS crossover"/></entry><entry><title>Symmetry and Degeneration</title><link href="https://zqw.ink/2024-11-08-physics-symmetry_degeneration.html" rel="alternate"/><published>2024-11-08T00:00:00+08:00</published><updated>2024-11-08T00:00:00+08:00</updated><author><name>ZQW</name></author><id>tag:zqw.ink,2024-11-08:/2024-11-08-physics-symmetry_degeneration.html</id><summary type="html">&lt;h2&gt;群的不可约表示，哈密顿量，态矢&lt;/h2&gt;
&lt;h3&gt;系统(哈密顿量)的对称性&lt;/h3&gt;
&lt;p&gt;哈密顿量 $\hat{H}$ 的所有对称性构成群 $G$. $H$ 在 $G$ 中的任意一个群元 …&lt;/p&gt;</summary><content type="html">&lt;h2&gt;群的不可约表示，哈密顿量，态矢&lt;/h2&gt;
&lt;h3&gt;系统(哈密顿量)的对称性&lt;/h3&gt;
&lt;p&gt;哈密顿量 $\hat{H}$ 的所有对称性构成群 $G$. $H$ 在 $G$ 中的任意一个群元 $g$ 的变换下保持不变.
群 $G$ 中的任意群元 $g$ 都满足
$$
g \hat{H} g^{-1} = \hat{H}, \quad\mathrm{or}\quad g \hat{H} = \hat{H} g
$$
也就是说 $g$ 和 ${H}$ 对易.&lt;/p&gt;
&lt;p&gt;哈密顿量 $\hat{H}$ 也可以看成是一个变化操作, 它和群 $G$ 作用在相同的空间, 但它不在群 $G$ 中. 它的物理意义是系统的时间演化算符的生成元, 即薛定谔方程,
$$
\mathrm{i}\frac{\partial}{\partial t}|\psi(t)\rangle = \hat{H} |\psi(t)\rangle
$$&lt;/p&gt;
&lt;h3&gt;群的表示与基底&lt;/h3&gt;
&lt;p&gt;有限群有幺正表示(finite groups have unitary representations (Zee, 2016, p. 96)).
下面考虑的都群的幺正表示.&lt;/p&gt;
&lt;p&gt;选取 $\hat{H}$ 的本征态作为一组基底,哈密顿量在这组基底下的表示矩阵 $H$ ($H$ 是矩阵, $\hat{H}$ 是算符) 是对角的.
同时这组基底也负载了群的表示, 群元 $g$ 的表示矩阵 $D(g)$.&lt;/p&gt;
&lt;h3&gt;一维表示&lt;/h3&gt;
&lt;p&gt;一维的希尔伯特空间, 基底只有一个, 记为 $|1 \rangle$ , 这个希尔伯特空间中所有的都是这个态处在不同的相位上,标记一个态只需要用相位 $\theta$ 这一个参数
$$
|\theta\rangle = e^{\mathrm{i}\theta}|1\rangle
$$
对于一维的希尔伯特空间, 哈密顿量只能是一个常数. 此时系统具有 $U(1)$ 对称性. $U(1)$ 是一个阿贝尔的群, 只有一维表示. 基底 ${|1 \rangle}$ 负载这个以为表示, 群元 $g(\theta)$ 在这个基底下的表示为
$$
D[g(\theta)]  = e^{\mathrm{i}\theta}
$$
对于给定群元 $g(\theta)$, 它是一个数.&lt;/p&gt;
&lt;h2&gt;二维表示&lt;/h2&gt;
&lt;p&gt;基底有两个, 记为 ${|\uparrow \rangle, |\downarrow\rangle}$.&lt;/p&gt;
&lt;h2&gt;Reference&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Zee, A. Group Theory in a Nutshell for Physicists. (Princeton University Press, Princeton, 2016).&lt;/li&gt;
&lt;/ul&gt;
</content><category term="专业笔记"/><category term="symmetry"/><category term="degeneration"/><category term="group theory"/></entry><entry><title>相干态总结</title><link href="https://zqw.ink/2024-11-07-physics-coherent_state.html" rel="alternate"/><published>2024-11-07T00:00:00+08:00</published><updated>2024-11-07T00:00:00+08:00</updated><author><name>ZQW</name></author><id>tag:zqw.ink,2024-11-07:/2024-11-07-physics-coherent_state.html</id><summary type="html">&lt;h2&gt;Displacement operator&lt;/h2&gt;
&lt;p&gt;$$
D(\alpha) = e^{\alpha a^{\dagger} - \alpha^* a}
$$&lt;/p&gt;
&lt;p&gt;$$
\alpha a^{\dagger} - \alpha^* a = \mathrm{i} (\mathrm{Im}[\alpha] x
 - \mathrm{Re}[\alpha]p)
$$&lt;/p&gt;
&lt;p&gt;$$
e^{\mathrm{i} a p } \sim 1 - \mathrm{i} a p = 1 - a \frac{\partial}{\partial x}
$$&lt;/p&gt;
&lt;p&gt;$$
e^{\mathrm{i} a p } f(x)\sim …&lt;/p&gt;</summary><content type="html">&lt;h2&gt;Displacement operator&lt;/h2&gt;
&lt;p&gt;$$
D(\alpha) = e^{\alpha a^{\dagger} - \alpha^* a}
$$&lt;/p&gt;
&lt;p&gt;$$
\alpha a^{\dagger} - \alpha^* a = \mathrm{i} (\mathrm{Im}[\alpha] x
 - \mathrm{Re}[\alpha]p)
$$&lt;/p&gt;
&lt;p&gt;$$
e^{\mathrm{i} a p } \sim 1 - \mathrm{i} a p = 1 - a \frac{\partial}{\partial x}
$$&lt;/p&gt;
&lt;p&gt;$$
e^{\mathrm{i} a p } f(x)\sim f(x) - a \frac{\partial}{\partial x} f(x) = f(x - a)
$$&lt;/p&gt;
&lt;h2&gt;Reference&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://en.wikipedia.org/wiki/Displacement_operator"&gt;Wikipedia: Displacement operator&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://en.wikipedia.org/wiki/Coherent_state"&gt;Wikipedia: Coherent state&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</content><category term="专业笔记"/><category term="coherent state"/><category term="harmonic oscillator"/></entry><entry><title>非马尔可夫方程的的数值方法</title><link href="https://zqw.ink/2024-11-02-physics-non_markov_numerical.html" rel="alternate"/><published>2024-11-02T00:00:00+08:00</published><updated>2024-11-02T00:00:00+08:00</updated><author><name>ZQW</name></author><id>tag:zqw.ink,2024-11-02:/2024-11-02-physics-non_markov_numerical.html</id><summary type="html">&lt;h2&gt;Reference&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://math.stackexchange.com/questions/4840754/how-to-numerically-solve-a-non-markovian-integral-equation"&gt;https://math.stackexchange.com/questions/4840754/how-to-numerically-solve-a-non-markovian-integral-equation&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Question&lt;/h2&gt;
&lt;p&gt;In the book &lt;em&gt;Breuer, Heinz-Peter, and Francesco Petruccione. The Theory of Open Quantum Systems. Oxford: Clarendon Press, 2009.&lt;/em&gt;, there is equation(10.17)&lt;/p&gt;
&lt;p&gt;$$
\frac{\mathrm{d}}{\mathrm{d}t}c_1(t) = - \int_0^t \mathrm{d}t_1 f(t-t_1) c_1(t_1)
$$
where …&lt;/p&gt;</summary><content type="html">&lt;h2&gt;Reference&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://math.stackexchange.com/questions/4840754/how-to-numerically-solve-a-non-markovian-integral-equation"&gt;https://math.stackexchange.com/questions/4840754/how-to-numerically-solve-a-non-markovian-integral-equation&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Question&lt;/h2&gt;
&lt;p&gt;In the book &lt;em&gt;Breuer, Heinz-Peter, and Francesco Petruccione. The Theory of Open Quantum Systems. Oxford: Clarendon Press, 2009.&lt;/em&gt;, there is equation(10.17)&lt;/p&gt;
&lt;p&gt;$$
\frac{\mathrm{d}}{\mathrm{d}t}c_1(t) = - \int_0^t \mathrm{d}t_1 f(t-t_1) c_1(t_1)
$$
where
$$
f(t) = \frac{1}{2} \gamma_0\lambda e^{-\lambda |t|}
$$
$\gamma_0$ and $\lambda$ are parameters, for example, we can set $\gamma_0=1, \lambda=10$. For this $f(t)$, we can solve it analytically, the solution is
$$
c_1(t) = c_1(0) e^{-\lambda t/2} \left[\cosh\left(\frac{dt}{2}\right) +
 \frac{\lambda}{d} \sinh\left(\frac{dt}{2}\right) \right]
$$
where $d = \sqrt{\lambda^2 - 2\gamma_0\lambda}$.&lt;/p&gt;
&lt;p&gt;My question is, how to numerically solve (for example, using python function &lt;code&gt;scipy.integrate.solve_ivp&lt;/code&gt;, which is a function solving OEDs by Runge-Kutta method or other methods) this equation?&lt;/p&gt;
&lt;p&gt;I want to numerically solve it, because&lt;/p&gt;
&lt;p&gt;&lt;pre&gt;In [1]&lt;/pre&gt;&lt;/p&gt;&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;numpy&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="nn"&gt;np&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;scipy.integrate&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;quad&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;solve_ivp&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;qutip&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="nn"&gt;qutip&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;matplotlib.pyplot&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="nn"&gt;plt&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&lt;pre&gt;In [2]&lt;/pre&gt;&lt;/p&gt;&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;ft&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;t&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;g0&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;lam&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="sd"&gt;&amp;quot;&amp;quot;&amp;quot;Breuer Eq.(10.44)&amp;quot;&amp;quot;&amp;quot;&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="n"&gt;g0&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="n"&gt;lam&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="n"&gt;np&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;exp&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;lam&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;np&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;abs&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;t&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;


&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;dc_dt&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;t&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;c0&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;lam&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;g0&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="sd"&gt;&amp;quot;&amp;quot;&amp;quot;Right hand side of Breuer Eq.(10.17),&lt;/span&gt;
&lt;span class="sd"&gt;    chose f(t-t1) as  Breuer Eq.(10.44)&amp;quot;&amp;quot;&amp;quot;&lt;/span&gt;
    &lt;span class="n"&gt;res&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;quad&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;lambda&lt;/span&gt; &lt;span class="n"&gt;t1&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;ft&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;t&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;t1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;ct&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;t1&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;t&lt;/span&gt;&lt;span class="p"&gt;)[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;res&lt;/span&gt;


&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;ct&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;t&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;c0&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;lam&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;g0&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="sd"&gt;&amp;quot;&amp;quot;&amp;quot;Breuer Eq.(10.45)&amp;quot;&amp;quot;&amp;quot;&lt;/span&gt;
    &lt;span class="n"&gt;d&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;np&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;emath&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;sqrt&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;lam&lt;/span&gt;&lt;span class="o"&gt;**&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;g0&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;lam&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="n"&gt;ct&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;c0&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="n"&gt;np&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;exp&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;lam&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;t&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="n"&gt;ct&lt;/span&gt; &lt;span class="o"&gt;*=&lt;/span&gt; &lt;span class="n"&gt;np&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;cosh&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;d&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;t&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="n"&gt;lam&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;d&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;np&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;sinh&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;d&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;t&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;ct&lt;/span&gt;


&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;ct0&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;t&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;c0&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;g0&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="sd"&gt;&amp;quot;&amp;quot;&amp;quot;Markovian limit solution&amp;quot;&amp;quot;&amp;quot;&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;c0&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;np&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;exp&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;g0&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;t&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&lt;pre&gt;In [3]&lt;/pre&gt;&lt;/p&gt;&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="n"&gt;t&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;np&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;linspace&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;1000&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;plt&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;plot&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;t&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;np&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;abs&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;ct&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;ti&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;lam&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt; &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;ti&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;t&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;y&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;plt&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;plot&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;t&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;np&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;abs&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;ct&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;t&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;lam&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mf"&gt;2.1&lt;/span&gt;&lt;span class="p"&gt;)),&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;r&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;plt&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;plot&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;t&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;np&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;abs&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;ct&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;t&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;lam&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;)),&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;g&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;plt&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;plot&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;t&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;np&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;abs&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;ct&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;t&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;lam&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;100&lt;/span&gt;&lt;span class="p"&gt;)),&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;b&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;plt&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;plot&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;t&lt;/span&gt;&lt;span class="p"&gt;[::&lt;/span&gt;&lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt; &lt;span class="n"&gt;ct0&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;t&lt;/span&gt;&lt;span class="p"&gt;)[::&lt;/span&gt;&lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;kx&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;label&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;Markov&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;plt&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;xlabel&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;r&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;$t$&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;plt&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;legend&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;pre&gt;&amp;lt;Figure size 640x480 with 1 Axes&amp;gt;&lt;/pre&gt;&lt;img src="data:image/png;base64,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LF++nKFDh7J69Wp+/fVX8vPzuemmm8jMzPR002qsdevW8dFHH3HVVVd5uik1zokTJ+jSpQsmk4mffvqJLVu2MG7cOOrUqePpptU4b775JpMmTeKDDz5g69atvPnmm7z11ltMmDDB002r1jIzM2ndujUTJ04s9fO33nqL//3vf0yePJk1a9ZQq1YtevXqRU5OTsU3Tl2iOnTooIYOHVr43m63q/DwcDV27FgPtqpmS01NVYBavny5p5tSI2VkZKhmzZqpX3/9VXXr1k0NHz7c002qUV5++WV13XXXeboZl4TevXurhx56qNixO++8Uw0YMMBDLap5APXtt98Wvnc4HCosLEy9/fbbhcdOnjypvLy81BdffFHh7bkke0by8vJYv349PXv2LDym1+vp2bMnq1at8mDLara0tDQA6tat6+GW1ExDhw6ld+/exf65FuXnu+++o3379txzzz2EhITQtm1bpk6d6ulm1UidO3dm8eLF7NixA4C///6blStXcsstt3i4ZTXX3r17SU5OLvbfj4CAADp27Fgpv4vVYqO88nb06FHsdjuhoaHFjoeGhrJt2zYPtapmczgcPPvss3Tp0oVWrVp5ujk1zpw5c9iwYQPr1q3zdFNqrD179jBp0iRGjBjBK6+8wrp163jmmWcwm80MHjzY082rUUaOHEl6ejqXX345BoMBu93Oa6+9xoABAzzdtBorOTkZoNTfRednFemSDEZE5Rs6dCibN29m5cqVnm5KjXPw4EGGDx/Or7/+ire3t6ebU2M5HA7at2/P66+/DkDbtm3ZvHkzkydPlmCknH355ZfMmjWL2bNnc8UVV7Bp0yaeffZZwsPD5buuoS7JYZrg4GAMBgMpKSnFjqekpBAWFuahVtVcw4YN4/vvv2fp0qVERkZ6ujk1zvr160lNTeXqq6/GaDRiNBpZvnw5//vf/zAajdjtdk83sUaoX78+LVu2LHasRYsWHDhwwEMtqrlefPFFRo4cyX333ceVV17JwIEDee655xg7dqynm1ZjOX/7PPW7eEkGI2azmXbt2rF48eLCYw6Hg8WLF9OpUycPtqxmUUoxbNgwvv32W5YsWUKjRo083aQa6YYbbuDff/9l06ZNhY/27dszYMAANm3ahMFg8HQTa4QuXbqctTR9x44dNGjQwEMtqrmysrLQ64v/PBkMBhwOh4daVPM1atSIsLCwYr+L6enprFmzplJ+Fy/ZYZoRI0YwePBg2rdvT4cOHRg/fjyZmZkMGTLE002rMYYOHcrs2bNZsGABfn5+heOOAQEB+Pj4eLh1NYefn99Z83Bq1apFUFCQzM8pR8899xydO3fm9ddf595772Xt2rVMmTKFKVOmeLppNU6fPn147bXXiI6O5oorrmDjxo28++67PPTQQ55uWrV26tQpdu3aVfh+7969bNq0ibp16xIdHc2zzz7LmDFjaNasGY0aNcJisRAeHk7fvn0rvnEVvl6nCpswYYKKjo5WZrNZdejQQa1evdrTTapRgFIf06dP93TTajxZ2lsxFi5cqFq1aqW8vLzU5ZdfrqZMmeLpJtVI6enpavjw4So6Olp5e3urxo0bq1dffVXl5uZ6umnV2tKlS0v9b/LgwYOVUtryXovFokJDQ5WXl5e64YYb1Pbt2yulbTqlJKWdEEIIITznkpwzIoQQQoiqQ4IRIYQQQniUBCNCCCGE8CgJRoQQQgjhURKMCCGEEMKjJBgRQgghhEdJMCKEEEIIj5JgRAghhBAeJcGIEEIIITxKghEhhEc999xz3HnnnZ5uhhDCgyQYEUJ41Nq1a2nfvr2nmyGE8CDZm0YI4RF5eXnUqlWLgoKCwmMdO3Zk9erVHmyVEMITjJ5ugBDi0mQ0Gvnjjz/o2LEjmzZtIjQ0FG9vb083SwjhARKMCCE8Qq/Xk5SURFBQEK1bt/Z0c4QQHiRzRoQQHrNx40YJRIQQEowIITxn06ZNEowIISQYEUJ4zr///kubNm083QwhhIdJMCKE8BiHw8H27dtJSkoiLS3N080RQniIBCNCCI8ZM2YMM2bMICIigjFjxni6OUIID5E8I0IIIYTwKOkZEUIIIYRHSTAihBBCCI+SYEQIIYQQHiXBiBBCCCE8SoIRIYQQQniUBCNCCCGE8CgJRoQQQgjhURKMCCGEEMKjJBgRQgghhEdJMCKEEEIIj5JgRAghhBAe9f+DgIP+6SlyowAAAABJRU5ErkJggg=="/&gt;
&lt;p&gt;&lt;pre&gt;In [4]&lt;/pre&gt;&lt;/p&gt;&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="c1"&gt;# check Breuer Eq.(10.45)&lt;/span&gt;
&lt;span class="n"&gt;dt&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mf"&gt;1e-2&lt;/span&gt;
&lt;span class="n"&gt;t&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;np&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;arange&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;dt&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;


&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;ft&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;t&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;g0&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;lam&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="sd"&gt;&amp;quot;&amp;quot;&amp;quot;Breuer Eq.(10.44)&amp;quot;&amp;quot;&amp;quot;&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="n"&gt;g0&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="n"&gt;lam&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="n"&gt;np&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;exp&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;lam&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;np&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;abs&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;t&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;


&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;dc_dt&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;t&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;c0&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;lam&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;g0&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="sd"&gt;&amp;quot;&amp;quot;&amp;quot;Right hand side of Breuer Eq.(10.17),&lt;/span&gt;
&lt;span class="sd"&gt;    chose f(t-t1) as  Breuer Eq.(10.44)&amp;quot;&amp;quot;&amp;quot;&lt;/span&gt;
    &lt;span class="n"&gt;res&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;quad&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;lambda&lt;/span&gt; &lt;span class="n"&gt;t1&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;ft&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;t&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;t1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;ct&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;t1&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;t&lt;/span&gt;&lt;span class="p"&gt;)[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;res&lt;/span&gt;

&lt;span class="n"&gt;cts&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;ct&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;t&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;plt&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;plot&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;t&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;:],&lt;/span&gt; &lt;span class="n"&gt;np&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;diff&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;cts&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;dt&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;plt&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;plot&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;t&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;np&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;array&lt;/span&gt;&lt;span class="p"&gt;([&lt;/span&gt;&lt;span class="n"&gt;dc_dt&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;ti&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;ti&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;t&lt;/span&gt;&lt;span class="p"&gt;]),&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;x&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;pre&gt;&amp;lt;Figure size 640x480 with 1 Axes&amp;gt;&lt;/pre&gt;&lt;img src="data:image/png;base64,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HeaNN95oVlVVmS+88EKpLiGtbK/vG9/4hvmb3/zGfPXVV82tW7eaF198sVlTU2O+9NJLpbqEtPr6+szt27eb27dvNyWZ3/nOd8zt27ebu3fvNk3TNNesWWN+4QtfcI5/7bXXzPHjx5tf//rXzR07dph33HGH6ff7zccee6xUlzCibK/xu9/9rvnwww+bf/zjH80XXnjBvPbaa02fz2f+7ne/K9UlpPWVr3zFrKurMzds2GC+9dZbzld/f79zjJd/D0dzfV77PVyzZo3Z2dlp7tq1y/z9739vrlmzxjQMw/ztb39rmqa33z9bttfotfcwmcTVRqV+HwkvCW6//XZz+vTpZnV1tTlv3jzz6aefdu5rbm42L7300rjj//M//9N8//vfb1ZXV5unnXaa+T//8z9FPuPsZHN91113nXPs1KlTzeXLl5vbtm0rwVlnxl4WnPhlX9Oll15qNjc3D3vMWWedZVZXV5snnniieffddxf9vLOR7TXefPPN5kknnWTW1NSYkyZNMs877zzziSeeKM3JZyDZtUmKe1+8/Hs4muvz2u/hF7/4RXPGjBlmdXW1OXnyZHPJkiXOh7ppevv9s2V7jV57D5NJDC+lfh8N0zTNwozpAAAA5B81LwAAwFMILwAAwFMILwAAwFMILwAAwFMILwAAwFMILwAAwFMILwAAwFMILwAAwFMILwAAwFMILwAAwFMILwAAwFMILwAAwFP+P0lbU3+1d1pSAAAAAElFTkSuQmCC"/&gt;
&lt;p&gt;&lt;pre&gt;In [5]&lt;/pre&gt;&lt;/p&gt;&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="n"&gt;dt&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mf"&gt;1e-2&lt;/span&gt;
&lt;span class="n"&gt;ts&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;np&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;arange&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;5&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;dt&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;dcdt&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;dc_dt&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;ti&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;ti&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;ts&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;span class="n"&gt;plt&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;plot&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;ts&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;dcdt&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;r--&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;plt&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;plot&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;ts&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;:],&lt;/span&gt; &lt;span class="n"&gt;np&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;diff&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;dcdt&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;dt&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;g&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;myd&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;t&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="n"&gt;ft&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;ct&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;t&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="n"&gt;ft&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;t&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;ct&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;plt&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;plot&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;ts&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;myd&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;ts&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;k&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;pre&gt;&amp;lt;Figure size 640x480 with 1 Axes&amp;gt;&lt;/pre&gt;&lt;img src="data:image/png;base64,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vivla+XKlQwdOpSTJ09St25dFi5cyFVXXWV1WSIiflXiyaqTJ0/GZrMVeezYsSPP9xw8eJC+fftyyy23MHr06EJfe/r06cTGxnqPhISEkv+JSqmwjoiGZsTfDMPgP//5D3379uXkyZN06dKFrVu3KoSISEAocUdk0qRJJCYmFnlOkyZNvPcPHTpEz549ueKKK3jllVeK/L4pU6YwceJE79epqanlFkbybWimjoiUg8zMTO655x7vfJA77riDF154QatiRCRglDiIxMfHEx8fX6xzDx48SM+ePenQoQNz584lKKjoBkxYWBhhYWElLalMnD004101o46I+ElSUhKDBg1i69at2O12Zs+ezdixYzUfREQCit/miBw8eJAePXrQqFEj/v3vf5OcnOx9rm7duv5621LzHZpxuBxkujIBTVYV//jqq68YMmQIR48epWbNmixatIiePXtaXZaISLnzWxBZuXIlu3fvZvfu3TRo0CDPc4Zh+OttS823I+KZH2LDRmy4lkxK2Xr55ZcZN24cLpeLNm3asGTJEho3bmx1WSIilvDbzqqJiYkYhlHgURH5zhHxDMvEhMUQZNPleKRsuFwu7r//fu677z5cLhdDhw7l66+/VggRkYCma82c4Ts0k+owlw2rGyJlJTU1lWHDhrF8+XIA/vnPfzJlyhTNBxGRgKcgcobv0IwniMSExVhZklQR+/bt44YbbuDnn38mIiKC+fPnM3jwYKvLEhGpEBREziioI6IgIudr06ZNDBgwgCNHjlC3bl0++eQTOnXqZHVZIiIVhiZAnOHpiGRlZXEq/RSgICLnZ9GiRfTo0YMjR47Qpk0bNm/erBAiInIWBZEzPB0RgGMpxwAFESkdwzD45z//ya233kpWVhY33HADX331VbnuFCwiUlkoiJwRFhaG3W4H4HjKcQCiQ6OtLEkqoezsbBITE/n73/8OwIMPPsiSJUuIjtb/SyIiBdEckTNsNhuRkZGkpqZyIuUEoI6IlExKSgqDBg1i7dq12O12nnvuOe677z6ryxIRqdAURHxERUWRmprKyRRzQzMFESmugwcP0q9fP3766SeioqJYvHgx1113ndVliYhUeAoiPjzzRFJOpwAKIlI827dvp2/fvhw4cIC6devy2Wef0a5dO6vLEhGpFDRHxEdMjBk8UlIVRKR41q1bR7du3Thw4AAtWrRg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be/evQwdOhS3282oUaMYP3681SWJiEgFoyByxtkdEcg7PCMlk56ezsCBAzlx4gSdOnXipZde0jVkREQkHwWRM86eIwK5QUQdkZIxDIM77riDH3/8kTp16vDhhx8SHh5udVkiIlIBKYic4Vk14xmaAahduzagIFJSM2fOZNGiRYSEhPDBBx/QoEEDq0sSEZEKSkHkjAxnBlBwR0RDM8W3fPlyHnnkEQCeffZZunXrZnFFIiJSkSmInOEJIhHBEd7HNDRTMrt27WL48OHefUPuvfdeq0sSEZEKTkHkjExXJgDVQqp5H9PQTPGlp6dz8803k5KSQteuXZkzZ47VJYmISCWgIHKGtyMSkr8joqGZohmGwX333cfPP/9MnTp1WLx4cYXcPVdERCoeBZEzMp35OyIamimel19+2btz6sKFC6lfv77VJYmISCWhIHJGQXNEfIdmDMOwpK6KbsuWLTzwwAMATJ8+nauvvtriikREpDJREAHchhtHjgMouCOSmZlJWlqaJbVVZMePH2fIkCFkZ2czcOBA71buIiIixaUgQu6wDOSdIxIVFUW1amYw0TyRvHJychgxYgT79++nWbNmvPnmm9o5VURESkxBhNwVM5B3aAY0T6QwTz75JJ9//jkRERF88MEHxMbGWl2SiIhUQgoi5M4PCbWHYg+y53lOS3jzW7FiBVOnTgXMiaqtW7e2uCIREamsFEQoeMWMh5bw5rVv3z5GjBiBYRiMGTOGP/3pT1aXJCIilZiCCAWvmPHQ0Eyu7Oxsbr31Vu8VdWfNmmV1SSIiUskpiFDwrqoeGprJ9cgjj7B582aqV6/OokWLtGmZiIicNwURCt5V1aNu3boAHD58uFxrqmiWLl3Kf/7zHwDmzp1Lo0aNLK5IRESqAgURip4j4rmE/YEDB8q1pookKSmJUaNGAfDggw8yYMAAiysSEZGqQkGEoueIJCQkAOYP40DkdDoZNmwYJ06coGPHjsycOdPqkkREpApREKHoOSKeIHLkyBGys7PLta6K4NFHH2XDhg3ExMSwcOFCQkNDrS5JRESqEAURip4jEh8fT2hoKIZhcOjQofIuzVIrVqxgxowZALz++us0adLE4opERKSqURCh6DkiNpvNO08kkIZnDh486N0j5M9//jNDhgyxuCIREamKFEQoeo4IBN48EZfLxW233caxY8do27atd7WM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iIiIWEVBBAURERERqyiIoCAiIiJiFQURFERERESsEtBBpCyvvisiIiIlF9BBJCtHHRERERErBXYQ0fJdERERSymIoI6IiIiIVRREUBARERGxioIICiIiIiJWURBBQURERMQqAR1EtHxXRETEWgEdRNQRERERsZaCCBAWrOW7IiIiVlAQQR0RERERqyiIoCAiIiJiFQURFERERESsErBBxG24cbqdgIKIiIiIVQI2iHiW7oKCiIiIiFUCNoh4hmVAQURERMQqAR9EgmxBBAcFW1yNiIhIYAr4IKJuiIiIiHUURBRERERELKMgoiAiIiJiGQURBRERERHLBGwQceToyrsiIiJWC9ggoo6IiIiI9QI+iITZdeVdERERqwR8EFFHRERExDoKIgoiIiIilgnYLUVb1W7F37r/jYtqXGR1KSIiIgErYINIh/od6FC/g9VliIiIBLSAHZoRERER6ymIiIiIiGUURERERMQyCiIiIiJiGQURERERsYyCiIiIiFhGQUREREQsoyAiIiIillEQEREREcsoiIiIiIhl/BpEGjdujM1my3PMmDHDn28pIiIilYjfrzUzbdo0Ro8e7f06Ojra328pIiIilYTfg0h0dDR169b199uIiIhIJWQzDMPw14s3btyYrKwsnE4nDRs25LbbbmPChAkEBxecfxwOBw6Hw/t1SkoKDRs2JCkpiZiYGH+VKSIiImUoNTWVhIQETp06RWxsbJHn+rUjcv/999O+fXtq1KjBhg0bmDJlCocPH+bpp58u8Pzp06czderUfI8nJCT4s0wRERHxg9OnT58ziJS4IzJ58mRmzpxZ5Dm//vorLVq0yPf4G2+8wb333ktaWhphYWH5nj+7I+J2uzlx4gQ1a9bEZrOVpMxz8qQ1dVv8S59z+dDnXH70WZcPfc7lxx+ftWEYnD59mvr16xMUVPS6mBJ3RCZNmkRiYmKR5zRp0qTAx7t06YLL5eL333+nefPm+Z4PCwvLF1Di4uJKWmKJxMTE6H/ycqDPuXzocy4/+qzLhz7n8lPWn/W5OiEeJQ4i8fHxxMfHl7gggG3bthEUFETt2rVL9f0iIiJStfhtjsjGjRvZtGkTPXv2JDo6mo0bNzJhwgRGjhxJ9erV/fW2IiIiUon4LYiEhYXx3nvv8fjjj+NwOLjwwguZMGECEydO9NdblkhYWBiPPfZYgXNVpOzocy4f+pzLjz7r8qHPufxY/Vn7dfmuiIiISFF0rRkRERGxjIKIiIiIWEZBRERERCyjICIiIiKWCcgg8vzzz9O4cWPCw8Pp0qULmzdvtrqkKmf9+vXceOON1K9fH5vNxpIlS6wuqUqaPn06nTp1Ijo6mtq1azNw4EB27txpdVlV0osvvkjr1q29mz517dqV5cuXW11WlTdjxgxsNhsPPvig1aVUKY8//jg2my3PUdCO6OUh4ILIwoULmThxIo899hjfffcdbdq04brrruPo0aNWl1alpKen06ZNG55//nmrS6nS1q1bx9ixY/nmm29YuXIlTqeTPn36kJ6ebnVpVU6DBg2YMWMGW7du5dtvv+Waa65hwIABbN++3erSqqwtW7bw8ssv07p1a6tLqZIuvfRSDh8+7D3++9//WlJHwC3f7dKlC506deK5554DzOvZJCQkMH78eCZPnmxxdVWTzWbjo48+YuDAgVaXUuUlJydTu3Zt1q1bx1VXXWV1OVVejRo1eOqpp7jrrrusLqXKSUtLo3379rzwwgs8+eSTtG3bltmzZ1tdVpXx+OOPs2TJErZt22Z1KYHVEcnOzmbr1q306tXL+1hQUBC9evVi48aNFlYmUjZSUlIA8wek+E9OTg7vvfce6enpdO3a1epyqqSxY8dy/fXX5/n3WsrWrl27qF+/Pk2aNGHEiBHs37/fkjr8trNqRXTs2DFycnKoU6dOnsfr1KnDjh07LKpKpGy43W4efPBBunXrxmWXXWZ1OVXSTz/9RNeuXcnKyiIqKoqPPvqISy65xOqyqpz33nuP7777ji1btlhdSpXVpUsX3nzzTZo3b87hw4eZOnUq3bt35+effyY6OrpcawmoICJSlY0dO5aff/7ZsnHeQNC8eXO2bdtGSkoKixcvZtSoUaxbt05hpAwlJSXxwAMPsHLlSsLDw60up8rq16+f937r1q3p0qULjRo14v333y/3ocaACiK1atXCbrdz5MiRPI8fOXKEunXrWlSVyPkbN24cS5cuZf369TRo0MDqcqqs0NBQmjVrBkCHDh3YsmULzzzzDC+//LLFlVUdW7du5ejRo7Rv3977WE5ODuvXr+e5557D4XBgt9strLBqiouL4+KLL2b37t3l/t4BNUckNDSUDh06sHr1au9jbreb1atXa5xXKiXDMBg3bhwfffQRa9as4cILL7S6pIDidrtxOBxWl1GlXHvttfz0009s27bNe3Ts2JERI0awbds2hRA/SUtLY8+ePdSrV6/c3zugOiIAEydOZNSoUXTs2JHOnTsze/Zs0tPTueOOO6wurUpJS0vLk6z37t3Ltm3bqFGjBg0bNrSwsqpl7NixvPPOO3z88cdER0fzxx9/ABAbG0tERITF1VUtU6ZMoV+/fjRs2JDTp0/zzjvv8OWXX/L5559bXVqVEh0dnW+OU2RkJDVr1tTcpzL0l7/8hRtvvJFGjRpx6NAhHnvsMex2O8OHDy/3WgIuiAwdOpTk5GQeffRR/vjjD9q2bcuKFSvyTWCV8/Ptt9/Ss2dP79cTJ04EYNSoUbz55psWVVX1vPjiiwD06NEjz+Nz584lMTGx/Auqwo4ePcrtt9/O4cOHiY2NpXXr1nz++ef07t3b6tJESuzAgQMMHz6c48ePEx8fz5VXXsk333xDfHx8udcScPuIiIiISMURUHNEREREpGJREBERERHLKIiIiIiIZRRERERExDIKIiIiImIZBRERERGxjIKIiIiIWEZBRERERCyjICIiIiKWURARERERyyiIiIiIiGUURERERMQy/w96eck6CaTKkgAAAABJRU5ErkJggg=="/&gt;
&lt;p&gt;&lt;pre&gt;In [2]&lt;/pre&gt;&lt;/p&gt;&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;hello&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;pre&gt;hello
&lt;/pre&gt;
</content><category term="专业笔记"/><category term="numerical"/><category term="non-Markovian"/></entry><entry><title>在博客中嵌入 JavaScript 之 Plotly.js</title><link href="https://zqw.ink/2024-10-26-coding-plotlyjs.html" rel="alternate"/><published>2024-10-26T00:00:00+08:00</published><updated>2024-10-26T00:00:00+08:00</updated><author><name>ZQW</name></author><id>tag:zqw.ink,2024-10-26:/2024-10-26-coding-plotlyjs.html</id><summary type="html">&lt;script src="https://unpkg.com/mathjs@13.2.0/lib/browser/math.js"&gt;&lt;/script&gt;
&lt;script src="https://cdnjs.cloudflare.com/ajax/libs/plotly.js/2.35.0/plotly.min.js"&gt;&lt;/script&gt;
&lt;form id="form", class="img-like"&gt;
  &lt;label for="eq"&gt;Enter an equation: f(x)=&lt;/label&gt;
  &lt;input type="text" id="eq" value="sin(x)" /&gt;
  &lt;input type="submit" value="Draw" /&gt;
&lt;/form&gt;
&lt;div id="plot" class="img-like"&gt;&lt;/div&gt;
&lt;script&gt;

        window.MathJax.loader = { load: ['output/svg'] };
        window.MathJax.startup = {
            ready() {
                MathJax.startup.defaultReady();
                draw("plot");
            }
        }

async function draw(idToPlot) {
    try {
        // compile the expression once
        const expression = document.getElementById('eq').value;
        const expr = math.compile(expression);

        // evaluate the expression repeatedly for different values of x
        const …&lt;/script&gt;</summary><content type="html">&lt;script src="https://unpkg.com/mathjs@13.2.0/lib/browser/math.js"&gt;&lt;/script&gt;
&lt;script src="https://cdnjs.cloudflare.com/ajax/libs/plotly.js/2.35.0/plotly.min.js"&gt;&lt;/script&gt;
&lt;form id="form", class="img-like"&gt;
  &lt;label for="eq"&gt;Enter an equation: f(x)=&lt;/label&gt;
  &lt;input type="text" id="eq" value="sin(x)" /&gt;
  &lt;input type="submit" value="Draw" /&gt;
&lt;/form&gt;
&lt;div id="plot" class="img-like"&gt;&lt;/div&gt;
&lt;script&gt;

        window.MathJax.loader = { load: ['output/svg'] };
        window.MathJax.startup = {
            ready() {
                MathJax.startup.defaultReady();
                draw("plot");
            }
        }

async function draw(idToPlot) {
    try {
        // compile the expression once
        const expression = document.getElementById('eq').value;
        const expr = math.compile(expression);

        // evaluate the expression repeatedly for different values of x
        const xValues = math.range(-10, 10, 0.1).toArray();
        const yValues = xValues.map(function (x) {
            return expr.evaluate({ x: x })
        });

        // render the plot using plotly
        const trace1 = {
            x: xValues,
            y: yValues,
            type: 'scatter'
        };
        const layout = {
            title: 'Plot Example',
            xaxis: {title: {text: '$x$'},
			        showgrid: false,
					// linecolor: 'blue',
					// zerolinecolor: 'red'
					},
            yaxis: {title: {text: '$f(x)$'}, showgrid: false},
			paper_bgcolor: "rgba(255, 200, 200, 0)",
			plot_bgcolor: "rgba(200, 200, 255, 0)",
			gridcolor:"rgba(0, 0, 255, 1)",
			autosize: true
        };
        const config = {
            responsive: false,
        };

		await Plotly.newPlot(idToPlot, [trace1], layout, config);
        MathJax.typesetPromise();
    }
    catch (err) {
        console.error(err)
        alert(err)
    }
};

document.getElementById('form').onsubmit = function (event) {
    event.preventDefault()
    draw("plot")
};
&lt;/script&gt;
&lt;h2 id="javascript-code"&gt;JavaScript Code&lt;/h2&gt;
&lt;pre&gt;&lt;code class="language-javascript"&gt;
        window.MathJax.loader = { load: ['output/svg'] };
        window.MathJax.startup = {
            ready() {
                MathJax.startup.defaultReady();
                draw(&amp;quot;plot&amp;quot;);
            }
        }

async function draw(idToPlot) {
    try {
        // compile the expression once
        const expression = document.getElementById('eq').value;
        const expr = math.compile(expression);

        // evaluate the expression repeatedly for different values of x
        const xValues = math.range(-10, 10, 0.1).toArray();
        const yValues = xValues.map(function (x) {
            return expr.evaluate({ x: x })
        });

        // render the plot using plotly
        const trace1 = {
            x: xValues,
            y: yValues,
            type: 'scatter'
        };
        const layout = {
            title: 'Plot Example',
            xaxis: {title: {text: '$x$'},
			        showgrid: false,
					// linecolor: 'blue',
					// zerolinecolor: 'red'
					},
            yaxis: {title: {text: '$f(x)$'}, showgrid: false},
			paper_bgcolor: &amp;quot;rgba(255, 200, 200, 0)&amp;quot;,
			plot_bgcolor: &amp;quot;rgba(200, 200, 255, 0)&amp;quot;,
			gridcolor:&amp;quot;rgba(0, 0, 255, 1)&amp;quot;,
			autosize: true
        };
        const config = {
            responsive: false,
        };

		await Plotly.newPlot(idToPlot, [trace1], layout, config);
        MathJax.typesetPromise();
    }
    catch (err) {
        console.error(err)
        alert(err)
    }
};

document.getElementById('form').onsubmit = function (event) {
    event.preventDefault()
    draw(&amp;quot;plot&amp;quot;)
};
&lt;/code&gt;&lt;/pre&gt;
&lt;h2 id="reference"&gt;Reference&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://mathjs.org/examples/browser/plot.html.html"&gt;https://mathjs.org/examples/browser/plot.html.html&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/plotly/plotly.js/pull/6073"&gt;https://github.com/plotly/plotly.js/pull/6073&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;ChatGPT 4o&lt;/li&gt;
&lt;/ul&gt;
</content><category term="软件使用"/><category term="javascript"/><category term="plotly"/></entry><entry><title>博客第二次改版的说明及一些笔记</title><link href="https://zqw.ink/2024-10-24-pelican_blog.html" rel="alternate"/><published>2024-10-24T00:00:00+08:00</published><updated>2024-10-24T00:00:00+08:00</updated><author><name>ZQW</name></author><id>tag:zqw.ink,2024-10-24:/2024-10-24-pelican_blog.html</id><summary type="html">
&lt;ul&gt;
&lt;li&gt;&lt;a href="#%E5%8D%87%E7%BA%A7%E8%AF%B4%E6%98%8E"&gt;升级说明&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#%E5%8D%87%E7%BA%A7%E5%8D%9A%E5%AE%A2%E8%BF%87%E7%A8%8B%E4%B8%AD%E7%9A%84%E7%AC%94%E8%AE%B0%E7%94%B1-chatgpt-%E7%94%9F%E6%88%90"&gt;升级博客过程中的笔记(由 ChatGPT 生成)&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#%E7%B1%BB%E5%9E%8B%E6%B3%A8%E8%A7%A3"&gt;类型注解&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#itertoolschain"&gt;&lt;code&gt;itertools.chain&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#%E7%A4%BA%E4%BE%8B%E4%BB%A3%E7%A0%81%E4%BD%BF%E7%94%A8-%EF%B8%8F-multiprocessingqueue-%E5%AE%9E%E7%8E%B0%E7%94%9F%E4%BA%A7%E8%80%85-%E6%B6%88%E8%B4%B9"&gt;示例代码：使用 🛠️ multiprocessing.Queue 实现生产者-消费&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#%E7%A4%BA%E4%BE%8B%E4%BB%A3%E7%A0%81%E4%BD%BF%E7%94%A8--while-true-%E5%AE%9E%E7%8E%B0%E6%97%A0%E9%99%90%E5%BE%AA%E7%8E%AF%E7%9A%84%E5%BA%94%E7%94%A8"&gt;示例代码：使用 🔄 while True 实现无 …&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;</summary><content type="html">
&lt;ul&gt;
&lt;li&gt;&lt;a href="#%E5%8D%87%E7%BA%A7%E8%AF%B4%E6%98%8E"&gt;升级说明&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#%E5%8D%87%E7%BA%A7%E5%8D%9A%E5%AE%A2%E8%BF%87%E7%A8%8B%E4%B8%AD%E7%9A%84%E7%AC%94%E8%AE%B0%E7%94%B1-chatgpt-%E7%94%9F%E6%88%90"&gt;升级博客过程中的笔记(由 ChatGPT 生成)&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#%E7%B1%BB%E5%9E%8B%E6%B3%A8%E8%A7%A3"&gt;类型注解&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#itertoolschain"&gt;&lt;code&gt;itertools.chain&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#%E7%A4%BA%E4%BE%8B%E4%BB%A3%E7%A0%81%E4%BD%BF%E7%94%A8-%EF%B8%8F-multiprocessingqueue-%E5%AE%9E%E7%8E%B0%E7%94%9F%E4%BA%A7%E8%80%85-%E6%B6%88%E8%B4%B9"&gt;示例代码：使用 🛠️ multiprocessing.Queue 实现生产者-消费&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#%E7%A4%BA%E4%BE%8B%E4%BB%A3%E7%A0%81%E4%BD%BF%E7%94%A8--while-true-%E5%AE%9E%E7%8E%B0%E6%97%A0%E9%99%90%E5%BE%AA%E7%8E%AF%E7%9A%84%E5%BA%94%E7%94%A8"&gt;示例代码：使用 🔄 while True 实现无限循环的应用&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#1-%E5%AE%9E%E7%8E%B0%E7%94%A8%E6%88%B7%E8%BE%93%E5%85%A5%E9%AA%8C%E8%AF%81"&gt;1. 实现用户输入验证&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#2-%E6%9C%8D%E5%8A%A1%E5%99%A8%E7%9B%91%E5%90%AC-%EF%B8%8F"&gt;2. 服务器监听 🖥️&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#3-%E5%A4%9A%E8%BF%9B%E7%A8%8B%E7%9A%84%E4%BB%BB%E5%8A%A1%E5%88%86%E9%85%8D-"&gt;3. 多进程的任务分配 👥🔄&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#%E5%8A%A8%E6%80%81%E5%AF%BC%E5%85%A5%E7%9A%84%E4%BD%BF%E7%94%A8%E5%9C%BA%E6%99%AF"&gt;动态导入的使用场景&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#getattr-%E7%9A%84%E7%94%A8%E6%B3%95"&gt;&lt;code&gt;getattr()&lt;/code&gt; 的用法&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#%E7%A4%BA%E4%BE%8B%E4%BB%A3%E7%A0%81"&gt;示例代码&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#%E6%B3%A8%E6%84%8F%E4%BA%8B%E9%A1%B9"&gt;注意事项&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#%E4%BD%BF%E7%94%A8%E6%B3%A8%E6%84%8F%E4%BA%8B%E9%A1%B9-%EF%B8%8F"&gt;使用注意事项 ⚠️&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#acknowledge"&gt;Acknowledge&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="升级说明"&gt;升级说明&lt;/h2&gt;
&lt;p&gt;最近终于能抽出一些时间, 打算把博客升级一下, 修复之前的一些 bug.&lt;br /&gt;
但是发现之前写的程序很乱. 而且当时水平不如现在, 程序思路很乱.&lt;br /&gt;
这次过了两年多, 决定使用 &lt;a href="https://getpelican.com/"&gt;&lt;code&gt;Pelican&lt;/code&gt;&lt;/a&gt; 生成, 然后再使用一些插件, 自己写一些插件, 把原来的主题移植过来. 就成为了现在呈现的版本.&lt;/p&gt;
&lt;p&gt;之前自己写静态博客生成器原因是:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;本站的需求比较简单&lt;/li&gt;
&lt;li&gt;想要练习写程序&lt;/li&gt;
&lt;li&gt;Hexo 等, 更新之后有时会产生一些兼容问题&lt;/li&gt;
&lt;li&gt;难以随心所欲的修改博客的样式, 添加一些新的页面, 组件&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;现在使用 &lt;a href="https://getpelican.com/"&gt;&lt;code&gt;Pelican&lt;/code&gt;&lt;/a&gt; 的原因是&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;练习写程序. 由于博客源文件中有一些格式比较特别, 所有要自己设置一下. 这个过程中了解了 &lt;a href="https://getpelican.com/"&gt;&lt;code&gt;Pelican&lt;/code&gt;&lt;/a&gt; 的插件机制, 学些到了&lt;a href="#%E5%8D%87%E7%BA%A7%E5%8D%9A%E5%AE%A2%E8%BF%87%E7%A8%8B%E4%B8%AD%E7%9A%84%E7%AC%94%E8%AE%B0%E7%94%B1-chatgpt-%E7%94%9F%E6%88%90"&gt;许多知识&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;由于现在会自己写插件, 所以兼容行问题可以自己解决了. 同时也学会了自己写主题, 可以随心所欲的修改博客的样式.&lt;/li&gt;
&lt;li&gt;之前的需求都实现了,同时还可用获得 &lt;a href="https://getpelican.com/"&gt;&lt;code&gt;Pelican&lt;/code&gt;&lt;/a&gt; 的好处. 比如: 许许多多的主题, 丰富的插件(自己写也很方便).&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="升级博客过程中的笔记由-chatgpt-生成"&gt;升级博客过程中的笔记(由 ChatGPT 生成)&lt;/h2&gt;
&lt;h3 id="类型注解"&gt;类型注解&lt;/h3&gt;
&lt;p&gt;&lt;code&gt;Tuple[str, ...]：&lt;/code&gt; 这是类型注解，表示 &lt;code&gt;mandatory_properties&lt;/code&gt; 的类型是一个字符串元组（tuple），并且元组中的元素类型是字符串（str）。... 表示元组的长度是可变的，可以包含任意数量的字符串。&lt;/p&gt;
&lt;h3 id="itertoolschain"&gt;&lt;code&gt;itertools.chain&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;&lt;code&gt;itertools.chain&lt;/code&gt; 是 🐍 &lt;code&gt;Python&lt;/code&gt; 标准库 &lt;code&gt;itertools&lt;/code&gt; 模块中的一个函数，用于将多个可迭代对象🔗连接在一起，生成一个连续的单个迭代器。它可以接受任意数量的可迭代对象，并依次迭代每个可迭代对象的元素，就像将它们“链接”成一个整体。&lt;/p&gt;
&lt;h3 id="示例代码使用--multiprocessingqueue-实现生产者-消费"&gt;示例代码：使用 🛠️ multiprocessing.Queue 实现生产者-消费&lt;/h3&gt;
&lt;pre&gt;&lt;code class="language-python"&gt;import multiprocessing  # 🛠️ 导入多进程模块
import time  # ⏳ 导入时间模块

def producer(queue):  # 🏭 生产者函数
    for i in range(5):
        print(f&amp;quot;Producing item {i}&amp;quot;)  # 🛠️ 生产物品
        queue.put(i)  # 📥 将物品放入队列
        time.sleep(1)  # ⏱️ 延时 1 秒

def consumer(queue):  # 🛍️ 消费者函数
    while True:
        item = queue.get()  # 取出队列中的一个元素 📤
        if item is None:  # 接收到 None 表示生产者已结束 🚫
            break
        print(f&amp;quot;Consuming item {item}&amp;quot;)  # 🛠️ 消费物品

if __name__ == &amp;quot;__main__&amp;quot;:
    queue = multiprocessing.Queue()  # 📦 创建队列

    # 创建生产者进程和消费者进程 👥
    producer_process = multiprocessing.Process(target=producer, args=(queue,))
    consumer_process = multiprocessing.Process(target=consumer, args=(queue,))

    # 启动生产者和消费者进程 ▶️
    producer_process.start()
    consumer_process.start()

    # 等待生产者完成 ⏳
    producer_process.join()

    # 生产者结束后，向队列中放入一个 None，通知消费者退出 🚫
    queue.put(None)

    # 等待消费者完成 ⏳
    consumer_process.join()

    print(&amp;quot;Main process is finishing.&amp;quot;)  # 🎬 主进程结束
&lt;/code&gt;&lt;/pre&gt;
&lt;h3 id="示例代码使用--while-true-实现无限循环的应用"&gt;示例代码：使用 🔄 while True 实现无限循环的应用&lt;/h3&gt;
&lt;p&gt;&lt;code&gt;while True:&lt;/code&gt; 是一个常见的无限循环结构，广泛应用于需要持续运行、持续监听或者重复执行某项任务的场景中。以下是几个使用 &lt;code&gt;while True:&lt;/code&gt; 的实际例子：&lt;/p&gt;
&lt;h4 id="1-实现用户输入验证"&gt;1. 实现用户输入验证&lt;/h4&gt;
&lt;p&gt;在用户输入中，我们可以用 &lt;code&gt;while True:&lt;/code&gt; 来不断请求用户输入，直到输入满足条件为止：&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-python"&gt;while True:  # 🔄 无限循环请求用户输入
    user_input = input(&amp;quot;Enter a number (q to quit): &amp;quot;)  # 📥 用户输入
    if user_input == &amp;quot;q&amp;quot;:
        print(&amp;quot;Quitting...&amp;quot;)  # 🚪 退出程序
        break
    try:
        number = int(user_input)
        print(f&amp;quot;You entered: {number}&amp;quot;)
    except ValueError:
        print(&amp;quot;Invalid input, please enter a number.&amp;quot;)  # ⚠️ 输入无效
&lt;/code&gt;&lt;/pre&gt;
&lt;h4 id="2-服务器监听-"&gt;2. 服务器监听 🖥️&lt;/h4&gt;
&lt;p&gt;在服务器应用程序中，我们可以用 &lt;code&gt;while True:&lt;/code&gt; 来持续监听请求，例如一个简单的 TCP 服务器：&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-python"&gt;import socket  # 🌐 导入套接字模块

server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)  # 创建服务器套接字
server_socket.bind(('localhost', 8080))  # 绑定地址和端口
server_socket.listen(5)  # 监听连接
print(&amp;quot;Server is listening on port 8080...&amp;quot;)  # 🖥️ 服务器监听

while True:  # 🔄 持续监听客户端连接
    client_socket, address = server_socket.accept()  # 接受客户端连接
    print(f&amp;quot;Connection from {address} has been established.&amp;quot;)  # 🤝 连接建立
    client_socket.send(bytes(&amp;quot;Welcome to the server!&amp;quot;, &amp;quot;utf-8&amp;quot;))  # 发送欢迎消息
    client_socket.close()  # 关闭客户端连接
&lt;/code&gt;&lt;/pre&gt;
&lt;h4 id="3-多进程的任务分配-"&gt;3. 多进程的任务分配 👥🔄&lt;/h4&gt;
&lt;p&gt;在某些场景下，可以使用 &lt;code&gt;while True:&lt;/code&gt; 来持续从队列中取任务并进行处理，如生产者-消费者模型：&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-python"&gt;import multiprocessing
import time

def worker(queue):  # 工作者函数
    while True:
        task = queue.get()  # 从队列中取任务 📤
        if task is None:  # 任务队列结束标志 🚫
            break
        print(f&amp;quot;Processing task: {task}&amp;quot;)  # 🔧 处理任务
        time.sleep(1)  # ⏱️ 模拟处理时间

if __name__ == &amp;quot;__main__&amp;quot;:
    task_queue = multiprocessing.Queue()  # 📦 创建任务队列

    # 添加任务 📋
    for i in range(5):
        task_queue.put(f&amp;quot;Task {i}&amp;quot;)

    # 添加结束标志 🚫
    task_queue.put(None)

    # 启动工作进程 ▶️
    process = multiprocessing.Process(target=worker, args=(task_queue,))
    process.start()

    # 等待进程完成 ⏳
    process.join()

    print(&amp;quot;All tasks are completed.&amp;quot;)  # 🎬 所有任务完成
&lt;/code&gt;&lt;/pre&gt;
&lt;h3 id="动态导入的使用场景"&gt;动态导入的使用场景&lt;/h3&gt;
&lt;p&gt;&lt;code&gt;__import__()&lt;/code&gt; 是 Python 中用于动态导入模块的内置函数，通常用于模块名在运行时才确定的情况，提供了一种灵活的导入机制。它在以下场景中非常有用：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;插件系统&lt;/strong&gt;：可以根据用户需求或配置文件选择性地导入某些模块。例如，某些插件可能需要在运行时按需加载。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;模块管理&lt;/strong&gt;：当模块的名称是动态生成或用户输入的，使用 &lt;code&gt;__import__()&lt;/code&gt; 可以让程序根据名字导入相应的模块。&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;示例代码：&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-python"&gt;module_name = &amp;quot;math&amp;quot;  # 模块名可能从用户输入或配置文件中获取
module = __import__(module_name)  # 动态导入模块

# 使用导入的模块
print(module.sqrt(16))  # 输出: 4.0
&lt;/code&gt;&lt;/pre&gt;
&lt;h3 id="getattr-的用法"&gt;&lt;code&gt;getattr()&lt;/code&gt; 的用法&lt;/h3&gt;
&lt;p&gt;&lt;code&gt;cls = getattr(module, cls_name)&lt;/code&gt; 是 Python 中一种动态获取属性的方式，用于从模块或对象中获取名称为 &lt;code&gt;cls_name&lt;/code&gt; 的属性。这里 &lt;code&gt;getattr()&lt;/code&gt; 函数被用来从 &lt;code&gt;module&lt;/code&gt; 中获取名为 &lt;code&gt;cls_name&lt;/code&gt; 的类，变量 &lt;code&gt;cls&lt;/code&gt; 最终会指向该类。&lt;/p&gt;
&lt;h4 id="示例代码"&gt;示例代码&lt;/h4&gt;
&lt;p&gt;假设你有一个模块 &lt;code&gt;shapes&lt;/code&gt;，其中定义了两个类 &lt;code&gt;Circle&lt;/code&gt; 和 &lt;code&gt;Square&lt;/code&gt;。你可以通过字符串名称动态地从模块中获取类。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;shapes.py&lt;/code&gt; 模块：&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-python"&gt;# shapes.py
class Circle:
    def draw(self):
        print(&amp;quot;Drawing a Circle&amp;quot;)

class Square:
    def draw(self):
        print(&amp;quot;Drawing a Square&amp;quot;)
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;主代码：&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-python"&gt;import shapes

# 动态获取类名
cls_name = &amp;quot;Circle&amp;quot;
cls = getattr(shapes, cls_name)

# cls 现在指向 Circle 类，可以创建其实例
shape = cls()
shape.draw()  # 输出: Drawing a Circle
&lt;/code&gt;&lt;/pre&gt;
&lt;h4 id="注意事项"&gt;注意事项&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;属性不存在时引发异常&lt;/strong&gt;：如果 &lt;code&gt;name&lt;/code&gt; 不存在且未提供 &lt;code&gt;default&lt;/code&gt; 参数，&lt;code&gt;getattr()&lt;/code&gt; 会引发 &lt;code&gt;AttributeError&lt;/code&gt;。为避免异常，可以传递一个默认值。&lt;pre&gt;&lt;code class="language-python"&gt;cls = getattr(module, &amp;quot;NonExistentClass&amp;quot;, None)
if cls is None:
    print(&amp;quot;Class not found&amp;quot;)
&lt;/code&gt;&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;安全性问题&lt;/strong&gt;：使用 &lt;code&gt;getattr()&lt;/code&gt; 获取属性需要特别小心，因为它可以动态地访问任意属性或方法，可能会带来安全性风险。如果用户能够控制传递给 &lt;code&gt;getattr()&lt;/code&gt; 的字符串，他们可以试图访问不应暴露的内部类或方法。因此，在使用时要确保输入是可信的或经过适当的验证。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="使用注意事项-"&gt;使用注意事项 ⚠️&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;break&lt;/code&gt; 退出&lt;/strong&gt;：&lt;code&gt;while True:&lt;/code&gt; 是无限循环，所以为了避免程序一直运行下去，通常需要使用 &lt;code&gt;break&lt;/code&gt; 来在合适的条件下跳出循环。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;性能问题 🖥️&lt;/strong&gt;：在某些情况下，使用 &lt;code&gt;while True:&lt;/code&gt; 可能会导致程序占用大量 CPU 资源，因此在循环中应该使用适当的延时（如 &lt;code&gt;time.sleep()&lt;/code&gt; ⏱️) 或等待机制来减少 CPU 的占用。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;结束条件 🚪&lt;/strong&gt;：务必为循环设置合理的结束条件，避免程序进入死循环导致资源浪费。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;code&gt;while True:&lt;/code&gt; 是一种简单但非常强大的循环结构，广泛应用于需要不断重复某些操作的场景，如输入验证、监听服务器、生产者-消费者模型等。它可以确保程序不断运行，直到某个条件触发 &lt;code&gt;break&lt;/code&gt; 退出循环，从而灵活地控制程序的执行流程。&lt;/p&gt;
&lt;h2 id="acknowledge"&gt;Acknowledge&lt;/h2&gt;
&lt;p&gt;ChatGPT&lt;/p&gt;
</content><category term="软件使用"/><category term="blog"/><category term="python"/><category term="pelican"/></entry><entry><title>旧版“关于”存档（存档于2026-01-03）</title><link href="https://zqw.ink/2024-10-23-coding-about_page_archive.html" rel="alternate"/><published>2024-10-23T00:00:00+08:00</published><updated>2024-10-23T00:00:00+08:00</updated><author><name>ZQW</name></author><id>tag:zqw.ink,2024-10-23:/2024-10-23-coding-about_page_archive.html</id><summary type="html">
&lt;p&gt;本博客于 2025-12-31 进行第三次升级升级。此为升级前的一些存档。&lt;/p&gt;
&lt;h2 id="关于我"&gt;关于我&lt;/h2&gt;
&lt;h3 id="联系"&gt;联系&lt;/h3&gt;
&lt;p&gt;请 E-mail: zeqing6688@126.com&lt;/p&gt;
&lt;h2 id="关于本站"&gt;关于本站&lt;/h2&gt;
&lt;p&gt;本站内容为: 只对自己负责的 …&lt;/p&gt;</summary><content type="html">
&lt;p&gt;本博客于 2025-12-31 进行第三次升级升级。此为升级前的一些存档。&lt;/p&gt;
&lt;h2 id="关于我"&gt;关于我&lt;/h2&gt;
&lt;h3 id="联系"&gt;联系&lt;/h3&gt;
&lt;p&gt;请 E-mail: zeqing6688@126.com&lt;/p&gt;
&lt;h2 id="关于本站"&gt;关于本站&lt;/h2&gt;
&lt;p&gt;本站内容为: 只对自己负责的学习笔记, 以及生活的牢骚.&lt;/p&gt;
&lt;p&gt;本站是由 &lt;a href="https://getpelican.com/"&gt;Pelican&lt;/a&gt; 生成的静态博客, 托管于&lt;br /&gt;
&lt;a href="https://github.com/phyer219/phyer219.github.io"&gt;GithubPages&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;文章的源格式：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;org-mode 的格式, 由 &lt;a href="https://github.com/phyer219/phyer219.github.io.2.0/tree/main/zqwblog/renderer"&gt;zqwblog/renderer&lt;/a&gt; 渲染成 html. 由于是自己的写的包, 还有很多不完善的地方. 重复造轮子的目的是练习写程序.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;markdown, 由包 &lt;a href="https://python-markdown.github.io/"&gt;python-markdown&lt;/a&gt; 渲染.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;文章中的公式由 &lt;a href="https://www.mathjax.org/"&gt;MathJax&lt;/a&gt; 渲染.&lt;/p&gt;
&lt;p&gt;文章中的代码块由 &lt;a href="https://highlightjs.org/"&gt;highlight.js&lt;/a&gt; 渲染.&lt;/p&gt;
&lt;h2 id="readme-存档"&gt;README 存档&lt;/h2&gt;
&lt;p&gt;Generate by &lt;a href="https://getpelican.com/"&gt;Pelican&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Use Plugins:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/pelican-plugins/sitemap"&gt;sitemap&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Use package:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://github.com/pallets/jinja/"&gt;jinja2&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://python-markdown.github.io/"&gt;Python-Markdown&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://github.com/sgryjp/markdown_math_escape"&gt;markdown_math_escape&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://github.com/jupyter/nbformat"&gt;nbformat&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
</content><category term="软件使用"/><category term="blog"/><category term="about"/><category term="archive"/></entry><entry><title>利用虚时传播子求解定态散射问题</title><link href="https://zqw.ink/2024-04-24-physics-propagator_scattering.html" rel="alternate"/><published>2024-04-24T00:00:00+08:00</published><updated>2024-04-24T00:00:00+08:00</updated><author><name>ZQW</name></author><id>tag:zqw.ink,2024-04-24:/2024-04-24-physics-propagator_scattering.html</id><summary type="html">&lt;!-- toc --&gt;
&lt;!-- more --&gt;
&lt;h1 id="利用虚时传播子求解定态散射问题"&gt;利用虚时传播子求解定态散射问题&lt;/h1&gt;
&lt;p&gt;本文考虑一维问题&lt;/p&gt;
&lt;h2 id="传播子propagator"&gt;传播子(propagator)&lt;/h2&gt;
&lt;p&gt;如果 $\hat{H}$ 不含时，虚时传播子为&lt;br /&gt;
$$
\begin{align}
  K(x, \tau; x', 0) = \langle x | e …&lt;/p&gt;</summary><content type="html">&lt;!-- toc --&gt;
&lt;!-- more --&gt;
&lt;h1 id="利用虚时传播子求解定态散射问题"&gt;利用虚时传播子求解定态散射问题&lt;/h1&gt;
&lt;p&gt;本文考虑一维问题&lt;/p&gt;
&lt;h2 id="传播子propagator"&gt;传播子(propagator)&lt;/h2&gt;
&lt;p&gt;如果 $\hat{H}$ 不含时，虚时传播子为&lt;br /&gt;
$$
\begin{align}
  K(x, \tau; x', 0) = \langle x | e^{-\hat{H}\tau} | x'\rangle
  = \sum_n e^{-E_n\tau}\langle x| n\rangle \langle n| x'\rangle
\end{align}
$$&lt;br /&gt;
其中 $|n\rangle$ 是 $\hat{H}$ 的本征态&lt;br /&gt;
$$
\begin{align}
  \hat H | n\rangle = E_n | n\rangle
\end{align}
$$&lt;/p&gt;
&lt;h2 id="散射问题"&gt;散射问题&lt;/h2&gt;
$$

\begin{align}
  (\hat{H} + \hat{V} )|\phi\rangle = E|\phi\rangle
\end{align}

$$&lt;p&gt;移项并投影到 $\hat{H}$ 的本征态 $|n\rangle$ 上&lt;br /&gt;
$$
\begin{align}
  \langle n|(\hat{H} - E )|\phi\rangle = -\langle n|\hat{V}|\phi\rangle
\end{align}
$$&lt;br /&gt;
$$
\begin{align}
  \langle n|\phi\rangle =&amp; -\frac{1}{E_n - E }\langle n|\hat{V}|\phi\rangle \\
  =&amp; -\frac{1}{E_n - E }\langle n|\hat{V}|\phi\rangle \\
  =&amp;-\int_0^{\infty} \mathrm{d}\tau \, e^{-(E_n - E)\tau}\langle n|V|\phi\rangle \\
  =&amp;-\int_0^{\infty} \mathrm{d}\tau \, e^{E\tau}\cdot e^{-E_n \tau}\langle n|V|\phi\rangle
\end{align}
$$&lt;br /&gt;
最后一步 Schwinger parametrization 需要散射能量 &lt;eq&gt;E&lt;/eq&gt; 小于 $E_n$.&lt;/p&gt;
&lt;p&gt;散射波函数可以写成&lt;br /&gt;
$$
\begin{align}
  \phi(x) = \langle x|\phi\rangle
  = \sum_n \langle x | n \rangle \langle n|\phi\rangle
\end{align}
$$&lt;br /&gt;
代入我们之前算得的 $\langle n |\phi\rangle$&lt;br /&gt;
$$
\begin{align}
  \phi(x) =&amp; -\int_0^{\infty} \mathrm{d}\tau \, e^{E\tau}\cdot
  \sum_n e^{-E_n \tau}  \langle x | n \rangle \langle n|V|\phi\rangle \\
  =&amp; -\int_0^{\infty} \mathrm{d}\tau \, e^{E\tau}\cdot
  \int \mathrm{d} x'\,
  \sum_n e^{-E_n \tau}  \langle x | n \rangle \langle n|x'\rangle\langle x'|V|\phi\rangle
\end{align}
$$&lt;br /&gt;
会发现其中出现了传播子.就得到&lt;br /&gt;
$$
\begin{align}
  \phi(x) =&amp; -\int_0^{\infty} \mathrm{d}\tau \, e^{E\tau}\cdot
  \sum_n e^{-E_n \tau}  \langle x | n \rangle \langle n|V|\phi\rangle \\
  =&amp; -\int_0^{\infty} \mathrm{d}\tau \, e^{E\tau}\cdot
  \int \mathrm{d} x'\,
   \langle x'|V|\phi\rangle K(x, \tau; x', 0)
\end{align}
$$&lt;/p&gt;
&lt;h2 id="例-一维简谐势中接触吸引的两粒子"&gt;例: 一维简谐势中接触吸引的两粒子&lt;/h2&gt;
&lt;p&gt;通过质心相对坐标分离后，相对运动部分的哈密顿量为&lt;br /&gt;
$$
\begin{align}
  \hat{H} +\hat{V} = \frac{\hat{p}^2}{2\mu} + \frac{\mu}{2}\omega^2 \hat{x}^2 + \hat{V}
\end{align}
$$&lt;br /&gt;
其中 $\hat{V}$ 是接触相吸引互作用，&lt;br /&gt;
$$
\begin{align}
  \hat{V} |x\rangle = -g\delta(x) |x\rangle
\end{align}
$$&lt;br /&gt;
那么散射波函数为&lt;br /&gt;
$$
\begin{align}
  \phi(x)
  =&amp; -\int_0^{\infty} \mathrm{d}\tau \, e^{E\tau}\cdot
  \int \mathrm{d} x'\,
   \langle x'|V|\phi\rangle K(x, \tau; x', 0) \\
   =&amp; g \phi(0)\int_0^{\infty} \mathrm{d}\tau \, e^{E\tau}\cdot
  K(x, \tau; x', 0)
\end{align}
$$&lt;br /&gt;
其中的传播子即为一维谐振子的传播子: &lt;a href="https://en.wikipedia.org/wiki/Mehler_kernel"&gt;Mehler kernel&lt;/a&gt;。&lt;/p&gt;
&lt;h2 id="数值验证传播子"&gt;数值验证传播子&lt;/h2&gt;
&lt;pre&gt;&lt;code class="language-python"&gt;import numpy as np
import matplotlib.pyplot as plt
import scipy.integrate as integrate
from scipy.special import hermite
import math


# x = np.linspace(-3, 3)
# check hermite polynomials
# plt.plot(x, hermite(3)(x))
# plt.plot(x, 8*x**3 - 12*x, 'x')


def ho_eig(x, n, m=1, o=1):
    &amp;quot;&amp;quot;&amp;quot;harmonic oscillator eigenfunctions and eigenvalues&amp;quot;&amp;quot;&amp;quot;
    psi = 1 / np.sqrt(2**n * math.factorial(n))
    psi *= (m*o / np.pi)**(1/4)
    psi *= np.exp(-m*o * x**2 / 2)
    psi *= hermite(n)(np.sqrt(m*o) * x)
    energy = (n + 1/2) * o
    return energy, psi


# check ho_eig
# x = np.linspace(-10, 10, 1000)
# plt.plot(x, ho_eig(x, 3)[1])
# integrate.quad(lambda x:(ho_eig(x, 3)[1])**2,-10, 10)


def Mehler_kernel(x, tau, x0=0, m=1, o=1):
    &amp;quot;&amp;quot;&amp;quot;propagator of 1D harmonic oscillator, also known as Mehler kernel&amp;quot;&amp;quot;&amp;quot;
    K = np.sqrt(m*o/2/np.pi/np.sinh(o*tau))
    K *= np.exp(-(m*o*(x**2 + x0**2)*np.cosh(o*tau) - 2*x*x0)/2/np.sinh(o*tau))
    return K


# check Mehler_kernel
# x = np.linspace(-10, 10, 1000)
# for ti in [0.1, 1, 2]:
#     plt.plot(x, Mehler_kernel(x, tau=ti))
#     print(integrate.quad(lambda x:Mehler_kernel(x, tau=0.1), -5, 5))


def HO_propagator(x, tau, x0=0, m=1, o=1, cut=15):
    &amp;quot;&amp;quot;&amp;quot;1D harmonic oscillator propagator, by eigenfunction expansion&amp;quot;&amp;quot;&amp;quot;
    p = 0
    for n in range(cut):
        energy, psi = ho_eig(x, n)
        _, psi0 = ho_eig(x0, n)
        p += np.exp(-energy*tau) * psi * psi0
    return p


# compare the results of 1D harmonic oscillator propagator given by two methods
x = np.linspace(-5, 5, 1000)
for ti in [0.1, 1, 3]:
    p = plt.plot(x, Mehler_kernel(x, tau=ti), lw=2,
                 label=rf'$\tau\omega={ti}$')
    plt.plot(x[::10], HO_propagator(x, tau=ti)[::10], lw=0,
             marker='o', mec=p[0].get_color(), ms=5, mfc='none')
    print(integrate.quad(lambda x:Mehler_kernel(x, tau=0.1), -5, 5))
plt.title(r'$K(x, \tau; 0, 0)$')
plt.xlabel(r'$x/\sqrt{\hbar/(m\omega)}$')
plt.legend()
plt.savefig('HO_propagator.svg', transparent=True)

&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;img src="./2024-04-24-physics-propagator_scattering/HO_propagator.svg" alt="HO_propagator" /&gt;&lt;/p&gt;
&lt;h2 id="reference"&gt;Reference&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Shina Tan 的 lecture note.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://en.wikipedia.org/wiki/Propagator"&gt;Wikipedia: Propagator&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://en.wikipedia.org/wiki/Mehler_kernel"&gt;Wikipedia: Mehler kernel&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://en.m.wikipedia.org/wiki/Schwinger_parametrization"&gt;Wikipedia: Schwinger parametrization&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://physics.stackexchange.com/questions/20797/differentiating-propagator-greens-function-correlation-function-etc/476630#476630"&gt;Physics Stackexchange: Differentiating Propagator, Green's function, Correlation function, etc&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://physics.stackexchange.com/questions/209846/dirac-delta-in-definition-of-green-function"&gt;Physics Stackexchange: Dirac Delta in definition of Green function&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</content><category term="专业笔记"/><category term="physics"/><category term="scattering"/><category term="propagator"/></entry><entry><title>原子自发辐射与主方程</title><link href="https://zqw.ink/2023-12-31-physics-tls_master_eq.html" rel="alternate"/><published>2023-12-31T00:00:00+08:00</published><updated>2023-12-31T00:00:00+08:00</updated><author><name>ZQW</name></author><id>tag:zqw.ink,2023-12-31:/2023-12-31-physics-tls_master_eq.html</id><summary type="html">&lt;!-- toc --&gt;
&lt;!-- more --&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#%E5%8E%9F%E5%AD%90%E8%87%AA%E5%8F%91%E8%BE%90%E5%B0%84%E4%B8%8E%E4%B8%BB%E6%96%B9%E7%A8%8B"&gt;原子自发辐射与主方程&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#%E6%A8%A1%E5%9E%8B"&gt;模型&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#%E7%B2%97%E7%B2%92%E5%8C%96%E7%9A%84%E6%97%B6%E9%97%B4%E6%BC%94%E5%8C%96-coarse-grained-rate-of-variation"&gt;粗粒化的时间演化 (coarse-grained rate of variation)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#%E5%AF%B9%E7%83%AD%E5%BA%93%E7%9A%84%E5%81%87%E8%AE%BE"&gt;对热库的假设&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#%E7%83%AD%E5%BA%93%E5%BE%88%E5%A4%A7%E5%A4%84%E4%BA%8E%E5%AE%9A%E6%80%81"&gt;热库很大，处于定态&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#%E7%83%AD%E5%BA%93%E5%85%B3%E8%81%94%E6%97%B6%E9%97%B4%E5%BE%88%E7%9F%AD"&gt;热库关联时间很短&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#%E7%9C%9F%E7%A9%BA%E7%94%B5%E7%A3%81%E5%9C%BA%E4%BD%9C%E4%B8%BA%E7%83%AD%E5%BA%93"&gt;真空电磁 …&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;</summary><content type="html">&lt;!-- toc --&gt;
&lt;!-- more --&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#%E5%8E%9F%E5%AD%90%E8%87%AA%E5%8F%91%E8%BE%90%E5%B0%84%E4%B8%8E%E4%B8%BB%E6%96%B9%E7%A8%8B"&gt;原子自发辐射与主方程&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#%E6%A8%A1%E5%9E%8B"&gt;模型&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#%E7%B2%97%E7%B2%92%E5%8C%96%E7%9A%84%E6%97%B6%E9%97%B4%E6%BC%94%E5%8C%96-coarse-grained-rate-of-variation"&gt;粗粒化的时间演化 (coarse-grained rate of variation)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#%E5%AF%B9%E7%83%AD%E5%BA%93%E7%9A%84%E5%81%87%E8%AE%BE"&gt;对热库的假设&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#%E7%83%AD%E5%BA%93%E5%BE%88%E5%A4%A7%E5%A4%84%E4%BA%8E%E5%AE%9A%E6%80%81"&gt;热库很大，处于定态&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#%E7%83%AD%E5%BA%93%E5%85%B3%E8%81%94%E6%97%B6%E9%97%B4%E5%BE%88%E7%9F%AD"&gt;热库关联时间很短&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#%E7%9C%9F%E7%A9%BA%E7%94%B5%E7%A3%81%E5%9C%BA%E4%BD%9C%E4%B8%BA%E7%83%AD%E5%BA%93"&gt;真空电磁场作为热库&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#%E5%AF%B9%E7%9B%B8%E4%BA%92%E4%BD%9C%E7%94%A8%E7%9A%84%E5%81%87%E8%AE%BE"&gt;对相互作用的假设&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#%E8%BF%91%E4%BC%BC%E4%B9%8B%E5%90%8E%E7%9A%84%E7%BB%93%E6%9E%9C"&gt;近似之后的结果&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#v-%E7%9A%84%E4%B8%80%E9%98%B6%E9%A1%B9%E4%B8%BA%E9%9B%B6"&gt;&lt;eq&gt;V&lt;/eq&gt; 的一阶项为零&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#%E6%88%AA%E6%96%AD-v-%E7%9A%84%E4%BA%8C%E9%98%B6%E9%A1%B9"&gt;截断 &lt;eq&gt;V&lt;/eq&gt; 的二阶项&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#%E5%88%A9%E7%94%A8-tau-tau_c-%E6%97%B6-gtau-to-0%E6%8A%8A%E5%AF%B9-t-%E5%92%8C-t-%E7%9A%84%E7%A7%AF%E5%88%86%E8%A7%A3%E8%80%A6"&gt;利用 $\\tau \&gt;\\tau\_c$ 时 $g(\\tau) \\to 0$，把对 $t'$ 和 $t''$ 的积分解耦&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#%E5%9C%A8%E8%83%BD%E9%87%8F%E6%9C%AC%E5%BE%81%E6%80%81%E4%B8%8B%E5%86%99%E5%87%BA%E7%A7%AF%E6%8E%89-t%E5%81%9A%E4%B9%85%E6%9C%9F%E8%BF%91%E4%BC%BC"&gt;在能量本征态下写出，积掉 $t'$，做久期近似&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#reference"&gt;Reference&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h1 id="原子自发辐射与主方程"&gt;原子自发辐射与主方程&lt;/h1&gt;
&lt;h2 id="模型"&gt;模型&lt;/h2&gt;
$$

H = H_A + H_R + V

$$&lt;ul&gt;
&lt;li&gt;$H_A$ : 要研究的系统 &lt;eq&gt;A&lt;/eq&gt; 的哈密顿量， 比如原子 (Atom)。&lt;/li&gt;
&lt;li&gt;$H_R$ : 系统所处的热库 (Reservoir) &lt;eq&gt;R&lt;/eq&gt; 的哈密顿量，比如真空电磁场 (Radiation)&lt;/li&gt;
&lt;li&gt;$V = -AR$ : 系统与热库的耦合。&lt;eq&gt;A&lt;/eq&gt; 系统子空间的算符。&lt;eq&gt;R&lt;/eq&gt; 热库子空间的算符。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;对于二能级原子与真空电磁场的耦合：&lt;br /&gt;
$$
\begin{align}
H_A = \frac{\hbar}{2}\left(\omega_{ba}|b\rangle\langle b|
           - \omega_{ba}|a\rangle\langle a|\right)
\end{align}
$$&lt;br /&gt;
真空电磁场：&lt;br /&gt;
$$
\begin{align}
H_R = \sum_i \hbar \omega_i a_i^{\dagger} a_i
\end{align}
$$&lt;br /&gt;
偶极近似下，算符 &lt;eq&gt;A&lt;/eq&gt; 是原子偶极跃迁的矩阵元，算符 &lt;eq&gt;R&lt;/eq&gt; 是量子化的电场强度。具体来讲:&lt;br /&gt;
$$
\begin{align}
A =&amp; D (|a\rangle\langle b| + |b\rangle\langle a|) \\
R =&amp; \sum_i \epsilon_i (a_i - a_i^\dagger)
\end{align}
$$&lt;br /&gt;
其中 $D, \epsilon_i$ 都是系数。&lt;/p&gt;
&lt;h2 id="粗粒化的时间演化-coarse-grained-rate-of-variation"&gt;粗粒化的时间演化 (coarse-grained rate of variation)&lt;/h2&gt;
&lt;p&gt;有两个重要的时间尺度。第一个是热库的关联时间 $\tau_c$ 。第二个是系统 &lt;eq&gt;A&lt;/eq&gt; 演化的时间尺度 $T_R$。他们应当满足 $\tau_c\ll T_R$&lt;br /&gt;
主方程的时间尺度 $\Delta t$ 的量级为&lt;br /&gt;
$$
\begin{align}
\tau_c \ll \Delta t \ll T_R
\end{align}
$$&lt;br /&gt;
以下考虑相互作用绘景，任意算符 &lt;eq&gt;O&lt;/eq&gt; 在相互作用绘景中记为 $\tilde{O}(t) = e^{-\frac{1}{i\hbar} (H_A + H_R)}Oe^{\frac{1}{i\hbar} (H_A + H_R)}$ 。系统加热库的密度矩阵记为 $\rho(t)$ 。在相互作用绘景中&lt;br /&gt;
$$
\begin{align}
\tilde{\rho}(t) =&amp; e^{-\frac{1}{i\hbar} (H_A + H_R)}\rho(t)e^{\frac{1}{i\hbar} (H_A + H_R)}\\
\tilde{V}(t) =&amp; e^{-\frac{1}{i\hbar} (H_A + H_R)}Ve^{\frac{1}{i\hbar} (H_A + H_R)}\\
\tilde{A}(t) =&amp; e^{-\frac{1}{i\hbar} H_A}Ae^{\frac{1}{i\hbar} H_A}\\
\tilde{R}(t) =&amp; e^{-\frac{1}{i\hbar} H_R}Re^{\frac{1}{i\hbar} (H_R)}
\end{align}
$$&lt;br /&gt;
根据密度矩阵在相互作用绘景中的演化方程 $i\hbar \dot{\tilde{\rho}(t)} = [\tilde{V(t)}, \tilde{\rho}(t)]$， 可知在我们粗粒化的时间 &lt;eq&gt;t&lt;/eq&gt; 到 $t + \Delta t$ 内，密度矩阵的演化为&lt;br /&gt;
$$
\begin{align}
\tilde{\rho}(t + \Delta t) = \tilde{\rho}(t) + \frac{1}{i\hbar}\int_t^{t+\Delta t} dt'\,
\left[ \tilde{V}(t'), \tilde{\rho}(t') \right]
\end{align}
$$&lt;br /&gt;
我们对上式迭代一次，并把环境求偏迹掉，得到环境密度矩阵 $\tilde{\sigma}(t) = \mathrm{Tr}_R [\tilde{\rho}(t)]$ 的演化增量&lt;br /&gt;
$$
\begin{align}
\Delta\tilde{\sigma}(t) \equiv &amp;
\tilde{\sigma}(t + \Delta t) - \tilde{\sigma}(t) \\
=&amp; \frac{1}{i\hbar}\int_t^{t+\Delta t} dt'\,
\mathrm{Tr}_R\left[ \tilde{V}(t'), \tilde{\rho}(t) \right]\\
&amp; + \left(\frac{1}{i\hbar}\right)^2\int_t^{t+\Delta t} dt'\,
\int_t^{t'} dt''\,
\mathrm{Tr}_R\left[ \tilde{V}(t'), \left[\tilde{V}(t''), \tilde{\rho}(t'') \right] \right]
\end{align}
$$&lt;br /&gt;
直到上式，都是严格精确的，没有做任何近似。&lt;/p&gt;
&lt;h2 id="对热库的假设"&gt;对热库的假设&lt;/h2&gt;
&lt;h3 id="热库很大处于定态"&gt;热库很大，处于定态&lt;/h3&gt;
&lt;p&gt;热库，顾名思义，要比研究的系统 &lt;eq&gt;A&lt;/eq&gt; 大得多。把系统 &lt;eq&gt;A&lt;/eq&gt; 求偏迹掉，热库的密度矩阵记为 $\tilde{\sigma}_R(t) = \mathrm{Tr}_A [\tilde{\rho} (t)]$ 。&lt;/p&gt;
&lt;p&gt;由于热库比系统 &lt;eq&gt;A&lt;/eq&gt; 大得多，所以可以认为一直不变&lt;br /&gt;
$$
\begin{align}
\tilde{\sigma}_R(t) \approx \tilde{\sigma}_R(t) = \sigma_R
\end{align}
$$&lt;br /&gt;
其次，假设热库一直处在一个定态上，也就是说&lt;br /&gt;
$$
\begin{align}
[\sigma_R, H_R] = 0
\end{align}
$$&lt;br /&gt;
记热库的能量本征态为&lt;br /&gt;
$$
\begin{align}
H_R |\mu \rangle = E_{\mu} |\mu \rangle
\end{align}
$$&lt;br /&gt;
那么定态 $\sigma_R$ 可以展开为&lt;br /&gt;
$$
\begin{align}
\sigma_R = \sum_{\mu} p_{\mu} | \mu \rangle \langle \mu |
\end{align}
$$&lt;br /&gt;
假设 &lt;eq&gt;R&lt;/eq&gt; 在 $\sigma_R$ 上的均值为 &lt;eq&gt;0&lt;/eq&gt;&lt;br /&gt;
$$
\begin{align}
\mathrm{Tr}[\sigma_R R] = \mathrm{Tr}[\sigma_R \tilde{R}(t)]
\end{align}
$$&lt;br /&gt;
因此就有&lt;br /&gt;
$$
\begin{align}
\mathrm{Tr}_R[\tilde{V}(t')\sigma_R] = 0
\end{align}
$$&lt;/p&gt;
&lt;h3 id="热库关联时间很短"&gt;热库关联时间很短&lt;/h3&gt;
&lt;p&gt;定义热库中的算符 &lt;eq&gt;R&lt;/eq&gt; 的双时平均&lt;br /&gt;
$$
\begin{align}
g(\tau) \equiv g(t' - t'') \equiv \mathrm{Tr}\left[\sigma_R \tilde{R}(t') \tilde{R}(t'')\right]
= \mathrm{Tr}\left[\sigma_R \tilde{R}(\tau) \tilde{R}(0)\right]
\end{align}
$$&lt;br /&gt;
我们假设 $g(\tau)$ 只集中在 $\tau&lt;\tau_c$ 的范围内， 在 $\tau &gt; \tau_c$ 迅速衰减。这在热库很大是，是自然的。热库很大，能谱倾向于连续，求和在 $\tau$ 很大时，就会干涉相消。&lt;/p&gt;
&lt;h3 id="真空电磁场作为热库"&gt;真空电磁场作为热库&lt;/h3&gt;
&lt;p&gt;真空电磁场的密度矩阵为&lt;br /&gt;
$$
\begin{align}
\sigma_R = |0\rangle \langle 0|
\end{align}
$$&lt;br /&gt;
是一个温度为零的玻色场，每一个模式都处于基态，没有任何光子激发。它显然满足&lt;br /&gt;
$$
\begin{align}
\mathrm{Tr}_R[\tilde{V}(t')\sigma_R] = -\tilde{A}(t') \langle 0 |\tilde{R}(t') | 0\rangle
= -\tilde{A}(t') \sum_i \epsilon_i \langle 0 | (a_i - a_i^\dagger) | 0\rangle
= 0
\end{align}
$$&lt;br /&gt;
真空电磁场的 $g(\tau)$ 为&lt;br /&gt;
$$
\begin{align}
g(\tau) = \sum_{i} |\epsilon_i|^2 \langle 0 | a_i e^{i \omega_i\tau} a_i^{\dagger} |0\rangle
= \sum_i |\epsilon_i|^2 e^{-i\omega_i \tau}
\end{align}
$$&lt;br /&gt;
这个是可以具体算出的，但是可以看出，当 $\omega_i$ 非常密时，当 $\tau$ 大于某个值时，会由于干涉相消变成 &lt;eq&gt;0&lt;/eq&gt; 。一个用于理解的情况是，$\epsilon_i$ 是一个常数，$\omega_i$ 太密，以至于连续，求和化积分，结果就变成一个 $\delta$ 函数，只在 $\tau=0$ 时非零。&lt;/p&gt;
&lt;h2 id="对相互作用的假设"&gt;对相互作用的假设&lt;/h2&gt;
&lt;p&gt;当然是弱耦合。&lt;/p&gt;
&lt;p&gt;其次，因为是弱耦合，这也会导致系统 &lt;eq&gt;A&lt;/eq&gt; 和热库的关联&lt;br /&gt;
$$&lt;br /&gt;
\begin{align}&lt;br /&gt;
\tilde{\rho}_{\mathrm{correl}}(t) \equiv \tilde{\rho}(t)&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;\mathrm{Tr}_R [\tilde{\rho}(t)]\otimes  \mathrm{Tr}_A [\tilde{\rho}(t)]&lt;br /&gt;
\end{align}&lt;br /&gt;
$$
在粗粒化的时间尺度下($\tau_c \ll \Delta t$)只作为高阶项贡献（详见书），因此可以将总的密度矩阵近似为直积
$$&lt;br /&gt;
\begin{align}&lt;br /&gt;
\tilde{\rho}(t)&lt;br /&gt;
\approx \mathrm{Tr}_R [\tilde{\rho}(t)]\otimes  \mathrm{Tr}_A [\tilde{\rho}(t)]&lt;br /&gt;
\end{align}&lt;br /&gt;
$$&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="近似之后的结果"&gt;近似之后的结果&lt;/h2&gt;
&lt;p&gt;现在，我们结合对大环境小系统，弱耦合的假设，对之前的严格结果&lt;br /&gt;
$$
\begin{align}
\Delta\tilde{\sigma}(t) \equiv &amp;
\tilde{\sigma}(t + \Delta t) - \tilde{\sigma}(t) \\
=&amp; \frac{1}{i\hbar}\int_t^{t+\Delta t} dt'\,
\mathrm{Tr}_R\left[ \tilde{V}(t'), \tilde{\rho}(t) \right]\\
&amp; + \left(\frac{1}{i\hbar}\right)^2\int_t^{t+\Delta t} dt'\,
\int_t^{t'} dt''\,
\mathrm{Tr}_R\left[ \tilde{V}(t'), \left[\tilde{V}(t''), \tilde{\rho}(t'') \right] \right]
\end{align}
$$&lt;br /&gt;
进行化简。&lt;/p&gt;
&lt;h3 id="的一阶项为零"&gt;&lt;eq&gt;V&lt;/eq&gt; 的一阶项为零&lt;/h3&gt;
$$

\begin{align}
\mathrm{Tr}_R\left[ \tilde{V}(t'), \tilde{\rho}(t) \right]
= \tilde{A}(t') \tilde{\sigma}(t) \, \mathrm{Tr}\left[ \tilde{R}(t'), \sigma_R \right]
= 0
\end{align}

$$&lt;p&gt;因此一阶项消失。&lt;/p&gt;
&lt;h3 id="截断--的二阶项"&gt;截断 &lt;eq&gt;V&lt;/eq&gt; 的二阶项&lt;/h3&gt;
&lt;p&gt;也就是把 &lt;eq&gt;V&lt;/eq&gt; 的二阶项中的 $\tilde{\rho}(t'')$ 换成 $\tilde{\rho}(t)$&lt;/p&gt;
&lt;h3 id="利用--时-把对--和--的积分解耦"&gt;利用 $\tau &gt;\tau_c$ 时 $g(\tau) \to 0$，把对 $t'$ 和 $t''$ 的积分解耦&lt;/h3&gt;
$$

\begin{align}
\int_t^{t+\Delta t} dt'\, \int_t^{t'} dt''\
= \int_0^{\Delta t} d\tau \, \int_{t+\tau}^{t+\Delta t} dt'\
\approx \int_0^{\infty} d\tau \, \int_{t}^{t+\Delta t} dt'\
\end{align}

$$&lt;p&gt;此时，严格的结果现在变成了&lt;br /&gt;
$$&lt;br /&gt;
\begin{align}&lt;br /&gt;
\frac{\Delta \tilde{\sigma}(t)}{\Delta t}&lt;br /&gt;
=&amp;amp; - \frac{1}{\hbar^2}\int_0^\infty d\tau , \frac{1}{\Delta{t}}\int_t^{t+\Delta t} d t' \&lt;br /&gt;
&amp;amp;\left{&lt;br /&gt;
g(\tau) \left[\tilde{A}(t')\tilde{A}(t'-\tau) \tilde{\sigma}(t)&lt;br /&gt;
- \tilde{A}(t'-\tau) \tilde{\sigma} (t) \tilde{A}(t')\right]&lt;br /&gt;
\right.&lt;br /&gt;
\&lt;br /&gt;
&amp;amp;\left.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;g(-\tau)\left[&lt;br /&gt;
\tilde{\sigma} (t)\tilde{A}(t'-\tau) \tilde{A}(t')
&lt;ul&gt;
&lt;li&gt;\tilde{A}(t') \tilde{\sigma} (t)\tilde{A}(t'-\tau)&lt;br /&gt;
\right]&lt;br /&gt;
\right}&lt;br /&gt;
\end{align}&lt;br /&gt;
$$&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="在能量本征态下写出积掉-做久期近似"&gt;在能量本征态下写出，积掉 $t'$，做久期近似&lt;/h2&gt;
&lt;p&gt;在能量本征表象下，花括号中的四项中关于 $t'$ 的部分是相同的，因此可以拿出来积掉&lt;/p&gt;
$$

\begin{align}
\frac{1}{\Delta t} \int_t^{t+\Delta t} dt'\, e^{-i (\omega_{ba} - \omega_{dc})}
\end{align}

$$&lt;p&gt;在 $|\omega_{ba} - \omega_{dc}|\Delta t \ll 1$ 时， 结果为 &lt;eq&gt;1&lt;/eq&gt; 。&lt;br /&gt;
在 $|\omega_{ba} - \omega_{dc}|\Delta t \gg 1$ 时， 结果为 &lt;eq&gt;0&lt;/eq&gt; 。&lt;br /&gt;
在 $|\omega_{ba} - \omega_{dc}|\Delta t \sim 1$ 时， 为弱耦合，可以忽略。&lt;/p&gt;
&lt;p&gt;因此&lt;br /&gt;
$$
\begin{align}
\frac{\Delta \tilde{\sigma}_{ab}(t)}{\Delta t} = \sum_{c, d}^{\mathrm{sec}}
e^{-i(\omega_{ba} - \omega_dc)t} \mathcal{R}_{abcd}\tilde{\sigma}_{cd}(t)
\end{align}
$$&lt;br /&gt;
其中&lt;br /&gt;
$$
\begin{align}
\mathcal{R}_{abcd}
=&amp; -\frac{1}{\hbar^2} \int_0^{\infty} d\tau\, \\
=&amp; \left\{
  g(\tau)\left[ \delta_{bd} \sum_n A_{an}A_{nc} e^{i\omega_{cn}\tau}
  -A_{ac}A_{db}e^{i\omega_{ca}\tau}   \right] \right. \\
  &amp;+\left.
    g(-\tau)\left[ \delta_{ac} \sum_n A_{dn}A_{nb} e^{i\omega_{nd}\tau}
  -A_{ac}A_{db}e^{i\omega_{bd}\tau}   \right]
 \right\} \\
\end{align}
$$&lt;/p&gt;
&lt;h1 id="reference"&gt;Reference&lt;/h1&gt;
&lt;ul&gt;
&lt;li&gt;Cohen-Tannoudji, Claude, Jacques Dupont-Roc, and Gilbert Grynberg. Atom-Photon Interactions: Basic Processes and Applications. New York: Wiley, 1992. Chapter IV.&lt;/li&gt;
&lt;/ul&gt;
</content><category term="专业笔记"/><category term="physics"/><category term="master equation"/><category term="spontaneous emission"/></entry><entry><title>Arch安装deb包：为 deb 包编写 PKGBUILD 文件</title><link href="https://zqw.ink/2023-11-16-coding-makepkg-copy.html" rel="alternate"/><published>2023-11-16T00:00:00+08:00</published><updated>2023-11-16T00:00:00+08:00</updated><author><name>ZQW</name></author><id>tag:zqw.ink,2023-11-16:/2023-11-16-coding-makepkg-copy.html</id><summary type="html">
&lt;ul&gt;
&lt;li&gt;&lt;a href="#%E5%89%8D%E8%A8%80"&gt;前言&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#makepkg-%E7%AE%80%E4%BB%8B"&gt;&lt;code&gt;makepkg&lt;/code&gt; 简介&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#%E4%B8%80%E4%B8%AA%E6%9C%80%E7%AE%80%E5%8D%95%E7%9A%84-pkgbuild-%E6%96%87%E4%BB%B6"&gt;一个最简单的 &lt;code&gt;PKGBUILD&lt;/code&gt; 文件&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#%E6%89%93%E5%8C%85%E6%B5%81%E7%A8%8B%E4%B8%80%E4%B8%AA%E4%B8%8D-trivial-%E7%9A%84%E6%B5%8B%E8%AF%95"&gt;打包流程（一个不 trivial 的测试）&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#deb-%E5%8C%85%E7%A4%BA%E4%BE%8Bwps-office"&gt;deb 包示例：wps-office&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="前言"&gt;前言&lt;/h2&gt;
&lt;p&gt;使用 Arch, 或者基于 Arch 的 Manjaro 时，有些软件官方仓 …&lt;/p&gt;</summary><content type="html">
&lt;ul&gt;
&lt;li&gt;&lt;a href="#%E5%89%8D%E8%A8%80"&gt;前言&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#makepkg-%E7%AE%80%E4%BB%8B"&gt;&lt;code&gt;makepkg&lt;/code&gt; 简介&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#%E4%B8%80%E4%B8%AA%E6%9C%80%E7%AE%80%E5%8D%95%E7%9A%84-pkgbuild-%E6%96%87%E4%BB%B6"&gt;一个最简单的 &lt;code&gt;PKGBUILD&lt;/code&gt; 文件&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#%E6%89%93%E5%8C%85%E6%B5%81%E7%A8%8B%E4%B8%80%E4%B8%AA%E4%B8%8D-trivial-%E7%9A%84%E6%B5%8B%E8%AF%95"&gt;打包流程（一个不 trivial 的测试）&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#deb-%E5%8C%85%E7%A4%BA%E4%BE%8Bwps-office"&gt;deb 包示例：wps-office&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="前言"&gt;前言&lt;/h2&gt;
&lt;p&gt;使用 Arch, 或者基于 Arch 的 Manjaro 时，有些软件官方仓库里没有，而网上又可以下载到编译好的二进制文件，deb包，或者rpm包。二进制文件可以直接运行，deb或者rpm包解压后，找到对应的二进制文件，也可以直接运行。&lt;/p&gt;
&lt;p&gt;但时，它们不被 &lt;code&gt;pacman&lt;/code&gt; 包管理器管理，也不能从 app lancher 里面便捷的运行。&lt;/p&gt;
&lt;p&gt;对于 deb 包，AUR库里有一个 &lt;code&gt;debtap&lt;/code&gt; 脚本，可以将 deb 包转换成 &lt;code&gt;pacman -U&lt;/code&gt; 可以直接安装的 &lt;code&gt;.pkg.tar.zst&lt;/code&gt; 格式。这个脚本非常方便，但是由于这个脚本考虑非常全面，注意普适性，这就导致有时候转换后的 &lt;code&gt;.pkg.tar.zst&lt;/code&gt; 包会出现一些问题，安装不上。&lt;/p&gt;
&lt;p&gt;用 &lt;code&gt;makepkg&lt;/code&gt; 打包软件是非常简单的事情，只是如果一点也不了解的话，会生怵。但是只要知道了它的运行机理，就会觉得非常简单，而且很多问题也就不存在了。&lt;/p&gt;
&lt;h2 id="makepkg-简介"&gt;&lt;code&gt;makepkg&lt;/code&gt; 简介&lt;/h2&gt;
&lt;p&gt;详细地介绍在 ArchWiki 里面都有介绍。在此按我的理解梳理一下。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;makepkg&lt;/code&gt; 是 Arch 系统中的一个软件，它的作用是将写好的程序源代码编译好，并且打包成 &lt;code&gt;.pkg.tar.zst&lt;/code&gt; 格式，然后发布。大家就可以下载打包好的 &lt;code&gt;.pkg.tar.zst&lt;/code&gt; 文件在 Arch 上直接安装。&lt;/p&gt;
&lt;p&gt;要想用 &lt;code&gt;makepkg&lt;/code&gt; 打包一个程序，必须先写一个 &lt;code&gt;PKGBUILD&lt;/code&gt; 文件。系统中有一些示例文件，比如 &lt;code&gt;/usr/share/pacman/PKGBUILD.proto&lt;/code&gt; 。&lt;/p&gt;
&lt;p&gt;写好了 &lt;code&gt;PKGBUILD&lt;/code&gt; 文件，就可以直接在  &lt;code&gt;PKGBUILD&lt;/code&gt; 文件所在的目录直接运行&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-shell"&gt;makepkg
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;然后就生成了 &lt;code&gt;.pkg.tar.zst&lt;/code&gt; 格式的软件包，然后 &lt;code&gt;pacman -U&lt;/code&gt; 安装就可以了。&lt;/p&gt;
&lt;h2 id="一个最简单的-pkgbuild-文件"&gt;一个最简单的 &lt;code&gt;PKGBUILD&lt;/code&gt; 文件&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;PKGBUILD&lt;/code&gt; 文件使用的是 &lt;code&gt;shell&lt;/code&gt; 语言。最简单的 &lt;code&gt;PKGBUILD&lt;/code&gt; 文件如下&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;pkgname=hello-makepkg
pkgver=1.0
pkgrel=1
arch=('x86_64')

package() {
	echo &amp;quot;packaging...&amp;quot;
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;前四行定义了四个变量，是软件的名字，版本，以及运行架构。最后三行定义了一个函数，输出一行字 packaging...。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;pkgname&lt;/code&gt; 、 &lt;code&gt;pkgver&lt;/code&gt; 、 &lt;code&gt;pkgrel&lt;/code&gt; 、 &lt;code&gt;arch&lt;/code&gt; 四个变量必须定义。名为 &lt;code&gt;package()&lt;/code&gt; 的函数会被 &lt;code&gt;makepkg&lt;/code&gt; 自动执行。&lt;/p&gt;
&lt;p&gt;这个最简单的 &lt;code&gt;PKGBUILD&lt;/code&gt; 文件是 trivial 的，因为它什么也没干，只是走了个过场。&lt;/p&gt;
&lt;h2 id="打包流程一个不-trivial-的测试"&gt;打包流程（一个不 trivial 的测试）&lt;/h2&gt;
&lt;p&gt;下面写一个不 trivial 的 &lt;code&gt;PKGBUILD&lt;/code&gt; 文件。如下：&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-shell"&gt;# This is an example PKGBUILD file. Use this as a start to creating your own,
# and remove these comments. For more information, see 'man PKGBUILD'.
# NOTE: Please fill out the license field for your package! If it is unknown,
# then please put 'unknown'.

# Maintainer: Your Name &amp;lt;youremail@domain.com&amp;gt;
pkgname=zqwtest
pkgver=1.0
pkgrel=1
arch=('x86_64')
source=(&amp;quot;m.vsix&amp;quot;)
md5sums=('541126551a459a74e740ac6a82875d24')


prepare() {
	echo &amp;quot;prepare...&amp;quot;
}

build() {
	echo &amp;quot;building...&amp;quot;
#	pwd
#	cd ${srcdir}
#	pwd
#	mkdir diraa
}

check() {
	echo &amp;quot;checking...&amp;quot;
}

package() {
	echo &amp;quot;packaging...&amp;quot;
	mkdir ${pkgdir}/home
	cp m.vsix ${pkgdir}/home/m.vsix
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;code&gt;PKGBUILD&lt;/code&gt; 文件所在的目录结构如下：&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-shell"&gt;.
├── m.vsix
└── PKGBUILD
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;与之前相比，多定义了两个变量，&lt;code&gt;source&lt;/code&gt; 和 &lt;code&gt;md5sums&lt;/code&gt; 。这两个变量有什么用处呢？那应该先说一下 &lt;code&gt;makepkg&lt;/code&gt; 具体都做了什么。&lt;/p&gt;
&lt;p&gt;首先，它们通过我们定义的变量，得到软件包的名字，版本号等信息。&lt;code&gt;source&lt;/code&gt; 变量是告诉 &lt;code&gt;makepkg&lt;/code&gt; 我们打包过程中所需要的文件，它可以是一个本地文件，也可以是一个文件网址。 &lt;code&gt;makepkg&lt;/code&gt; 会获取这个文件，验证它的 md5，然后将它放在（链接）目录 &lt;code&gt;src&lt;/code&gt; 下。 &lt;code&gt;src&lt;/code&gt; 目录是 &lt;code&gt;makepkg&lt;/code&gt; 进行一些处理，比如编译，时的工作目录。&lt;/p&gt;
&lt;p&gt;接下来， &lt;code&gt;makepkg&lt;/code&gt; 依次执行四个函数 &lt;code&gt;prepare()&lt;/code&gt; 、 &lt;code&gt;build()&lt;/code&gt; 、 &lt;code&gt;check()&lt;/code&gt; 、 &lt;code&gt;package()&lt;/code&gt; 。 &lt;code&gt;prepare()&lt;/code&gt; 一般做编译前的处理，比如解压文件。 &lt;code&gt;build()&lt;/code&gt; 进行编译。&lt;code&gt;check()&lt;/code&gt; 检查编译结果。最后 &lt;code&gt;package()&lt;/code&gt; 进行打包。我们这里的 &lt;code&gt;prepare()&lt;/code&gt; 、 &lt;code&gt;build()&lt;/code&gt; 、 &lt;code&gt;check()&lt;/code&gt; 不进行操作，只输出一行文字提示。&lt;/p&gt;
&lt;p&gt;最后，我在函数 &lt;code&gt;package()&lt;/code&gt; 中，先新建了一个目录 &lt;code&gt;${pkgdir}/home&lt;/code&gt; 。这里先说明一下，  &lt;code&gt;makepkg&lt;/code&gt; 会默认定义两个变量：&lt;code&gt;${srcdir}&lt;/code&gt; 是前面提到的工作路径 &lt;code&gt;src&lt;/code&gt;；另一个 &lt;code&gt;${pkgdir}&lt;/code&gt; 是软件包的目录 &lt;code&gt;pkg/${pkgname}&lt;/code&gt; 。 &lt;code&gt;${pkgdir}&lt;/code&gt; 目录就是最终打包成 &lt;code&gt;.pkg.tar.zst&lt;/code&gt; 的目录。在安装包时，&lt;code&gt;${pkgdir}&lt;/code&gt; 会被安装对应的目录中。比如我们在这个例子中，将文件 &lt;code&gt;m.vsix&lt;/code&gt; 放在 &lt;code&gt;${pkgdir}/home/m.vsix&lt;/code&gt; ，那么我们用 &lt;code&gt;pacman -U&lt;/code&gt; 安装时，就会把 &lt;code&gt;m.vsix&lt;/code&gt; 复制到 &lt;code&gt;/home/m.vsix&lt;/code&gt; 。&lt;/p&gt;
&lt;p&gt;运行&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-shell"&gt;makepkg
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;后，目录结构如下&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-shell"&gt;.
├── m.vsix
├── pkg
│   └── zqwtest
├── PKGBUILD
├── src
│   ├── [Content_Types].xml
│   ├── extension
│   ├── extension.vsixmanifest
│   └── m.vsix -&amp;gt; /home/zqw/pkgtest/m.vsix
└── zqwtest-1.0-1-x86_64.pkg.tar.zst
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;然后我们运行&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-shell"&gt;sudo pacman -U zqwtest-1.0-1-x86_64.pkg.tar.zst
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;安装一下，就可以看到，如我们所预期，&lt;code&gt;/home&lt;/code&gt; 目录下多了文件 &lt;code&gt;m.vsix&lt;/code&gt;：&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-shell"&gt;/home
├── m.vsix
└── zqw
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;然后我们运行&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-shell"&gt;sudo pacman -R zqwtest
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;删除软件包，就发现&lt;code&gt;/home&lt;/code&gt; 目录下的 &lt;code&gt;m.vsix&lt;/code&gt; 被删除了：&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-shell"&gt;/home
└── zqw
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;更加多的例子可以去 AUR 仓库里随便找一些看。比如 &lt;a href="https://aur.archlinux.org/packages/quickapp-ide"&gt;quickapp-ide&lt;/a&gt; ，可以直接 clone 下来学习。&lt;/p&gt;
&lt;h2 id="deb-包示例wps-office"&gt;deb 包示例：wps-office&lt;/h2&gt;
&lt;p&gt;我们提前准备好 wps-office 的 deb 格式安装包，并和 &lt;code&gt;PKGBUILD&lt;/code&gt; 文件放在一起：&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-shell"&gt;.
├── PKGBUILD
└── wps-office_11.1.0.11698.XA_amd64.deb
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;code&gt;PKGBUILD&lt;/code&gt; 文件如下：&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-shell"&gt;# This is an example PKGBUILD file. Use this as a start to creating your own,
# and remove these comments. For more information, see 'man PKGBUILD'.
# NOTE: Please fill out the license field for your package! If it is unknown,
# then please put 'unknown'.

# Maintainer: Your Name &amp;lt;youremail@domain.com&amp;gt;
pkgname=wps-office
pkgver=11.1.0.11698
pkgrel=1
arch=('x86_64')
source=(&amp;quot;wps-office_11.1.0.11698.XA_amd64.deb&amp;quot;)
md5sums=('c80a2b32604cb2a8eb0de456a062fe30')


prepare() {
	mv wps-office_11.1.0.11698.XA_amd64.deb ${pkgver}_${pkgver}.deb
 	ar -x ${pkgver}_${pkgver}.deb
  	mkdir ${pkgname}-${pkgver}
	tar -xf data.tar.xz --directory=&amp;quot;${pkgname}-${pkgver}&amp;quot;
}


package() {
  cd &amp;quot;$pkgname-$pkgver&amp;quot;
  cp -r ./ ${pkgdir}/
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;这里说明一下， &lt;code&gt;deb&lt;/code&gt; 包全部解压后会有两个文件夹，&lt;code&gt;control&lt;/code&gt; 和 &lt;code&gt;data&lt;/code&gt; 。&lt;code&gt;control&lt;/code&gt; 类似于我们的  &lt;code&gt;PKGBUILD&lt;/code&gt; ，包含了软件的信息和安装过程中进行的一些操作。 &lt;code&gt;data&lt;/code&gt; 类似于 &lt;code&gt;{pkgdir}&lt;/code&gt; ，包含了需要安装的所有文件。因此我们要做的就是把 &lt;code&gt;deb&lt;/code&gt; 全部解压，然后将 &lt;code&gt;data&lt;/code&gt; 目录打包。&lt;/p&gt;
</content><category term="软件使用"/><category term="Arch"/><category term="manjaro"/><category term="makepkg"/><category term="PKGBUILD"/></entry><entry><title>三种统计分布的相图</title><link href="https://zqw.ink/2023-11-03-physics-phase_diagram_of_statistic_function.html" rel="alternate"/><published>2023-11-03T00:00:00+08:00</published><updated>2023-11-03T00:00:00+08:00</updated><author><name>ZQW</name></author><id>tag:zqw.ink,2023-11-03:/2023-11-03-physics-phase_diagram_of_statistic_function.html</id><summary type="html">&lt;!-- toc --&gt;
&lt;!-- more --&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#bose-einstein-distribution"&gt;Bose-Einstein distribution&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#free-boson"&gt;Free Boson&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#condensation-of-free-boson"&gt;Condensation of free Boson&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#condensation-of-fermi-pairs"&gt;Condensation of Fermi pairs&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#more-generally-dispersion-cases"&gt;More generally dispersion cases&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#fermi-dirac-distribution"&gt;Fermi-Dirac distribution&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#maxwell-boltzmann-distribution"&gt;Maxwell-Boltzmann distribution&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#reference"&gt;Reference&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h1 id="bose-einstein-distribution"&gt;Bose-Einstein distribution&lt;/h1&gt;
&lt;h2 id="free-boson"&gt;Free Boson&lt;/h2&gt;
&lt;p&gt;For free Bosons, the particle density can be written as the sum of the Bose-Einstein distribution for every energy level with momentum $\mathbf{k}$,&lt;br /&gt;
$$
n …&lt;/p&gt;</summary><content type="html">&lt;!-- toc --&gt;
&lt;!-- more --&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#bose-einstein-distribution"&gt;Bose-Einstein distribution&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#free-boson"&gt;Free Boson&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#condensation-of-free-boson"&gt;Condensation of free Boson&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#condensation-of-fermi-pairs"&gt;Condensation of Fermi pairs&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#more-generally-dispersion-cases"&gt;More generally dispersion cases&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#fermi-dirac-distribution"&gt;Fermi-Dirac distribution&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#maxwell-boltzmann-distribution"&gt;Maxwell-Boltzmann distribution&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#reference"&gt;Reference&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h1 id="bose-einstein-distribution"&gt;Bose-Einstein distribution&lt;/h1&gt;
&lt;h2 id="free-boson"&gt;Free Boson&lt;/h2&gt;
&lt;p&gt;For free Bosons, the particle density can be written as the sum of the Bose-Einstein distribution for every energy level with momentum $\mathbf{k}$,&lt;br /&gt;
$$
n(T, \mu) = \frac{1}{V}\sum_{\mathbf{k}}
\frac{1}{e^{ \frac{1}{k_B T}\left( \frac{\hbar^2 k^2}{2m} - \mu\right)} - 1}
= \frac{1}{V}\sum_{\mathbf{k}}
\frac{1}{z^{-1}e^{ \frac{1}{k_B T} \frac{\hbar^2 k^2}{2m}} - 1}
$$&lt;br /&gt;
where fugacity $z = e^{\frac{\mu}{k_BT}}$. Using&lt;br /&gt;
$$
 \frac{1}{V} \sum_{\mathbf{k}}\to \frac{1}{(2\pi)^3}\int \mathrm{d}^3k
$$&lt;br /&gt;
convert a sum over momentum states into an integral, then,&lt;br /&gt;
$$
\begin{align}
n(T, \mu) =&amp; \frac{4\pi}{(2\pi)^3}\int_0^{\infty} \mathrm{d}k
\frac{k^2}{z^{-1}e^{ \frac{1}{k_B T} \frac{\hbar^2 k^2}{2m} } - 1}\\
=&amp; \frac{1}{\lambda_{\mathrm{d.B.}}^3} \frac{4}{\sqrt{\pi}}
  \int_0^{\infty}\mathrm{d}x \frac{x^2}{z^{-1}e^{x^2} - 1}\\
=&amp; \frac{1}{\lambda_{\mathrm{d.B.}}^3} \frac{2}{\sqrt{\pi}}
  \int_0^{\infty}\mathrm{d}\varepsilon \frac{\sqrt{\varepsilon}}{z^{-1}e^{\varepsilon} - 1} \\
=&amp; \frac{1}{\lambda_{\mathrm{d.B.}}^3} \mathrm{Li}_{3/2}(z) \\
=&amp; \left(\frac{m k_B T}{2 \pi \hbar^2} \right)^{3/2}\mathrm{Li}_{3/2}(z)
\end{align}
$$&lt;br /&gt;
where we have defined the thermal de Broglie wavelength&lt;br /&gt;
$\lambda_{\mathrm{d.B.}} = \sqrt{\frac{2\pi \hbar^2}{m k_B T}}$ by setting&lt;/p&gt;
$$

\frac{\hbar^2}{m}\frac{1}{\lambda_{\mathrm{d.B.}}^2} = \frac{k_B T}{2\pi}.

$$&lt;p&gt;The &lt;a href="https://en.wikipedia.org/wiki/Polylogarithm"&gt;Polylogarithm&lt;/a&gt; is defined as&lt;/p&gt;
$$

\begin{align}
\mathrm{Li}_s(z) = \sum_{k = 1}^{\infty} \frac{z^k}{k^s}
\end{align}

$$&lt;p&gt;&lt;img src="./2023-11-03-physics-phase_diagram_of_statistic_function/free-bose.svg" alt="free-bose" /&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="./2023-11-03-physics-phase_diagram_of_statistic_function/free-bose.py"&gt;free-bose.py&lt;/a&gt;&lt;/p&gt;
&lt;h2 id="condensation-of-free-boson"&gt;Condensation of free Boson&lt;/h2&gt;
&lt;p&gt;For free Bosons, when the density fixed, lower the temperature, the chemical potential will approach &lt;eq&gt;0&lt;/eq&gt;. Therefore the Bosons will condense to the zero momentum states. Therefore, we can find the condensate critical temperature $T_C$ by setting $\mu\to 0$,&lt;br /&gt;
$$
k_B T_C = \left(\frac{n}{\mathrm{Li}_{3/2}(1)}\right)^{2/3}\frac{1}{\frac{m}{2\pi\hbar^2}}
$$&lt;br /&gt;
where $\mathrm{Li}_{3/2}(1) = \zeta(3/2)\approx2.612$.&lt;/p&gt;
&lt;h2 id="condensation-of-fermi-pairs"&gt;Condensation of Fermi pairs&lt;/h2&gt;
&lt;p&gt;The two components Fermion system on the strong BEC side, every two Fermions form a bound Boson pairs. Thus we can consider this system as a free Bosons. We label the density of pairs as &lt;eq&gt;n&lt;/eq&gt;, also every component has a density &lt;eq&gt;n&lt;/eq&gt;. Label the mass of a Fermion as &lt;eq&gt;m&lt;/eq&gt;, so the mass of a pair is $M=2m$, and the chemical potential $2\mu$. We define the Fermi momentum as $k_F^3 = 6\pi^2 n$, and Fermi energy as $E_F = \frac{\hbar^2 k_F^2}{2m}$. Then the density of pairs can be written as&lt;br /&gt;
$$
\begin{align}
n(T, 2\mu)
= \left(\frac{M k_B T}{2 \pi \hbar^2} \right)^{3/2}\mathrm{Li}_{3/2}(z)
\end{align}
$$&lt;br /&gt;
where $z=e^{\frac{2\mu}{k_B T}}$. We can get the condensate critical temperature of pairs&lt;/p&gt;
$$

k_B T_C = \left(\frac{n}{\mathrm{Li}_{3/2}(1)}\right)^{2/3}\frac{1}{\frac{M}{2\pi\hbar^2}} = \frac{2\pi}{\left[6\pi^2\mathrm{Li}_{3/2}(1)\right]^{2/3}} E_F
\approx 0.218 E_F

$$&lt;h2 id="more-generally-dispersion-cases"&gt;More generally dispersion cases&lt;/h2&gt;
$$

\int_0^{\infty}\mathrm{d}\varepsilon \frac{x^{\nu}}{z^{-1} e^{\varepsilon} - 1}
= \Gamma(1+\nu)\mathrm{Li}_{1+\nu}(z)

$$&lt;p&gt;where $\nu = 1/2$ for the 3D free Boson. And the gamma function&lt;/p&gt;
$$

 \Gamma(z)=\int _0^{\infty}\mathrm{d}t\cdot e^{-t} t^{z-1}

$$&lt;p&gt;which $\Gamma(3/2) = \sqrt{\pi}/2$ for the 3D free Boson.&lt;/p&gt;
&lt;p&gt;For Fermion case&lt;/p&gt;
$$

\int_0^{\infty}\mathrm{d}\varepsilon \frac{x^{\nu}}{z^{-1} e^{\varepsilon} + 1}
= -\Gamma(1+\nu)\mathrm{Li}_{1+\nu}(-z)

$$&lt;h1 id="fermi-dirac-distribution"&gt;Fermi-Dirac distribution&lt;/h1&gt;
&lt;p&gt;For free Bosons, the particle density can be written as the sum of the Bose-Einstein distribution for every energy level with momentum $\mathbf{k}$,&lt;br /&gt;
$$&lt;br /&gt;
n(T, \mu) = \frac{1}{V}\sum_{\mathbf{k}}&lt;/p&gt;
&lt;p&gt;\frac{1}{z^{-1}e^{ \frac{1}{k_B T} \frac{\hbar^2 k^2}{2m}} + 1}&lt;br /&gt;
$$&lt;br /&gt;
where fugacity $z = e^{\frac{\mu}{k_BT}}$. Convert a sum over momentum states into an integral, then,&lt;br /&gt;
$$
\begin{align}
n(T, \mu) =&amp; \frac{4\pi}{(2\pi)^3}\int_0^{\infty} \mathrm{d}k
\frac{k^2}{z^{-1}e^{ \frac{1}{k_B T} \frac{\hbar^2 k^2}{2m} } + 1}\\
=&amp; \frac{1}{\lambda_{\mathrm{d.B.}}^3} \frac{4}{\sqrt{\pi}}
  \int_0^{\infty}\mathrm{d}x \frac{x^2}{z^{-1}e^{x^2} + 1}\\
=&amp; \frac{1}{\lambda_{\mathrm{d.B.}}^3} \frac{2}{\sqrt{\pi}}
  \int_0^{\infty}\mathrm{d}\varepsilon \frac{\sqrt{\varepsilon}}{z^{-1}e^{\varepsilon} + 1} \\
=&amp; \frac{1}{\lambda_{\mathrm{d.B.}}^3} \left[-\mathrm{Li}_{3/2}(-z)\right] \\
=&amp; \left(\frac{m k_B T}{2 \pi \hbar^2} \right)^{3/2}\left[-\mathrm{Li}_{3/2}(-z)\right]
\end{align}
$$&lt;/p&gt;
&lt;p&gt;&lt;img src="./2023-11-03-physics-phase_diagram_of_statistic_function/free-fermi.svg" alt="free-fermi" /&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="./2023-11-03-physics-phase_diagram_of_statistic_function/free-fermi.py"&gt;free-fermi.py&lt;/a&gt;&lt;/p&gt;
&lt;h1 id="maxwell-boltzmann-distribution"&gt;Maxwell-Boltzmann distribution&lt;/h1&gt;
&lt;h1 id="reference"&gt;Reference&lt;/h1&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://en.wikipedia.org/wiki/Polylogarithm"&gt;Polylogarithm&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://en.wikipedia.org/wiki/Gamma_function"&gt;Gamma function&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Pathria, R. K., and Paul D. Beale. Statistical Mechanics. 3rd ed. Amsterdam ; Boston: Elsevier/Academic Press, 2011. Chap.7 and Appendices D, E.&lt;/li&gt;
&lt;li&gt;Stoof, Henk T. C., Koos B. Gubbels, and Dennis B. M. Dickerscheid. Ultracold Quantum Fields. Theoretical and Mathematical Physics. Dordrecht ; New York: Springer, 2009. Chap.4.3.&lt;/li&gt;
&lt;/ul&gt;
</content><category term="专业笔记"/><category term="physics"/><category term="chemical potential"/></entry><entry><title>一个 Hadamard finite part</title><link href="https://zqw.ink/2023-10-23-physics-hadamard.html" rel="alternate"/><published>2023-10-23T00:00:00+08:00</published><updated>2023-10-23T00:00:00+08:00</updated><author><name>ZQW</name></author><id>tag:zqw.ink,2023-10-23:/2023-10-23-physics-hadamard.html</id><summary type="html">&lt;!-- toc --&gt;
&lt;!-- more --&gt;
&lt;p&gt;$F(\rho, z)$ 是一个光滑，并且在正负无穷快速decay到时0,的函数，比如 $F(\rho, z) = 1/(z^2 + 1)$。我们想要计算&lt;br /&gt;
$$
\lim_{\rho\to 0} \frac{\partial}{\partial\rho}\left[\rho
\int_{-\infty}^{+\infty} \frac …&lt;/p&gt;</summary><content type="html">&lt;!-- toc --&gt;
&lt;!-- more --&gt;
&lt;p&gt;$F(\rho, z)$ 是一个光滑，并且在正负无穷快速decay到时0,的函数，比如 $F(\rho, z) = 1/(z^2 + 1)$。我们想要计算&lt;br /&gt;
$$
\lim_{\rho\to 0} \frac{\partial}{\partial\rho}\left[\rho
\int_{-\infty}^{+\infty} \frac{F(\rho, z)}{\rho^2 + z^2}\mathrm{d}z\right]
$$&lt;/p&gt;
&lt;h1 id="其中的积分可以在--处展开其中第一项代回原式后得也就是说我们想要的就是-但这在数值上如何计算呢我们可以把发散的部分lim_rhoto-0int_-inftyinfty-fracfrho-zrho2--z2mathrmdz"&gt;其中的积分&lt;br /&gt;
$$
\int_{-\infty}^{+\infty} \frac{F(\rho, z)}{\rho^2 + z^2}\mathrm{d}z
$$&lt;br /&gt;
可以在 $\rho\to 0$ 处展开&lt;br /&gt;
$$
\int_{-\infty}^{+\infty} \frac{F(\rho, z)}{\rho^2 + z^2}\mathrm{d}z
= \frac{\pi}{\rho}F(0, 0) + C_0 + C_1 \rho + C_2\rho^2 + \cdots
$$&lt;br /&gt;
其中第一项&lt;br /&gt;
$$
\lim_{\rho\to 0}\int_{-\infty}^{+\infty} \frac{F(\rho, z)}{\rho^2 + z^2}\mathrm{d}z
=\lim_{\rho\to 0}\int_{-\infty}^{+\infty} \frac{F(\rho, z)}{\rho}\frac{\rho}{\rho^2 + z^2}\mathrm{d}z
=\int_{-\infty}^{+\infty} \frac{F(\rho, z)}{\rho}\pi\delta(z)\mathrm{d}z
= \frac{\pi}{\rho}F(0, 0)
$$&lt;br /&gt;
代回原式后得&lt;br /&gt;
$$
\lim_{\rho\to 0} \frac{\partial}{\partial\rho}\left[\rho
\int_{-\infty}^{+\infty} \frac{F(\rho, z)}{\rho^2 + z^2}\mathrm{d}z\right]
 = C_0
$$&lt;br /&gt;
也就是说，我们想要的就是 $C_0$。但这在数值上如何计算呢？我们可以把发散的部分&lt;br /&gt;
$$&lt;br /&gt;
\lim_{\rho\to 0}\int_{-\infty}^{+\infty} \frac{F(\rho, z)}{\rho^2 + z^2}\mathrm{d}z&lt;/h1&gt;
&lt;h1 id="int_-inftyinfty-fracf0-z-z2mathrmdz-fracpirhof0-0lim_rhoto-0-fracpartialpartialrholeftrhoint_-inftyinfty-fracfrho-zrho2--z2mathrmdzright"&gt;\int_{-\infty}^{+\infty} \frac{F(0, z)}{ z^2}\mathrm{d}z&lt;br /&gt;
= \frac{\pi}{\rho}F(0, 0)&lt;br /&gt;
$$
减去，就得到
$$&lt;br /&gt;
\lim_{\rho\to 0} \frac{\partial}{\partial\rho}\left[\rho&lt;br /&gt;
\int_{-\infty}^{+\infty} \frac{F(\rho, z)}{\rho^2 + z^2}\mathrm{d}z\right]&lt;/h1&gt;
&lt;p&gt;\int_{-\infty}^{\infty}\left[&lt;br /&gt;
\frac{F(0, z)}{z^2} - \frac{F(0, 0)}{z^2}\right]\mathrm{d}z&lt;br /&gt;
$$&lt;br /&gt;
这样我们就可以做数值计算了。&lt;/p&gt;
&lt;h1 id="例"&gt;例&lt;/h1&gt;
&lt;p&gt;比如$F(\rho, z) = 1/(z^2 + 1)$时，&lt;br /&gt;
$$
\int_{-\infty}^{\infty}\left[
\frac{1}{z^2}\frac{1}{z^2 + 1} - \frac{1}{z^2}\frac{1}{0^2 + 1}\right]\mathrm{d}z
= \int_{-\infty}^{\infty}
\frac{-1}{z^2 + 1} \mathrm{d}z = -\pi
$$&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-python"&gt;import matplotlib.pyplot as plt
import numpy as np
from scipy.integrate import quad


def quad_recorded(func, *args, **kwargs):
    &amp;quot;&amp;quot;&amp;quot;
    use scipy.integrate.quad, but return the results with additional
    information &amp;quot;nc&amp;quot; and &amp;quot;vc&amp;quot;.

    Returns:
        inte_res: the return of scipy.integrate.quad
              nc: the points calculated
              vc: the calculated functiona values
    &amp;quot;&amp;quot;&amp;quot;
    def func_recorded(x, node_container, value_container):
        res = func(x)
        node_container.append(x)
        value_container.append(res)
        return res
    nc = []
    vc = []
    inte_res = quad(lambda x: func_recorded(x, node_container=nc,
                                            value_container=vc),
                    *args, **kwargs)
    idx = np.argsort(np.array(nc))
    nc = np.array(nc)[idx].tolist()
    vc = np.array(vc)[idx].tolist()
    return inte_res, nc, vc


def f(r, z):
    return 1/(1 + z**2)

def foo(r, z):
    return f(r, z)/(r**2 + z**2)


# check the first term in expansion
r = 0.01
res, nc, vc = quad_recorded(lambda z: foo(r, z), -2, 2, points=[0])
plt.plot(nc, vc, '*')
print('numeric:', res)
print('analytic:', np.pi/r*f(0, 0))
plt.savefig('first-term.png', transparent=True)
plt.clf()


# calculate the Hadamard finite part
def fini(z):
    return f(0, z)/z**2 - f(0, 0)/z**2

res, nc, vc = quad_recorded(fini, -2000, 2000, points=[0])
plt.plot(nc, vc, '*')
# print('numeric:', res)
# print('analytic:', np.pi/r*f(0, 0))
print(res)
plt.savefig('finite-part.png', transparent=True)
&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code class="language-python"&gt;numeric: (310.9760738639882, 9.137428740868536e-07)
analytic: 314.1592653589793
(-3.140592653672964, 4.381553441406457e-11)
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;img src="2023-10-23-physics-Hadamard/first-term.png" alt="first-term" /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src="2023-10-23-physics-Hadamard/finite-part.png" alt="finite-part" /&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="2023-10-23-physics-Hadamard/Hadamard.py"&gt;Hadamard.py&lt;/a&gt;&lt;/p&gt;
&lt;h1 id="致谢"&gt;致谢&lt;/h1&gt;
&lt;ol&gt;
&lt;li&gt;F Yang and R Qi&lt;/li&gt;
&lt;/ol&gt;
</content><category term="专业笔记"/><category term="Hadamard integral"/><category term="mathematic"/></entry><entry><title>matplotlib 科研作图总结</title><link href="https://zqw.ink/2023-10-12-coding-matplotlib.html" rel="alternate"/><published>2023-10-12T00:00:00+08:00</published><updated>2023-10-12T00:00:00+08:00</updated><author><name>ZQW</name></author><id>tag:zqw.ink,2023-10-12:/2023-10-12-coding-matplotlib.html</id><summary type="html">&lt;!-- toc --&gt;
&lt;!-- more --&gt;
&lt;p&gt;结合近几年的经验，把&lt;code&gt;matplotlib&lt;/code&gt;作图常用的脚本集合在此。这包含了之前一些关于&lt;code&gt;matplotlib&lt;/code&gt;作图的博文。&lt;/p&gt;
&lt;h1 id="作图风格"&gt;作图风格&lt;/h1&gt;
&lt;pre&gt;&lt;code class="language-python"&gt;from matplotlib import rc
def prettify_plot():
    &amp;quot;&amp;quot;&amp;quot;
    change the plot …&lt;/code&gt;&lt;/pre&gt;</summary><content type="html">&lt;!-- toc --&gt;
&lt;!-- more --&gt;
&lt;p&gt;结合近几年的经验，把&lt;code&gt;matplotlib&lt;/code&gt;作图常用的脚本集合在此。这包含了之前一些关于&lt;code&gt;matplotlib&lt;/code&gt;作图的博文。&lt;/p&gt;
&lt;h1 id="作图风格"&gt;作图风格&lt;/h1&gt;
&lt;pre&gt;&lt;code class="language-python"&gt;from matplotlib import rc
def prettify_plot():
    &amp;quot;&amp;quot;&amp;quot;
    change the plot matplotlibrc file

    To use it, please run it before plotting.

    https://matplotlib.org/stable/tutorials/introductory/customizing.html#customizing-with-matplotlibrc-files
    &amp;quot;&amp;quot;&amp;quot;
    rc('text', usetex=True)
    rc('font', family='serif', serif='Computer Modern Roman', size=8)
    # rc('legend', fontsize=10)
    # rc('mathtext', fontset='cm')
    rc('xtick', direction='in')
    rc('ytick', direction='in')
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;用于调整作图的字体，风格。&lt;/p&gt;
&lt;h1 id="作图尺寸布局"&gt;作图尺寸，布局&lt;/h1&gt;
&lt;pre&gt;&lt;code class="language-python"&gt;import matplotlib.pyplot as plt
fig = plt.figure(figsize=(3.375, 3.5))# 单栏图宽度固定3.375， 双栏图宽度固定 6.75

gs = fig.add_gridspec(nrows=2, ncols=2,
                      left=.08, bottom=.1, right=.99, top=.94,
                      wspace=1, hspace=1,
                      width_ratios=[1, 2],
                      height_ratios=[1, 0.1])
ax_a = fig.add_subplot(gs[0, 0])
ax_b = fig.add_subplot(gs[0, 1])
ax_c = fig.add_subplot(gs[1, :])
&lt;/code&gt;&lt;/pre&gt;
&lt;h1 id="彩图及colorbar"&gt;彩图及colorbar&lt;/h1&gt;
&lt;pre&gt;&lt;code class="language-python"&gt;gs = fig.add_gridspec(nrows=2, ncols=2,
                      left=.08, bottom=.1, right=.99, top=.94,
                      wspace=1, hspace=1,
                      width_ratios=[1, 2],
                      height_ratios=[1, 0.1])
ax_a = fig.add_subplot(gs[0, 0])
ax_b = fig.add_subplot(gs[0, 1])
ax_c = fig.add_subplot(gs[1, :])
ima = ax_a.imshow(np.random.randn(20, 20))
fig.colorbar(ima, cax=ax_c, orientation='horizontal')
&lt;/code&gt;&lt;/pre&gt;
&lt;h2 id="自定义color-map"&gt;自定义color map&lt;/h2&gt;
&lt;pre&gt;&lt;code class="language-python"&gt;import numpy as np
from matplotlib.colors import ListedColormap
import matplotlib.pyplot as plt
import matplotlib as mpl


def newcmap(old):
    old_map = mpl.colormaps[old]
    cut1 = old_map(np.linspace(0, 0.5, 50))
    cut2 = old_map(np.linspace(0.5, 1, 500))
#     cut3 = old_map(np.linspace(0.6, 1, 10))
    cutall = np.concatenate([cut1, cut2])
    return ListedColormap(cutall)


print(newcmap('jet'))
plt.imshow(np.random.randn(100, 100), cmap=newcmap('jet'))
plt.colorbar()
plt.savefig('newcmap.png', transparent=True)
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;img src="2023-10-12-coding-matplotlib/newcmap.png" alt="image-newcamp" /&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="2023-10-12-coding-matplotlib/newcmap.py"&gt;newcmap.py&lt;/a&gt;&lt;/p&gt;
&lt;h2 id="在每个子图插入-colorbar"&gt;在每个子图插入 colorbar&lt;/h2&gt;
&lt;pre&gt;&lt;code class="language-python"&gt;import matplotlib.pyplot as plt
from mpl_toolkits.axes_grid1 import make_axes_locatable
import numpy as np


fig = plt.figure(figsize=[8, 4])
ax_1 = fig.add_subplot(1, 2, 1)
ax_2 = fig.add_subplot(1, 2, 2)

divider1 = make_axes_locatable(ax_1)
ax_cb1 = divider1.new_horizontal(size='5%', pad=.05)
fig.add_axes(ax_cb1)

divider2 = make_axes_locatable(ax_2)
ax_cb2 = divider2.new_horizontal(size='5%', pad=.05)
fig.add_axes(ax_cb2)

im1 = ax_1.imshow(np.random.randn(100, 100), origin='lower', cmap='rainbow')
im2 = ax_2.imshow(100*np.random.randn(100, 100), origin='lower', cmap='rainbow')
fig.colorbar(im1, ax_cb1)
fig.colorbar(im2, ax_cb2)
fig.savefig('divider.png', transparent=True)
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;a href="2023-10-12-coding-matplotlib/divider.py"&gt;divider.py&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src="2023-10-12-coding-matplotlib/divider.png" alt="divider" /&gt;&lt;/p&gt;
&lt;h1 id="双重坐标轴"&gt;双重坐标轴&lt;/h1&gt;
&lt;pre&gt;&lt;code class="language-python"&gt;import numpy as np
import matplotlib.pyplot as plt
fig = plt.figure()
ax00 = fig.add_subplot(1, 2, 1)
ax00twin = ax00.twiny()
ax01 = fig.add_subplot(1, 2, 2)

x = np.linspace(0, 6, 100)
xtwin = np.linspace(0, 60, 100)
ax00.plot(x, np.sin(x), 'b-')
# ax00twin.plot(xtwin, np.cos(0.1*xtwin), 'r--')
ax00twin.set_xticks([0, 100, 200])
ax00.set_xlim(0, 6)
ax00twin.set_xlim(0, 200)

ax01.plot(x, np.cos(x))
ax01.secondary_xaxis(location='top', functions=(lambda x: 2*x, lambda x: 2*x))
fig.savefig('double_ax.png', transparent=True)
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;img src="2023-10-12-coding-matplotlib/double_ax.png" alt="image-double_ax" /&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="2023-10-12-coding-matplotlib/double_ax.py"&gt;double_ax.py&lt;/a&gt;&lt;/p&gt;
&lt;h1 id="示例-phys-rev-b-108-054313-2023-fig1"&gt;示例 Phys. Rev. B 108, 054313 (2023) fig1&lt;/h1&gt;
&lt;pre&gt;&lt;code class="language-python"&gt;import matplotlib.pyplot as plt
from matplotlib import rc
import numpy as np
import json
import os
from types import SimpleNamespace


def get_file_name(path):
    fn = os.path.basename(path)
    fn, _ = os.path.splitext(fn)
    return fn


def prettify_plot():
    &amp;quot;&amp;quot;&amp;quot;
    change the plot matplotlibrc file

    To use it, please run it before plotting.

    https://matplotlib.org/stable/tutorials/introductory/customizing.html#customizing-with-matplotlibrc-files
    &amp;quot;&amp;quot;&amp;quot;
    rc('text', usetex=True)
    rc('font', family='serif', serif='Computer Modern Roman', size=8)
    # rc('legend', fontsize=10)
    # rc('mathtext', fontset='cm')
    rc('xtick', direction='in')
    rc('ytick', direction='in')


class FigureData:
    &amp;quot;&amp;quot;&amp;quot;
    A dict which figure data save in.
    For example:
        save:
            x1 = [1, 2, 3]
            y1 = [1, 2, 3]
            x2 = [2, 3, 4]
            y2 = [2, 3, 4]
            fd = FigureData()
            fd.add_data('x1', x1)
            fd.add_data('y1', y1)
            fd.add_data('x2', x2)
            fd.add_data('y2', y2)
            fd.save_data('mydata')
        load:
            fd = FigureData()
            fd.load_data('mydata')
            x1 = fd.d.x1
            y1 = fd.d.y1
            x2 = fd.d.x2
            y2 = fd.d.y2
    &amp;quot;&amp;quot;&amp;quot;
    def __init__(self):
        self.data = {}

    def add_data(self, name, data):
        self.data[name] = data

    def save_data(self, file_name):
        with open(file_name + '.json', 'w') as f:
            json.dump(self.data, f)

    def load_data(self, file_name):
        with open(file_name + '.json', 'r') as f:
            self.data = json.load(f)
        self.d = SimpleNamespace(**self.data)


arrowprops = {&amp;quot;color&amp;quot;: 'tab:pink',
              &amp;quot;shrink&amp;quot;: 0.05,
              &amp;quot;width&amp;quot;: 1,
              &amp;quot;headwidth&amp;quot;: 4,
              &amp;quot;headlength&amp;quot;: 7}
gap_arrowprops = {&amp;quot;color&amp;quot;: 'black',
                  &amp;quot;arrowstyle&amp;quot;: '&amp;lt;|-|&amp;gt;',
                  'shrinkA': 0,
                  'shrinkB': 0}

fd = FigureData()
fd.load_data(get_file_name(__file__)[:-4])

prettify_plot()



fig = plt.figure(figsize=(6.75, 3.5))

gs = fig.add_gridspec(nrows=100, ncols=100,
                      left=.08, bottom=.1, right=.99, top=.94,
                      wspace=1, hspace=1)

ax_a = fig.add_subplot(gs[0:40, 0:30])
ax_a_ins = ax_a.inset_axes([.12, .15, .39, .2])
ax_b = fig.add_subplot(gs[0:40, 35:65])
ax_b_ins = ax_b.inset_axes([.1, .13, .34, .23])
ax_c = fig.add_subplot(gs[0:40, 70:])
ax_c_ins = ax_c.inset_axes([.3, .65, .4, .27])
ax_d = fig.add_subplot(gs[55:, 0:20])
ax_e = fig.add_subplot(gs[55:, 23:43])
ax_f = fig.add_subplot(gs[55:, 46:66])
ax_g = fig.add_subplot(gs[55:, 69:89])
ax_cbar = fig.add_subplot(gs[56:-1, 90:92])

ax_a.plot(fd.d.on_hop_val_real, fd.d.on_hop_val_imag,
          marker='o', ms=2, lw=0, mec='none')
ax_a.set_ylabel(r'Im$[\lambda]$')
ax_a.set_xlabel(r'Re$[\lambda]$')
ax_a.xaxis.set_label_coords(.5, -.2)
ax_a.yaxis.set_label_coords(-.2, .5)
ax_a.text(-.2, .83, '(a)', transform=ax_a.transAxes)
vec_i = [-1, -2, 100, 0]
vmax = 1
vmin = 0
ax_a.annotate('(iii)', [fd.d.on_hop_val_real[vec_i[2]],
                        fd.d.on_hop_val_imag[vec_i[2]]],
              [.85, .85], arrowprops=arrowprops, textcoords='axes fraction')
ax_a.annotate('(iv)', [fd.d.on_hop_val_real[vec_i[3]],
                       fd.d.on_hop_val_imag[vec_i[3]]],
              [.1, .8], arrowprops=arrowprops, textcoords='axes fraction')
ax_a_ins.annotate('(i)', [fd.d.on_hop_val_real[vec_i[0]],
                          fd.d.on_hop_val_imag[vec_i[0]]],
                  [.6, 3.5], arrowprops=arrowprops,
                  textcoords='axes fraction')
ax_a_ins.annotate('(ii)', [fd.d.on_hop_val_real[vec_i[1]],
                           fd.d.on_hop_val_imag[vec_i[1]]],
                  [.3, 3], arrowprops=arrowprops,
                  textcoords='axes fraction')

ax_a_ins.plot(fd.d.on_hop_val_real, fd.d.on_hop_val_imag,
              marker='o', ms=3, lw=0, mec='none')
ax_a_ins.annotate('', [0, 0],
                  [-70, 10], arrowprops=gap_arrowprops)
ax_a_ins.text(-55, -1.8e6, r'$\Delta$')

ax_a_ins.set_xlim(-300, 50)
ax_a_ins.set_ylim(-2e6, 2e6)
_, connector_lines_a = ax_a.indicate_inset_zoom(ax_a_ins, edgecolor=&amp;quot;black&amp;quot;,
                                                alpha=1, lw=.7)
for cl in connector_lines_a:
    cl.set(lw=.7)

ax_b.plot(fd.d.on_no_hop_val_real, fd.d.on_no_hop_val_imag,
          marker='o', ms=3, lw=0, mec='none')
ax_b_ins.plot(fd.d.on_no_hop_val_real, fd.d.on_no_hop_val_imag,
              marker='o', ms=3, lw=0, mec='none')
ax_b_ins.set_xlim(-30, 5)
ax_b_ins.set_ylim(-1e6, 1e6)
ax_b_ins.annotate('', [0, 0],
                  [-11, 0], arrowprops=gap_arrowprops)
ax_b_ins.text(-8, 3e5, r'$\Delta$')

_, connector_lines_b = ax_b.indicate_inset_zoom(ax_b_ins, edgecolor=&amp;quot;black&amp;quot;,
                                                alpha=1, lw=.7)
for cl in connector_lines_b:
    cl.set(lw=.7)

# ax_b.set_yticks([])
ax_b.text(-.1, .83, '(b)', transform=ax_b.transAxes)
ax_b.set_xlabel(r'Re$[\lambda]$')
ax_b.xaxis.set_label_coords(.5, -.2)

ax_c.plot(fd.d.no_on_hop_val_real, fd.d.no_on_hop_val_imag,
          marker='o', ms=3, lw=0, mec='none')
ax_c.set_ylim(-1, 1)
ax_c.text(-.13, .83, '(c)', transform=ax_c.transAxes)
ax_c.set_xlabel(r'Re$[\lambda]$')
ax_c.xaxis.set_label_coords(.5, -.2)
ax_c_ins.plot(fd.d.no_on_hop_val_real, fd.d.no_on_hop_val_imag,
              marker='o', ms=3, lw=0, mec='none')
ax_c_ins.set_xlim(-200, 100)
ax_c_ins.set_ylim(-.1, .1)
ax_c_ins.annotate('', [0, 0],
                  [-65, 0], arrowprops=gap_arrowprops)
ax_c_ins.text(-55, .02, r'$\Delta$')

_, connector_lines_c = ax_c.indicate_inset_zoom(ax_c_ins, edgecolor=&amp;quot;black&amp;quot;,
                                                alpha=1, lw=.7)
for cl in connector_lines_c:
    cl.set(lw=.7)

# ax_e.plot([5], [15],
#           'gx', ms=2)
# ax_d.plot([5], [15],
#           'rx', ms=2)
# ax_f.plot([5], [15],
#           'bx', ms=2)
# ax_g.plot([5], [15],
#           color='orange', marker='x', ms=2)

im_d = ax_d.imshow(fd.d.on_hop_vecs_abs[vec_i[0]],
                   cmap='jet', origin='lower', vmax=vmax, vmin=vmin)
ax_d.text(-.3, .9, '(d)', transform=ax_d.transAxes)
ax_d.set_xlabel(r'$m$')
ax_d.set_ylabel(r'$n$')
ax_d.xaxis.set_label_coords(.5, -.2)
ax_d.yaxis.set_label_coords(-.3, .5)
ax_d.set_title('(i)')

ax_e.imshow(fd.d.on_hop_vecs_abs[vec_i[1]],
            cmap='jet', origin='lower', vmax=vmax, vmin=vmin)
ax_e.set_yticks([])
ax_e.set_xlabel(r'$m$')
ax_e.xaxis.set_label_coords(.5, -.2)
ax_e.set_title('(ii)')

ax_f.imshow(fd.d.on_hop_vecs_abs[vec_i[2]],
            cmap='jet', origin='lower', vmax=vmax, vmin=vmin)
ax_f.set_yticks([])
ax_f.set_xlabel(r'$m$')
ax_f.xaxis.set_label_coords(.5, -.2)
ax_f.set_title('(iii)')

ax_g.imshow(fd.d.on_hop_vecs_abs[vec_i[3]],
            cmap='jet', origin='lower', vmax=vmax, vmin=vmin)
ax_g.set_yticks([])
ax_g.set_xlabel(r'$m$')
ax_g.xaxis.set_label_coords(.5, -.2)
ax_g.set_title('(iv)')

ax_cbar.tick_params(size=0)
ax_cbar.set_title(r'$\rho_{nm}$')
fig.colorbar(im_d, cax=ax_cbar)
fig.savefig(get_file_name(__file__)[:-4] + '.pdf', dpi=200)
fig.savefig(get_file_name(__file__)[:-4] + '.png', dpi=200, transparent=True)
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;画图数据：&lt;a href="2023-10-12-coding-matplotlib/fig2/fig2.json"&gt;fig2.json&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src="2023-10-12-coding-matplotlib/fig2/fig2.png" alt="image-fig2" /&gt;&lt;/p&gt;
&lt;h1 id="参考资料"&gt;参考资料&lt;/h1&gt;
&lt;ol&gt;
&lt;li&gt;&lt;a href="https://matplotlib.org/stable/"&gt;https://matplotlib.org/stable/&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;
</content><category term="软件使用"/><category term="python"/><category term="matplotlib"/></entry><entry><title>Scattering Summarize</title><link href="https://zqw.ink/2023-09-15-physics-scattering.html" rel="alternate"/><published>2023-09-15T00:00:00+08:00</published><updated>2023-09-15T00:00:00+08:00</updated><author><name>ZQW</name></author><id>tag:zqw.ink,2023-09-15:/2023-09-15-physics-scattering.html</id><summary type="html">&lt;!-- toc --&gt;
&lt;!-- more --&gt;
&lt;p&gt;挖个坑，之后慢慢填。&lt;/p&gt;
&lt;h1 id="一维方势阱"&gt;一维方势阱&lt;/h1&gt;
&lt;pre&gt;&lt;code class="language-python"&gt;import numpy as np
import matplotlib.pyplot as plt

def S(E, V0, a):
    &amp;quot;&amp;quot;&amp;quot;0&amp;lt;E&amp;lt;V0
    曾谨言. 量子力学（卷1）, 2007. Eq(3.3.15)
    &amp;quot;&amp;quot;&amp;quot;
    k = np.sqrt(2*E)
    K …&lt;/code&gt;&lt;/pre&gt;</summary><content type="html">&lt;!-- toc --&gt;
&lt;!-- more --&gt;
&lt;p&gt;挖个坑，之后慢慢填。&lt;/p&gt;
&lt;h1 id="一维方势阱"&gt;一维方势阱&lt;/h1&gt;
&lt;pre&gt;&lt;code class="language-python"&gt;import numpy as np
import matplotlib.pyplot as plt

def S(E, V0, a):
    &amp;quot;&amp;quot;&amp;quot;0&amp;lt;E&amp;lt;V0
    曾谨言. 量子力学（卷1）, 2007. Eq(3.3.15)
    &amp;quot;&amp;quot;&amp;quot;
    k = np.sqrt(2*E)
    K = np.sqrt(2*(V0-E))
    S_val = -2j*k/K
    S_val /= (1 - (k/K)**2) * np.sinh(K*a) - 2j*k/K*np.cosh(K*a)
    S_val *= np.exp(-1j*k*a)
    return S_val

def R(E, V0, a):
    &amp;quot;&amp;quot;&amp;quot;0&amp;lt;E&amp;lt;V0&amp;quot;&amp;quot;&amp;quot;
    k = np.sqrt(2*E)
    K = np.sqrt(2*(V0-E))
    R_val = S(E, V0, a) * (1+1j*k/K) * np.exp(1j*k*a - K*a)
    R_val -= 1+1j*k/K
    R_val /= 1-1j*k/K
    return R_val

def f_kk(E, V0, a):
    return (S(E, V0, a)-1)*2*np.pi/1j

def f_mkk(E, V0, a):
    return R(E, V0, a)*2*np.pi*1j

def sigma_total(E, V0, a):
    k = np.sqrt(2*E)
    return (np.abs(f_kk(E, V0, a))**2 + np.abs(f_mkk(E, V0, a))**2)/k

def sigma_total_optical_theorems(E, V0, a):
    k = np.sqrt(2*E)
    return 4*np.pi*f_kk(E, V0, a).imag/k

a = 0.2
V0 = 5
Es = np.linspace(1e-2, V0, 100, endpoint=False)
Ss = []
Rs = []
sigma_total_s = []
optical_theorem_s = []
sigma_kk_s = []
sigma_mkk_s = []
f_kk_s = []
f_mkk_s = []
for ei in Es:
    Ss.append(S(ei, V0, a))
    Rs.append(R(ei, V0, a))
    sigma_total_s.append(sigma_total(ei, V0, a))
    optical_theorem_s.append(sigma_total_optical_theorems(ei, V0, a))
    sigma_kk_s.append(np.abs(f_kk(ei, V0, a))**2/np.sqrt(2*ei))
    sigma_mkk_s.append(np.abs(f_mkk(ei, V0, a))**2/np.sqrt(2*ei))
    f_kk_s.append(f_kk(ei, V0, a))
    f_mkk_s.append(f_mkk(ei, V0, a))

plt.plot(Es, np.abs(Ss)**2, label=r'$|S|^2$')
plt.plot(Es, np.abs(Rs)**2, label=r'$|R|^2$')
plt.plot(Es, ((np.array(Rs).conjugate())*np.array(Ss) - np.array(Rs)*(np.array(Ss).conjugate())).real, 'x')
plt.xlabel('in coming energy E')
plt.legend()
plt.savefig('fig.png', transparent=True)
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;img src="./2023-09-15-physics-Scattering/fig.png" alt="image-scattering" /&gt;&lt;/p&gt;
&lt;h1 id="参考资料"&gt;参考资料&lt;/h1&gt;
&lt;ol&gt;
&lt;li&gt;曾谨言. 量子力学（卷1）, 2007.&lt;/li&gt;
&lt;/ol&gt;
</content><category term="专业笔记"/><category term="scattering"/><category term="physic"/></entry><entry><title>Classical Forced Oscillator 经典受迫振动</title><link href="https://zqw.ink/2023-05-05-physics-damp-drive-oscillator.html" rel="alternate"/><published>2023-05-05T00:00:00+08:00</published><updated>2023-05-05T00:00:00+08:00</updated><author><name>ZQW</name></author><id>tag:zqw.ink,2023-05-05:/2023-05-05-physics-damp-drive-oscillator.html</id><summary type="html">
&lt;h2&gt;model&lt;/h2&gt;


$$\begin{align}
\ddot{x} = - \omega^2 x + F(t)
\end{align}$$


&lt;p&gt;In Landau's book, the solution(non-resoance) is&lt;/p&gt;


$$\begin{align}
\xi(t) = e^{\mathrm{i}\omega t} \int_0^t \mathrm{d}t' \cdot F(t') e^{-\mathrm{i}\omega t'}
\end{align}$$



$$\begin{align}
x(t) = A \sin(\omega …</summary><content type="html">
&lt;h2&gt;model&lt;/h2&gt;


$$\begin{align}
\ddot{x} = - \omega^2 x + F(t)
\end{align}$$


&lt;p&gt;In Landau's book, the solution(non-resoance) is&lt;/p&gt;


$$\begin{align}
\xi(t) = e^{\mathrm{i}\omega t} \int_0^t \mathrm{d}t' \cdot F(t') e^{-\mathrm{i}\omega t'}
\end{align}$$



$$\begin{align}
x(t) = A \sin(\omega t) + B \cos(\omega t) + \frac{\mathrm{Im}[\xi(t)]}{\omega}
\end{align}$$


&lt;p&gt;where&lt;/p&gt;


$$\begin{align}
B =&amp; x(t) \\
A =&amp; \frac{1}{\omega} \left( \dot{x}(0) - \frac{\dot{\xi}(0)}{\omega} \right)
\end{align}$$


&lt;h2&gt;solve by Fourier transform&lt;/h2&gt;

&lt;p&gt;For&lt;/p&gt;

$$\begin{align}
F(t) = f_{\gamma} \cos(\gamma t)
\end{align}$$

&lt;p&gt;it is easy get&lt;/p&gt;

$$\begin{align}
x_{\gamma}(t) = A \cos(\omega t + \phi) + \frac{f_{\gamma}}{\omega^2 - \gamma^2} \cos(\gamma t)
\end{align}$$


&lt;p&gt;Similar for&lt;/p&gt;

$$\begin{align}
F(t) = f_{\gamma} \sin(\gamma t)
\end{align}$$

&lt;p&gt;For non-resonance case, it is easy get&lt;/p&gt;

$$\begin{align}
x_{\gamma}(t) = A \cos(\omega t + \phi) + \frac{f_{\gamma}}{\omega^2 - \gamma^2} \sin(\gamma t)
\end{align}$$


&lt;p&gt;So, for&lt;/p&gt;

$$\begin{align}
F(t) = \frac{1}{\sqrt{2\pi}} \int_{-\infty}^{\infty}
\tilde{F}(\gamma) e^{\mathrm{i}\gamma t}
 \mathrm{d}\gamma
\end{align}$$

&lt;p&gt;where&lt;/p&gt;

$$\begin{align}
\tilde{F}(\gamma) = \frac{1}{\sqrt{2\pi}} \int_{-\infty}^{\infty} F(t)
e^{-\mathrm{i}(\gamma + \mathrm{i} 0^+) t}
 \mathrm{d}t
\end{align}$$

&lt;p&gt;(where $\mathrm{i}0^{ + }$ is for the Fourier transforms
such as sine function) we have&lt;/p&gt;

$$\begin{align}
x(t) = A \cos(\omega t + \phi) + x_1(t)
\end{align}$$

&lt;p&gt;where&lt;/p&gt;

$$\begin{align}
x_1(t) = \mathcal{P}\frac{1}{\sqrt{2\pi}}\int_{-\infty}^{\infty} \mathrm{d}\gamma\cdot
\frac{\tilde{F}(\gamma)}{\omega^2 - \gamma} e^{ \mathrm{i}\gamma t}
\end{align}$$

&lt;p&gt;becasue we only consider the non-resoance case, the principal value
$\mathcal{P}$ is added.
We can use the identity(Sokhotski–Plemelj theorem)&lt;/p&gt;

$$\begin{align}
\int_0^{\infty} \mathrm{d} s\cdot e^{- \mathrm{i}(\omega + \mathrm{i}0^+) s}
= \frac{1}{\mathrm{i}(\omega + \mathrm{i}0^+)}
 = \pi\delta(\omega) - \mathrm{i}\mathcal{P} \frac{1}{\omega}
\end{align}$$

&lt;p&gt;get a more physical form&lt;/p&gt;

$$\begin{align}
x_1(t) =&amp;    \frac{1}{\sqrt{2\pi}} \mathcal{P}\int_{-\infty}^{\infty} \mathrm{d}\gamma\cdot
\frac{1}{2\omega}\left[
\frac{1}{\omega - \gamma} + \frac{1}{\omega + \gamma}
 \right]
\tilde{F}(\gamma) e^{ \mathrm{i}\gamma  t}
 \\
 =&amp;   \frac{1}{2\omega} (-1) \mathrm{Im} \left\{
\int_0^{\infty} \mathrm{d}s \cdot e^{- \mathrm{i}(\omega + \mathrm{i}0^+) s} \left[
F(t + s) + F(t - s)
 \right]
 \right\}
\end{align}$$

&lt;p&gt;We also add $\mathrm{i}0^+$ here for a possible $\lim_{t\to\infty}F(t)\neq 0$,
such as $F(t) = \sin(t)$ .
We can also substract a homogeous solution from it to get the solution in
Landau's book&lt;/p&gt;

$$\begin{align}
x_1(t) + \frac{1}{2\omega} \mathrm{Im} \left\{
e^{\mathrm{i}\omega t} \left[
\int_0^{\infty} e^{- \mathrm{i}(\omega + \mathrm{i} 0^+) s} F(s)\mathrm{d}s -
\int_{-\infty}^0 e^{- \mathrm{i}(\omega + \mathrm{i} 0^+) s} F(s)\mathrm{d}s
 \right]
 \right\} = \frac{\mathrm{Im}[\xi(t)]}{\omega}
\end{align}$$


&lt;p&gt;All these are check by the following numerical code&lt;/p&gt;

&lt;h2&gt;code&lt;/h2&gt;

&lt;pre&gt;&lt;code class="language-python"&gt;import numpy as np
import matplotlib.pyplot as plt
from scipy.integrate import odeint
from scipy.integrate import quad


def quad_c(func, *args, **kwargs):
    re = quad(lambda x: func(x).real, *args, **kwargs)
    im = quad(lambda x: func(x).imag, *args, **kwargs)
    return re[0]+1j*im[0], re[1]+1j*im[1]


def ftrans(func, x):
    res = quad_c(func, 0, np.inf, weight='cos', wvar=x)[0]
    res += 1j*quad(func, 0, np.inf, weight='sin', wvar=x)[0]
    res += quad(func, -np.inf, 0, weight='cos', wvar=x)[0]
    res += 1j*quad(func, -np.inf, 0, weight='sin', wvar=x)[0]
    return res/np.sqrt(2*np.pi)


class Oscillator:
    def __init__(self, w, Ft, x0, v0):
        """
        dx^2/dt^2 + w^2 = Ft
        w: oemga
        Ft: function of t
        x0: intial position
        v0: intial dx/dt, volecity
        """
        self.w = w
        self.Ft = Ft
        self.x0 = x0
        self.v0 = v0

    def dX_dt(self, X, t):
        return [X[1], -self.w**2*X[0] + self.Ft(t)]

    def xi_im_landau(self, t):
        """
        Imaginary part of Landau (22.10) with out xi_0
        """
        xil = - quad(self.Ft, 0, t,
                     weight='sin', wvar=self.w)[0] * np.cos(self.w*t)
        xil += quad(self.Ft, 0, t,
                    weight='cos', wvar=self.w)[0] * np.sin(self.w*t)
        return xil

    def X_t_ana(self, t, ts):
        xt = self.xi_im_landau(t) / self.w

        xt += np.cos(self.w*t) * self.x0

        dxi_dt0 = self.xi_im_landau(ts[1]) - self.xi_im_landau(ts[0])
        dxi_dt0 /= ts[1] - ts[0]

        xt += np.sin(self.w*t) * (self.v0 - dxi_dt0/self.w) / self.w
        return xt

    def X_t_ana_FT(self, t):
        xt = quad(lambda s: (self.Ft(t+s) + self.Ft(t-s)), 0, np.inf,
                  weight='sin', wvar=self.w)[0]
        xt /= (2*self.w)

        cor = np.sin(self.w*t) * quad(self.Ft, 0, np.inf,
                                      weight='cos', wvar=self.w)[0]
        cor -= np.cos(self.w*t) * quad(self.Ft, 0, np.inf,
                                       weight='sin', wvar=self.w)[0]
        cor -= np.sin(self.w*t) * quad(self.Ft, -np.inf, 0,
                                       weight='cos', wvar=self.w)[0]
        cor += np.cos(self.w*t) * quad(self.Ft, -np.inf, 0, weight='sin',
                                       wvar=self.w)[0]

        xt += cor/(2*self.w)
        xt += np.cos(self.w*t) * self.x0

        dxi_dt0 = self.xi_im_landau(ts[1]) - self.xi_im_landau(ts[0])
        dxi_dt0 /= ts[1] - ts[0]

        xt += np.sin(self.w*t) * (self.v0 - dxi_dt0/self.w) / self.w
        return xt

    def Xt_ode(self, ts):
        Xs = odeint(self.dX_dt, [self.x0, self.v0], ts)
        return Xs


osc = Oscillator(w=.5, Ft=lambda t: 5*np.exp(-(t-10)**2), x0=.7, v0=.5)
ts = np.linspace(0, 30, 300)
plt.plot(ts, [osc.X_t_ana_FT(ti) for ti in ts], 'ro', mfc='None', ms=10,
         label='Fourier')
plt.plot(ts, osc.Xt_ode(ts)[:, 0], 'bx', label="Numerically solve ODE")
plt.plot(ts, [osc.X_t_ana(ti, ts) for ti in ts], 'g', label='Analytic', lw=2)
plt.xlabel('t')
plt.legend()
plt.savefig('osc.png', transparent=True)
plt.show()&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&lt;a href='2023-05-05-physics-damp-drive-oscillator/osc.py'&gt;osc.py&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;p&gt;&lt;img src='2023-05-05-physics-damp-drive-oscillator/osc.png' alt='osc_fig' max-width:100%&gt;&lt;p&gt;&lt;/p&gt;

&lt;h2&gt;Caution&lt;/h2&gt;

&lt;p&gt;&lt;code&gt;scipy.integrate.quad&lt;/code&gt; method gives a wrong result when use &lt;code&gt;weight&lt;/code&gt; and
infinity integral range. The following integral are not converge, but the code
give a result without waring or error. Why? if I have time, ...&lt;/p&gt;

&lt;pre&gt;&lt;code class="language-python"&gt;import numpy as np
import matplotlib.pyplot as plt
from scipy.integrate import quad


def quad_recorded(func, *args, **kwargs):
    """
    use scipy.integrate.quad, but return the results with additional
    information "nc" and "vc"
    Returns:
        inte_res: the return of scipy.integrate.quad
              nc: the points calculated
              vc: the calculated functiona values
    """
    def func_recorded(x, node_container, value_container):
        res = func(x)
        node_container.append(x)
        value_container.append(res)
        return res
    nc = []
    vc = []
    inte_res = quad(lambda x: func_recorded(x, node_container=nc,
                                            value_container=vc),
                    *args, **kwargs)
    idx = np.argsort(np.array(nc))
    nc = np.array(nc)[idx].tolist()
    vc = np.array(vc)[idx].tolist()
    return inte_res, nc, vc


r, nc, vc = quad_recorded(np.sin, 0, np.inf, weight='sin', wvar=0.2)
plt.plot(nc, vc, '-x')
plt.savefig('caution.png', transparent=True)
print(r)&lt;/code&gt;&lt;/pre&gt;

&lt;pre&gt;&lt;code class="language-python"&gt;  &amp;gt;&amp;gt;&amp;gt; (2.4313884239290928e-14, 2.0748702051907655e-10)&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&lt;a href='2023-05-05-physics-damp-drive-oscillator/caution.py'&gt;caution.py&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;p&gt;&lt;img src='2023-05-05-physics-damp-drive-oscillator/caution.png' alt='caution.png' max-width:100%&gt;&lt;p&gt;&lt;/p&gt;

&lt;h2&gt;Reference&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Mechanics, Third Edition: Volume 1 (Course of Theoretical Physics)&lt;/li&gt;
&lt;li&gt;&lt;a href='https://en.wikipedia.org/wiki/Sokhotski%E2%80%93Plemelj_theorem'&gt;Wikipedia: Sokhotski–Plemelj theorem&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</content><category term="专业笔记"/><category term="物理"/><category term="Oscillator"/></entry><entry><title>Intel AI Analytics Toolkit 加速 numpy, scipy</title><link href="https://zqw.ink/2023-04-23-coding-intel_python.html" rel="alternate"/><published>2023-04-23T00:00:00+08:00</published><updated>2023-04-23T00:00:00+08:00</updated><author><name>ZQW</name></author><id>tag:zqw.ink,2023-04-23:/2023-04-23-coding-intel_python.html</id><summary type="html">
&lt;h2&gt;MATLAB&lt;/h2&gt;

&lt;pre&gt;&lt;code class="language-matlab"&gt;clear all;
clc;

a = rand(1220,1220);
tic;
for i=1:10
    fprintf("%i", i)
    eig(a);
end
toc;&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;返回结果如下：&lt;/p&gt;

&lt;pre&gt;&lt;code class="language-matlab"&gt;12345678910Elapsed time is 6.629721 seconds.&lt;/code&gt;&lt;/pre&gt;

&lt;h2&gt;Python&lt;/h2&gt;

&lt;pre&gt;&lt;code class="language-python"&gt;import numpy as np
from scipy.linalg import eig
from time import perf_counter
import sys

a = np …&lt;/code&gt;&lt;/pre&gt;</summary><content type="html">
&lt;h2&gt;MATLAB&lt;/h2&gt;

&lt;pre&gt;&lt;code class="language-matlab"&gt;clear all;
clc;

a = rand(1220,1220);
tic;
for i=1:10
    fprintf("%i", i)
    eig(a);
end
toc;&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;返回结果如下：&lt;/p&gt;

&lt;pre&gt;&lt;code class="language-matlab"&gt;12345678910Elapsed time is 6.629721 seconds.&lt;/code&gt;&lt;/pre&gt;

&lt;h2&gt;Python&lt;/h2&gt;

&lt;pre&gt;&lt;code class="language-python"&gt;import numpy as np
from scipy.linalg import eig
from time import perf_counter
import sys

a = np.random.randn(1220, 1220)

tic = perf_counter()
for i in range(10):
    print(i, end='\r')
    np.linalg.eig(a)
toc = perf_counter()
print("Elapsed time is ", toc-tic)&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;返回结果如下：&lt;/p&gt;

&lt;pre&gt;&lt;code class="language-python"&gt;Elapsed time is  93.00676925900007&lt;/code&gt;&lt;/pre&gt;

&lt;h2&gt;Intel Python&lt;/h2&gt;

&lt;p&gt;与上面相同的程序，返回结果如下：&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-python"&gt;Elapsed time is  7.760291491999851&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;与 MATLAB 相近的水平。&lt;/p&gt;

&lt;h2&gt;总结&lt;/h2&gt;

&lt;p&gt;Intel 优化编译版本的 python ，在底层与 MATLAB 相似，会调用多个核。
除此以外 &lt;code&gt;scipy.linalg&lt;/code&gt; 需要手动根据不同的矩阵选择不同的方法。比如对于实对称矩阵，
选择 &lt;code&gt;eigh&lt;/code&gt; 会大大提升效率。而 MATLAB 则不需要手动选择。&lt;/p&gt;

&lt;p&gt;重要的是想法，而选择什么方法，只是一种手段。&lt;/p&gt;

&lt;h2&gt;Reference&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href='https://www.intel.com/content/www/us/en/developer/tools/oneapi/ai-analytics-toolkit.html#gs.w44gqo'&gt;Intel® AI Analytics Toolkit (AI Kit)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href='https://www.intel.com/content/www/us/en/developer/tools/oneapi/distribution-for-python.html#gs.w44b4p'&gt;Intel® Distribution for Python&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</content><category term="软件使用"/><category term="python"/><category term="intel python"/></entry><entry><title>开放系统读书会：非选择测量，连续测量，量子芝诺效应</title><link href="https://zqw.ink/2023-03-28-physics-quantum_zeno_effect.html" rel="alternate"/><published>2023-03-28T00:00:00+08:00</published><updated>2023-03-28T00:00:00+08:00</updated><author><name>ZQW</name></author><id>tag:zqw.ink,2023-03-28:/2023-03-28-physics-quantum_zeno_effect.html</id><summary type="html">

&lt;h2&gt;直接连续测量的量子芝诺效应（The Quantum Zeno Effect）&lt;/h2&gt;

&lt;p&gt;量子芝诺效应的名字起源于经典的芝诺悖论。芝诺悖论提出：一个飞行中的箭矢 …&lt;/p&gt;</summary><content type="html">

&lt;h2&gt;直接连续测量的量子芝诺效应（The Quantum Zeno Effect）&lt;/h2&gt;

&lt;p&gt;量子芝诺效应的名字起源于经典的芝诺悖论。芝诺悖论提出：一个飞行中的箭矢在任意一个
时刻都是静止在空中的，所以它不可能处于运动状态。
(see &lt;a href='https://zh.wikipedia.org/wiki/%E9%87%8F%E5%AD%90%E8%8A%9D%E8%AF%BA%E6%95%88%E5%BA%94'&gt;Wikipedia: 量子芝诺效应&lt;/a&gt;)&lt;/p&gt;

&lt;p&gt;考虑分立的非简并的测量&lt;/p&gt;

$$\begin{align}
A = \sum_n a_n |\psi_n\rangle \langle \psi_n|
\end{align}$$

&lt;p&gt;我们每间隔时间 $\theta$ 就测一下。在两次测量之间，系统由薛定谔方程演化&lt;/p&gt;

$$\begin{align}
\mathrm{i}\frac{\partial}{\partial t}|\psi(t)\rangle = H |\psi(t)\rangle
\end{align}$$

&lt;p&gt;在 $\theta\to 0$ 的极限下，就叫做可观测量 $A$ 的&lt;em&gt;连续测量&lt;/em&gt;。
现在假设系统的初态是 $A$ 的一个本征态&lt;/p&gt;

$$\begin{align}
|\psi(0)\rangle = |\psi_n\rangle
\end{align}$$

&lt;p&gt;经过很短的时间 $\theta$ 后，测量一下&lt;/p&gt;

$$\begin{align}
\langle\psi(\theta)|A|\psi(\theta)\rangle = \sum_m a_m |\langle\psi(\theta)|\psi_m\rangle|^2 \equiv \sum_n a_m \omega_{mn}(\theta)
\end{align}$$

&lt;p&gt;也就是说，测量结果是 $a_m$ 的概率为 $\omega_{mn}$ 。
那么测量结果是 $a_n$ ，也就是系统仍处于与初态相同的本征态上的概率为 $\omega_{nn}$ 。
系统的在很短时间内的演化可以将演化算符级数展开，只考虑前几阶&lt;/p&gt;

$$\begin{align}
|\psi(t)\rangle = \left[
I - \mathrm{i} H t - \frac{1}{2}H^2 t^2 + \cdots
 \right] |\psi_n\rangle
\end{align}$$

&lt;p&gt;由此可以得到 $\omega_{nn}$ 短时极限下的行为&lt;/p&gt;

$$\begin{align}
\omega_{nn} = 1 - (\Delta E)_n^2\theta^2 + \cdots
\end{align}$$

&lt;p&gt;$(\Delta E)_n^2$ 为能量的方差，也就是能量的不确定度&lt;/p&gt;

$$\begin{align}
(\Delta E)_n^2 = \langle\psi_n| H^2 | \psi_n\rangle - \langle\psi_n| H | \psi_n\rangle^2
\end{align}$$

&lt;p&gt;在经过一段时间 $\tau = k\theta$ 后，我们经过了 $k$ 次测量，那么，系统仍处于与初态相同
的本征态上的概率为（在连续测量，即 $\theta = \tau/k \to 0$ ，的极限下）&lt;/p&gt;

$$\begin{align}
\omega_{nn}(\tau) \approx \left[ 1 - (\Delta E)_n^2 \frac{\tau \theta}{k} \right]^k
\approx e^{- (\Delta E)_n^2 \tau \theta} \to 1
\end{align}$$

&lt;p&gt;也就是说，如果系统处于测量的一个本征态上，在连续测量极限下，系统会一直处在这个本
征态上。此即量子芝诺效应。形式上的原因是：离开初态本征态的概率
$1-\omega_{nn}(\theta)\propto \theta^2$ ，而测量次数的增加正比与 $\theta^{-1}$ 。&lt;/p&gt;

&lt;h2&gt;间接连续测量的有效主方程&lt;/h2&gt;

&lt;p&gt;间接测量是使一个探测粒子（probe particle）与被测粒子（object）耦合，&lt;/p&gt;

$$\begin{align}
H_I (t) = g(t) AQ
\end{align}$$

&lt;p&gt;$Q$ 是 probe particle 的物理量，$A$ 是我们想要测量的 object 的
可观测量。我们实际测量的是 probe particle 的与 $Q$ 共轭的物理量 $P$ 。
换句话将，我们通过实际测量 probe particle 的 $P$ ， 来间接的测量
object 的 $A$ 。 $g(t)$ 是耦合强度。&lt;/p&gt;

&lt;p&gt;假设我们的 probe particle 处于与 object 初态相同的态（ $t$ 时刻）
$|\phi_{\theta}\rangle$ 上，
即 $\rho_P(t) = |\phi_{\theta}\rangle\langle\phi_{\theta}|$
。并且，在短时
间内，probe particle 主要由 $H_I(t)$ 来演化，那么我们对 probe particle 测量 $P$&lt;/p&gt;

$$\begin{align}
\langle p| e^{-\mathrm{i}\int \mathrm{d}t \cdot H_I(t)}|\phi_{\theta}\rangle
\equiv \langle p| e^{-\mathrm{i}GAQ}|\phi_{\theta}\rangle
\end{align}$$

&lt;p&gt;$|p\rangle$ 是 $P$ 的本征态。还定义了演化的时常 $G=\int \mathrm{d}t g(t) = \theta$ 。
object 在 $t+\theta$ 时刻的密度矩阵为&lt;/p&gt;

$$\begin{align}
\rho(t + \theta) =&amp;
\mathrm{Tr}_P \left[
U \cdot\rho_O(t) \otimes \rho_P(t) \cdot U^{\dagger}
 \right]\\
=&amp; \mathrm{Tr}_P \left[
\int \mathrm{d}p\cdot |p\rangle\langle p| \cdot U \cdot\rho_O(t) \otimes  \cdot |\phi_{\theta}\rangle\langle\phi_{\theta}| U^{\dagger}
\right] \\
=&amp;\int \mathrm{d}p\cdot \mathrm{Tr}_P \left[
 |p\rangle\langle p| \cdot U \cdot\rho_O(t) \otimes  \cdot |\phi_{\theta}\rangle\langle\phi_{\theta}| U^{\dagger}
\right] \\
=&amp;\int \mathrm{d}p\cdot
 \langle p| U |\phi_{\theta}\rangle\cdot\rho_O(t) \otimes  \cdot \langle\phi_{\theta}| U^{\dagger}|p\rangle \\
=&amp;\int \mathrm{d}p\cdot
 \Omega_p \rho_O(t) \otimes   \Omega_p^{\dagger}
\end{align}$$

&lt;p&gt;其中 $\mathrm{Tr}_P$ 是对 probe particle 求偏迹，把 probe particle 求迹掉。&lt;/p&gt;

$$\begin{align}
\Omega_p\equiv \langle p| U |\phi_{\theta}\rangle = e^{-\mathrm{i} H\theta}\langle p| e^{-\mathrm{i}AQ\theta}|\phi_{\theta}\rangle
\end{align}$$

&lt;p&gt;对 $\theta$ 做展开，保留到相干部分的一阶项，非相干部分的二阶项&lt;/p&gt;

$$\begin{align}
\rho(t + \theta) = \rho(t) - \mathrm{i}[H, \rho(t)]\theta - i[A, \rho(t)]\langle Q\rangle_{\theta}\theta
+ \left[
A \rho(t) A - \frac{1}{2} A^2 \rho(t)  - \frac{1}{2} \rho(t) A^2
\right] \langle Q^2\rangle_{\theta} \theta^2
\end{align}$$

&lt;p&gt;其中&lt;/p&gt;

$$\begin{align}
\langle Q\rangle_{\theta} = \langle\phi_{\theta} | Q |\phi_{\theta}\rangle, \quad \langle Q^2\rangle_{\theta} = \langle\phi_{\theta} | Q^2 |\phi_{\theta}\rangle
\end{align}$$

&lt;p&gt;假设 $\langle Q\rangle_{\theta} = 0$ ，且下列极限存在&lt;/p&gt;

$$\begin{align}
\sigma^2_Q \equiv \lim_{\theta\to 0} \theta\langle Q^2\rangle_{\theta}
\end{align}$$

&lt;p&gt;所以在连续测量极限下，我们得到量量间接测量对 object 的影响，object 的演化是标准
主方程的形式&lt;/p&gt;

$$\begin{align}
\frac{\mathrm{d}}{\mathrm{d} t}\rho(t) = -\mathrm{i}[H, \rho(t)]
+ \sigma_Q^2 A \rho(t) A - \frac{1}{2}\sigma_Q^2\{ A^2, \rho(t) \}]
\end{align}$$


&lt;h2&gt;间接连续测量的量子芝诺效应&lt;/h2&gt;

&lt;p&gt;如果我们定义&lt;/p&gt;

$$\begin{align}
\sigma_A^2 = \lim_{\theta\to 0} \frac{\langle P^2\rangle_{\theta}}{\theta}
\end{align}$$

&lt;p&gt;那么有不确定度关系（ $P, Q$ 是共轭的量）&lt;/p&gt;

$$\begin{align}
\sigma_A^2 \cdot \sigma_Q^2 = \langle P^2\rangle_{\theta} \langle Q^2\rangle_{\theta} \ge \frac{1}{4}
\end{align}$$

&lt;p&gt;$\sigma_A^2$ 可以作为测量 $A$ 的不确定度。可以发现，想要 $A$ 测得越准确，那么 $\sigma_Q^2$
就要更大，也就是测量对 object 带来的反作用就更大。我们定义芝诺时间 $\tau_0$&lt;/p&gt;

$$\begin{align}
\tau_0 \equiv [\sigma^2_Q]^{-1}
\end{align}$$

&lt;p&gt;$\tau_0$ 越小，$\sigma_A^2$ 就越小，测量就越精确，同时，测量对 object 的反作用就越大。
当 $\tau\to 0$ 时，就会产生量子芝诺效应，即，object 会一直处于初态上。从主方程看，
$\tau\to 0$ 时， $\sigma_Q^2$ 很大，么正演化可以忽略，而增大 $\sigma_Q^2$ 等效于把时间拉长
（主方程两边同时除以  $\sigma_Q^2$ ），也就是粒子会处于初态上迟迟不肯离开。&lt;/p&gt;


&lt;h2&gt;例子演示：二能级系统&lt;/h2&gt;

&lt;p&gt;考虑二能级系统拉比振荡，测量量选为Pauli 矩阵第三个，即  $A= \sigma_{3}$ (也就是 $\sigma_z$)。
那么等效的主方程为&lt;/p&gt;

$$\begin{align}
\frac{\mathrm{d}}{\mathrm{d}t} \rho(t) =
 -\mathrm{i} [-\frac{\Omega}{2}\sigma_1, \rho(t)] - \frac{1}{2\tau_0}[\sigma_3, [\sigma_3, \rho(t)]]
\end{align}$$

&lt;p&gt;下面给出数值解和解析解的结果（初态选为激发态）。&lt;/p&gt;

&lt;p&gt;&lt;a href='2023-03-28-physics-quantum_Zeno_effect/quantum_Zeno.py'&gt;quantum_Zeno.py&lt;/a&gt;&lt;/p&gt;

&lt;pre&gt;&lt;code class="language-python"&gt;import qutip as qtp
import matplotlib.pyplot as plt
import numpy as np


def num_pe(tlist, tau, rho0=qtp.fock_dm(2, 0)):
    res = qtp.mesolve(H=-1/2*qtp.sigmax(), rho0=rho0, tlist=tlist,
                      c_ops=1/np.sqrt(tau)*qtp.sigmaz(),
                      e_ops=qtp.fock_dm(2, 0))
    return res.expect[0]


def ana_pe(t, tau):
    if tau &amp;gt; 1:
        nu = np.sqrt(1 - 1/tau**2)
        s3 = (np.cos(nu*t) + np.sin(nu*t)/(nu*tau)) * np.exp(-t/tau)
    else:
        mu1 = 1/tau + np.sqrt(1/tau**2 - 1)
        mu2 = 1/tau - np.sqrt(1/tau**2 - 1)
        s3 = (mu2*np.exp(-mu1*t) - mu1*np.exp(-mu2*t)) / (mu2-mu1)
    return (1+s3) / 2


tau = .1
tlist = np.linspace(0, 20, 5000)
plt.plot(tlist, ana_pe(tlist, tau=.5), label=r'Analysis: $\Omega\tau=0.5$',
         ls='-', color='red')
plt.plot(tlist, num_pe(tlist, tau=.5), label=r'Numerical: $\Omega\tau=0.5$',
         ls='-.', lw=3, color='red')
plt.plot(tlist, ana_pe(tlist, tau=10), label=r'Analysis: $\Omega\tau=10$',
         ls='-', color='green')
plt.plot(tlist, num_pe(tlist, tau=10), label=r'Numerical: $\Omega\tau=10$',
         ls='-.', lw=3, color='green')
plt.plot(tlist, ana_pe(tlist, tau=.01), label=r'Analysis: $\Omega\tau=0.01$',
         ls='-', color='blue')
plt.plot(tlist, num_pe(tlist, tau=.01), label=r'Numerical: $\Omega\tau=0.01$',
         ls='-.', lw=3, color='blue')
plt.xlabel(r'$\Omega t$')
plt.ylabel(r'$p_e$')
plt.legend()
plt.savefig('quantum_Zeno.png', transparent=True)&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&lt;p&gt;&lt;img src='2023-03-28-physics-quantum_Zeno_effect/quantum_Zeno.png' alt='quantum_Zeno.png' max-width:100%&gt;&lt;p&gt;&lt;/p&gt;

&lt;p&gt;在 $\Omega \tau_0 &gt; 1$ 时，是振荡衰减的。在 $\Omega \tau_0 &lt; 1$ 时没有振荡，只有衰减。
在 $\Omega \tau_0 \to 0$ 时，一直处于初态，即量子芝诺效应。&lt;/p&gt;

&lt;h2&gt;Reference&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href='https://qutip.readthedocs.io/en/latest/guide/dynamics/dynamics-master.html'&gt;QuTiP Documents&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Breuer, H.-P. &amp; Petruccione, F. The theory of open quantum systems. (Clarendon Press, 2009). Chap 3.5&lt;/li&gt;
&lt;li&gt;&lt;a href='https://zh.wikipedia.org/wiki/%E9%87%8F%E5%AD%90%E8%8A%9D%E8%AF%BA%E6%95%88%E5%BA%94'&gt;Wikipedia: 量子芝诺效应&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href='https://en.wikipedia.org/wiki/Quantum_Zeno_effect'&gt;Wikipedia: Quantum Zeno effect&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</content><category term="专业笔记"/><category term="物理"/><category term="Lindblad Master Equation"/><category term="Open System"/><category term="Quantum Zeno Effect"/></entry><entry><title>开放系统读书会：Lindblad 主方程的微观推导</title><link href="https://zqw.ink/2023-02-27-physics-microscopic_derivations_lindblad_master_eq.html" rel="alternate"/><published>2023-02-27T00:00:00+08:00</published><updated>2023-02-27T00:00:00+08:00</updated><author><name>ZQW</name></author><id>tag:zqw.ink,2023-02-27:/2023-02-27-physics-microscopic_derivations_lindblad_master_eq.html</id><summary type="html">
&lt;h2&gt;Model&lt;/h2&gt;


$$\begin{align}
H = H_S + H_B + H_I
\end{align}$$

&lt;p&gt;von Neumann equation in the &lt;em&gt;INTERACTION PICTURE&lt;/em&gt;&lt;/p&gt;

$$\begin{align}
\frac{\mathrm{d}}{\mathrm{d}t}\rho(t) = - \mathrm{i}
[H_I(t), \rho(t)]
\end{align}$$


&lt;p&gt;A formal solution&lt;/p&gt;


$$\begin{align}
\frac{\mathrm{d}}{\mathrm{d}t}\rho(t) =
- \mathrm{i} [H_I …</summary><content type="html">
&lt;h2&gt;Model&lt;/h2&gt;


$$\begin{align}
H = H_S + H_B + H_I
\end{align}$$

&lt;p&gt;von Neumann equation in the &lt;em&gt;INTERACTION PICTURE&lt;/em&gt;&lt;/p&gt;

$$\begin{align}
\frac{\mathrm{d}}{\mathrm{d}t}\rho(t) = - \mathrm{i}
[H_I(t), \rho(t)]
\end{align}$$


&lt;p&gt;A formal solution&lt;/p&gt;


$$\begin{align}
\frac{\mathrm{d}}{\mathrm{d}t}\rho(t) =
- \mathrm{i} [H_I(t), \rho(0)]
-\int_0^t \mathrm{d} s[H_I(t), [H_I(s), \rho(s)]]
\end{align}$$


&lt;h2&gt;Four Approximation&lt;/h2&gt;

&lt;h3&gt;1. Separability&lt;/h3&gt;

&lt;p&gt;At $t=0$ , there are no correlations between the system&lt;/p&gt;


$$\begin{align}
\rho(0) \approx \rho_S(0) \otimes \rho_B(0)
\end{align}$$


&lt;h3&gt;2. Born approximation&lt;/h3&gt;

&lt;p&gt;Large environment means:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;that the state of the environment does not significantly change as a result of the interaction with the system, $\rho(t) \approx \rho_S(t) \otimes \rho_B(t)$&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Weak coupling means:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;the system and the environment are noncorrelated during all the time evolution, $\rho_B(t) = \rho_B(0) \equiv \rho_B$&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;In summary&lt;/p&gt;


$$\begin{align}
\rho(t) \approx \rho_S(t) \otimes \rho_B
\end{align}$$


&lt;h3&gt;3. Markov approximation&lt;/h3&gt;

&lt;p&gt;Short-memory environment&lt;/p&gt;

&lt;p&gt;The reservior correlation functions decay faster compared to the system.&lt;/p&gt;

&lt;h3&gt;4. Secular approximation(Not necessary for all systems)&lt;/h3&gt;

&lt;p&gt;Only consider the resonance transition.&lt;/p&gt;

&lt;p&gt;Not necessary for all master equation.&lt;/p&gt;

&lt;h2&gt;Derivations&lt;/h2&gt;

&lt;p&gt;In &lt;em&gt;SCHRODINGER PICTURE&lt;/em&gt;&lt;/p&gt;

$$\begin{align}
H_I^{SP} = \sum_{\alpha} A_{\alpha} \otimes B_{\alpha}
= \sum_{\alpha, \omega}A_{\alpha}(\omega) \otimes B_{\alpha}
\end{align}$$

&lt;p&gt;where&lt;/p&gt;

$$\begin{align}
A_{\alpha}(\omega) = \sum_{\varepsilon } |\varepsilon\rangle\langle\varepsilon|
                     A_{\alpha} |\varepsilon + \omega \rangle\langle\varepsilon + \omega|
\end{align}$$

&lt;p&gt;So, in the interaction picture&lt;/p&gt;

$$\begin{align}
H_I(t) = \sum_{\alpha,\omega} e^{- \mathrm{i}\omega t}A_{\alpha}(\omega)\otimes B_{\alpha}(t)
= \sum_{\alpha,\omega} e^{ \mathrm{i}\omega t}A^{\dagger}_{\alpha}(\omega)\otimes B^{\dagger}_{\alpha}(t)
\end{align}$$

&lt;p&gt;use &lt;em&gt;SEPARABILITY&lt;/em&gt;, we get&lt;/p&gt;

$$\begin{align}
[H_I(t), \rho(0)] =&amp; \sum_{\alpha,\omega}e^{\mathrm{i}\omega t}[A^{\dagger}_{\alpha}(\omega)\otimes
     B^{\dagger}_{\alpha}(t), \rho_S(0)\otimes \rho_B(0)] \\
=&amp; \sum_{\alpha,\omega}e^{\mathrm{i}\omega t}
[A^{\dagger}_{\alpha}(\omega) \rho_S(0)
\otimes B^{\dagger}_{\alpha}(t) \rho_B(0)
-  \rho_S(0) A^{\dagger}_{\alpha}(\omega)
\otimes\rho_B(0) B^{\dagger}_{\alpha}(t)  ] \\
=&amp; \sum_{\alpha,\omega}e^{\mathrm{i}\omega t}
[A^{\dagger}_{\alpha}(\omega), \rho_S(0)] \langle B_\alpha(t) \rangle \\
\end{align}$$

&lt;p&gt;where&lt;/p&gt;

$$\begin{align}
\langle B_\alpha(t) \rangle \equiv \mathrm{Tr}_B[B^{\dagger}_{\alpha}(t) \rho_B] = 0
\end{align}$$


&lt;p&gt;use
$[H_I(t), \rho(0)] = 0$
and &lt;em&gt;BORN APPROXIMATION&lt;/em&gt;, we get&lt;/p&gt;

$$\begin{align}
\mathrm{Tr}_B \left[\frac{\mathrm{d}}{\mathrm{d}t}\rho(t)  \right]  =
\frac{\mathrm{d}}{\mathrm{d}t}\rho_S(t) =
-\int_0^t \mathrm{d} s \cdot \mathrm{Tr}_B[H_I(t), [H_I(s), \rho_S(s)\otimes \rho_B]]
\end{align}$$

&lt;p&gt;According &lt;em&gt;MARKOV APPROXIMATION&lt;/em&gt;, we can approximate
$\rho_S(s) \approx \rho_S(t)$ , and extend $t$ to $\infty$ .
Substitute $s \to t - s$ ,&lt;/p&gt;

$$\begin{align}
\frac{\mathrm{d}}{\mathrm{d}t}\rho_S(t)=
\frac{\mathrm{d}}{\mathrm{d}t}\rho_S(t) =
-\int_0^{\infty} \mathrm{d} s \cdot \mathrm{Tr}_B[H_I(t), [H_I(t - s), \rho_S(t)\otimes \rho_B]]
\end{align}$$

&lt;p&gt;decompose $H_{I}(t)$ , we get (convolution theorem)&lt;/p&gt;

$$\begin{align}
\frac{\mathrm{d}}{\mathrm{d}t}\rho_S(t) =
\sum_{\omega, \omega'} \sum_{\alpha, \beta} e^{\mathrm{i}(\omega' - \omega)t}
\Gamma_{\alpha\beta}(\omega)\left[A_{\beta}(\omega)\rho_S(t)A^{\dagger}_{\alpha}(\omega') - A_{\alpha}^{\dagger}(\omega') A_{\beta}(\omega)\rho_s(t)\right]
 + \mathrm{h.c.}
\end{align}$$

&lt;p&gt;where&lt;/p&gt;

$$\begin{align}
\Gamma_{\alpha\beta}(\omega) = \int_0^{\infty} \mathrm{d}s\cdot e^{\mathrm{i}\omega s}
\langle B_{\alpha}^{\dagger}(t) B_{\beta}(t - s)\rangle
\end{align}$$

&lt;p&gt;Then &lt;em&gt;SECULAR APPROXIMATION&lt;/em&gt;,
only keep the resonance term, that is $\omega' = \omega$&lt;/p&gt;

$$\begin{align}
\frac{\mathrm{d}}{\mathrm{d}t}\rho_S(t) =
\sum_{\omega} \sum_{\alpha, \beta}
\Gamma_{\alpha\beta}(\omega)\left[A_{\beta}(\omega)\rho_S(t)A^{\dagger}_{\alpha}(\omega) - A_{\alpha}^{\dagger}(\omega) A_{\beta}(\omega)\rho_s(t)\right]
 + \mathrm{h.c.}
\end{align}$$

&lt;p&gt;if we define&lt;/p&gt;

$$\begin{align}
\left\{
\begin{matrix}
S_{\alpha\beta}(\omega) \equiv&amp; \frac{1}{2\mathrm{i}} \left[ \Gamma_{\alpha\beta}(\omega) - \Gamma_{\beta\alpha}^{ * }(\omega) \right]&amp; \\
\gamma_{\alpha\beta}(\omega) \equiv&amp;  \Gamma_{\alpha\beta}(\omega) - \Gamma_{\beta\alpha}^{ * }(\omega)
=&amp; \int_{-\infty}^{\infty} \mathrm{d}s e^{\mathrm{i}\omega s} \langle B^{\dagger}_{\alpha}(s) B_{\beta}(0)\rangle\\
\Gamma_{\alpha\beta}(\omega) =&amp; \frac{1}{2}\gamma_{\alpha\beta}(\omega) + \mathrm{i}S_{\alpha\beta}(\omega)&amp;
\end{matrix}
\right.
\end{align}$$

&lt;p&gt;and (Lamb shift Hamiltonian. It seems like the interaction between vacuum energy
fluctuations and the hydrogen electron in different orbitals, ref
&lt;em&gt;Atomic and Optical Physics I, 07 Atoms III: Fine Structure&lt;/em&gt;)&lt;/p&gt;

$$\begin{align}
H_{LS} = \sum_{\omega} \sum_{\alpha,\beta} S_{\alpha,\beta}(\omega)A_{\alpha}^{\dagger}(\omega) A_{\beta}(\omega)
\end{align}$$

&lt;p&gt;then we get our master equation in the interaction picture&lt;/p&gt;

$$\begin{align}
\frac{\mathrm{d}}{\mathrm{d}t}\rho_{S}(t)
= -\mathrm{i}[H_{LS}, \rho_S(t)] + \mathcal{D}[\rho_S(t)]
\end{align}$$

&lt;p&gt;where&lt;/p&gt;

$$\begin{align}
D(\rho_S) = \sum_{\omega}\sum_{\alpha,\beta} \gamma_{\alpha\beta}(\omega) \left[
A_{\beta}(\omega) \rho_SA_{\alpha}^{\dagger}(\omega) - \frac{1}{2}{A^{\dagger}_{\alpha}(\omega)A_{\beta}(\omega), \rho_S} \right]
\end{align}$$

&lt;p&gt;For Schrodinger picture, just shift $H_{LS}\to H_{LS} + H_S$ .&lt;/p&gt;

&lt;h2&gt;Reference&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href='https://qutip.readthedocs.io/en/latest/guide/dynamics/dynamics-master.html'&gt;QuTiP Documents&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Breuer, H.-P. &amp; Petruccione, F. The theory of open quantum systems. (Clarendon Press, 2009). Chap 3.3&lt;/li&gt;
&lt;li&gt;AIP Advances 10, 025106 (2020) &lt;a href='https://doi.org/10.1063/1.5115323'&gt;https://doi.org/10.1063/1.5115323&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</content><category term="专业笔记"/><category term="物理"/><category term="Lindblad Master Equation"/><category term="Open System"/></entry><entry><title>幂函数的割线选取 Branch cut of exponentiation</title><link href="https://zqw.ink/2023-01-07-physics-branch_cut_of_exponentiation.html" rel="alternate"/><published>2023-01-07T00:00:00+08:00</published><updated>2023-01-07T00:00:00+08:00</updated><author><name>ZQW</name></author><id>tag:zqw.ink,2023-01-07:/2023-01-07-physics-branch_cut_of_exponentiation.html</id><summary type="html">
&lt;h2&gt;问题&lt;/h2&gt;

&lt;p&gt;一个简单的计算&lt;/p&gt;

$$\begin{align}
\mathrm{i}\sqrt{-1} = \sqrt{-1}\sqrt{-1} = \sqrt{(-1)^2} = \sqrt{1} = 1
\end{align}$$


&lt;p&gt;但在 Mathematica 中&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-Wolfram"&gt;In[1]:= I*Sqrt[-1]
Out[1]= -1&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;结果差了一个负号。&lt;/p&gt;

&lt;p&gt;或者另 …&lt;/p&gt;</summary><content type="html">
&lt;h2&gt;问题&lt;/h2&gt;

&lt;p&gt;一个简单的计算&lt;/p&gt;

$$\begin{align}
\mathrm{i}\sqrt{-1} = \sqrt{-1}\sqrt{-1} = \sqrt{(-1)^2} = \sqrt{1} = 1
\end{align}$$


&lt;p&gt;但在 Mathematica 中&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-Wolfram"&gt;In[1]:= I*Sqrt[-1]
Out[1]= -1&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;结果差了一个负号。&lt;/p&gt;

&lt;p&gt;或者另一种计算方法&lt;/p&gt;

$$\begin{align}
\mathrm{i}\sqrt{-1} = \mathrm{i}\cdot \mathrm{i} = \mathrm{i}^2 = -1
\end{align}$$

&lt;p&gt;就会给出与 Mathematica 相同的结果。&lt;/p&gt;

&lt;h2&gt;原因&lt;/h2&gt;


$$\begin{align}
\sqrt{zw} = \sqrt{z} \sqrt{w}
\end{align}$$

&lt;p&gt;并不总是成立。在我们的例子里&lt;/p&gt;

$$\begin{align}
\sqrt{-1}\sqrt{-1}\neq \sqrt{(-1)^2}
\end{align}$$


&lt;p&gt;一般来讲，也是 Mathematica 的约定，将根号函数的割线取为实轴负半轴
&lt;a href='https://reference.wolfram.com/language/tutorial/MathematicalFunctions.html.en?source=footer'&gt;根号函数的割线取为实轴负半轴&lt;/a&gt;
，将辐角
$\theta\in (-\pi, \pi]$ 选为第一黎曼面，也就是主值所在的黎曼面。所以平时做复数运算时要小
心。&lt;/p&gt;

&lt;h2&gt;Reference&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href='https://reference.wolfram.com/language/tutorial/MathematicalFunctions.html.en?source=footer'&gt;Wolfram Language and System:Mathematical Functions&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href='https://en.wikipedia.org/wiki/Square_root#Square_roots_of_negative_and_complex_numbers'&gt;Wikipedia: Square root&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href='https://en.wikipedia.org/wiki/Exponentiation#Power_functions'&gt;Wikipedia: Exponentiation&lt;/a&gt; Failure of power and logarithm identities 部分&lt;/li&gt;
&lt;/ul&gt;
</content><category term="专业笔记"/><category term="数学"/><category term="复变函数"/><category term="branch cut"/><category term="contour integral"/></entry><entry><title>Atomic and Optical Physics I, 13 Atom-light Interaction II， Wigner–Eckart theorem</title><link href="https://zqw.ink/2022-12-21-physics-mitamo13.html" rel="alternate"/><published>2022-12-21T00:00:00+08:00</published><updated>2022-12-21T00:00:00+08:00</updated><author><name>ZQW</name></author><id>tag:zqw.ink,2022-12-21:/2022-12-21-physics-mitamo13.html</id><summary type="html">
&lt;h2&gt;Information&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href='https://ocw.mit.edu/courses/physics/8-421-atomic-and-optical-physics-i-spring-2014/'&gt;MIT官方介绍&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href='https://www.youtube.com/playlist?list=PLUl4u3cNGP62FPGcyFJkzhqq9c5cHCK32'&gt;Youtube视频列表地址&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;&lt;a href='https://en.wikipedia.org/wiki/Wigner%E2%80%93Eckart_theorem'&gt;Wigner–Eckart theorem&lt;/a&gt;&lt;/h2&gt;

&lt;p&gt;Every operator can be written as the sum of spherical tensors.&lt;/p&gt;

&lt;p&gt;Ref Sakurai Eq.(3.11.31)&lt;/p&gt;

$$\begin{align}
\langle n J M |T_{l, m} | n' J' M'\rangle = \frac{\langle n J || T_l || n' J'\rangle}{\sqrt{2J + 1}}
\langle J' l …</summary><content type="html">
&lt;h2&gt;Information&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href='https://ocw.mit.edu/courses/physics/8-421-atomic-and-optical-physics-i-spring-2014/'&gt;MIT官方介绍&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href='https://www.youtube.com/playlist?list=PLUl4u3cNGP62FPGcyFJkzhqq9c5cHCK32'&gt;Youtube视频列表地址&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;&lt;a href='https://en.wikipedia.org/wiki/Wigner%E2%80%93Eckart_theorem'&gt;Wigner–Eckart theorem&lt;/a&gt;&lt;/h2&gt;

&lt;p&gt;Every operator can be written as the sum of spherical tensors.&lt;/p&gt;

&lt;p&gt;Ref Sakurai Eq.(3.11.31)&lt;/p&gt;

$$\begin{align}
\langle n J M |T_{l, m} | n' J' M'\rangle = \frac{\langle n J || T_l || n' J'\rangle}{\sqrt{2J + 1}}
\langle J' l ; M' m |J M\rangle
\end{align}$$

&lt;p&gt;where $T_{l, m}$ is spherical tensor of rank $l$ (transforms under rotations
like the spherical harmonics $Y_{l, m}$ ). $\langle J' l ; M' m |J M\rangle$
&lt;a href='https://en.wikipedia.org/wiki/Clebsch%E2%80%93Gordan_coefficients'&gt;Clebsch–Gordan coefficients&lt;/a&gt; .
$\langle n J || T_l || n' J'\rangle$ is the reduced matrix element.&lt;/p&gt;

&lt;p&gt;$M = M' + m$ and Triangular rule&lt;/p&gt;

$$\begin{align}
|J' - J| \le l \le |J' + J|
\end{align}$$


&lt;blockquote&gt;Example:

E1, M1, $\langle a| \vec{r} | b\rangle$ , $\langle a| \vec{L} | b\rangle$ vectors is $Y_{1, m}$ .
Dipole section rules
\begin{align}
|\Delta J| =&amp; 0, 1 \\
\Delta m =&amp; 0, \pm 1
\end{align}&lt;/blockquote&gt;

&lt;blockquote&gt;Example:

E2(quadrapole), $xz$ , $Y_{2, m}$ , selection rules for quadrapole
transition
\begin{align}
|\Delta J| =&amp; 0, 1, 2 \\
\Delta m =&amp; 0, \pm 1, \pm 2
\end{align}&lt;/blockquote&gt;

&lt;h2&gt;Example: How (E1) section rules depend on the polarization of light&lt;/h2&gt;


$$\begin{align}
\hat{\epsilon} \langle b | \vec{r} |a\rangle
\end{align}$$


&lt;p&gt;For example circular polarization&lt;/p&gt;

$$\begin{align}
\hat{\epsilon} = \frac{\hat{x} \pm \mathrm{i} \hat{y}}{\sqrt{2}}
\end{align}$$

&lt;p&gt;and decompose $\vec{r}$ as&lt;/p&gt;

$$\begin{align}
\vec{r} =&amp; r \left(\sharp Y_{1, -1}
                  + \sharp Y_{1, 1}
                  + \sharp Y_{1, 0}
                   \right) \\
= &amp; r \left(\sharp \frac{\hat{x} + \mathrm{i} \hat{y}}{\sqrt{2}}
             + \sharp \frac{\hat{x} - \mathrm{i} \hat{y}}{\sqrt{2}}
             + \sharp \hat{z}
                   \right)
\end{align}$$

&lt;p&gt;so, circular $\hat{\epsilon}$ will project out $T_{1, \pm 1}$ ,
for example,&lt;/p&gt;

$$\begin{align}
\frac{(\hat{x} + \mathrm{i}\hat{y})}{\sqrt{2}} \cdot
\frac{(\hat{x} + \mathrm{i}\hat{y})}{\sqrt{2}} =&amp; 0 \\
\frac{(\hat{x} + \mathrm{i}\hat{y})}{\sqrt{2}} \cdot
\frac{(\hat{x} - \mathrm{i}\hat{y})}{\sqrt{2}} =&amp; 1 \\
\frac{(\hat{x} + \mathrm{i}\hat{y})}{\sqrt{2}} \cdot \hat{z} =&amp; 0 ,
\end{align}$$

&lt;p&gt;that is $\Delta m = \pm 1$ . Linear polarization can be decomposed as the linear
superposition of $\sigma_+$ , $\sigma_-$ .&lt;/p&gt;

&lt;h2&gt;$\sigma$ light and $\pi$ light&lt;/h2&gt;

&lt;p&gt;&lt;p&gt;&lt;img src='2022-12-21-physics-MITAMO13/polarization.png' alt='pi and sigma light' max-width:100%&gt;&lt;p&gt;&lt;/p&gt;

&lt;h2&gt;Atom-light Interaction&lt;/h2&gt;

&lt;p&gt;Two important cases when an atom interacts with monochromatic wave, or when it
interacts with a broad spectrum.&lt;/p&gt;

&lt;p&gt;An atom in a low temperature ( $k_BT \ll \hbar\omega_{eg}$ ,
$2 \mathrm{eV}\sim 20, 000 \mathrm{K}$ ,
$k_B T_{\mathrm{room\, temperature}} \sim 25 \mathrm{meV}$ ) vacuum, means that the
atom will
irreversibly decay
to the ground state with a life time $\tau$ . That means in some picture, the
excited state is broadening by nature lifetime&lt;/p&gt;

$$\begin{align}
\Gamma = \frac{1}{\tau}
\end{align}$$


&lt;p&gt;Now: add light with a bandwidth $\Delta \omega$&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;$\Delta \omega \ll \Gamma$ , narrow band excitation, $\Delta \omega \to 0$&lt;/li&gt;
&lt;li&gt;$\Delta \omega \gg \Gamma$ , broad band radiation&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Broadband&lt;/h2&gt;

&lt;p&gt;Spectral density&lt;/p&gt;

$$\begin{align}
S(\omega) = \frac{[\mathrm{energy}]}
{[\mathrm{volumn}][\mathrm{frequency}\, \mathrm{intervel}]}
\end{align}$$

&lt;p&gt;or intensity per unit frequency intervel&lt;/p&gt;

$$\begin{align}
I(\omega) = \underbrace{c}_{\mathrm{speed\,of\,light}} S(\omega)
= \frac{[\mathrm{energy}]}{[\mathrm{aera}][\mathrm{time}]
          [\mathrm{frequency}\, \mathrm{intervel}]}
\end{align}$$


&lt;h2&gt;Monochromatic radiation&lt;/h2&gt;

&lt;p&gt;$\omega$ , $\mathcal{E}$ (electric field amplitude) or intensity $I$ .&lt;/p&gt;

&lt;h2&gt;Look at $t\ll \Gamma^{-1}$&lt;/h2&gt;

&lt;p&gt;A two level system, driven by a laser system, will behave identically to a spin
driven by a magnetic field.&lt;/p&gt;

&lt;h3&gt;Strong driving field, Rabi flopping&lt;/h3&gt;

&lt;p&gt;Rabi oscillations between two electronic states covered by a laser beam.&lt;/p&gt;

&lt;p&gt;We have only limited time window before spontaneous emission. We have to
disscuss the physics in this short time window. And if we want to excite an atom
and see Rabi oscillation in a short time,
you better have a &lt;em&gt;strong&lt;/em&gt; laser beam.&lt;/p&gt;

&lt;p&gt;$|g\rangle, |e\rangle, V_{eg} e^{-\mathrm{i}\omega t}$ , perturbation:&lt;/p&gt;


$$\begin{align}
a_e(t) =&amp; \frac{1}{\mathrm{i}\hbar} \int_0^t V_{eg} e^{-\mathrm{i}(\omega - \omega_{eg})t'}
          \mathrm{d} t' \\
    =&amp; \frac{V_{eg}}{\hbar} \left[
   \frac{e^{-\mathrm{i}(\omega - \omega_{eg})t} - 1}{\omega - \omega_{eg}},
 \right]
\end{align}$$


$$\begin{align}
P_e = |a_e|^2 = \frac{|V_{eg}|^2}{\hbar^2}
 \frac{\sin^2 \left( \frac{\omega - \omega_{eg}}{2}t \right)}{[(\omega - \omega_{eg})/2]^2}.
\end{align}$$

&lt;p&gt;For short times:&lt;/p&gt;

$$\begin{align}
\label{eq:15}
P_e = \frac{|V_{eg}|^2}{\hbar^2}t^2 \propto t^2 ,
\end{align}$$

&lt;p&gt;the proportionality to $t^2$ means it's a fully coherent process.&lt;/p&gt;

&lt;p&gt;For longer times:&lt;/p&gt;

&lt;p&gt;Rabi oscillations, have deriving perturbatively (i.e. $|a_e|^2 \ll 1$ , off resoance
case).&lt;/p&gt;

&lt;h3&gt;Let's do it now exactly&lt;/h3&gt;


$$\begin{align}
H_{eg} = \langle e | H | g\rangle =  \underbrace{-\vec{d} \cdot \vec{E}_0}_{\hbar \omega_R}  \cos(\omega t)
\end{align}$$

&lt;p&gt;to compare with spin 1/2, shift the ground state to $-\frac{1}{2}\hbar \omega_{eg}$&lt;/p&gt;

$$\begin{align}
H =&amp; \frac{1}{2}\hbar \omega_{eg} \left(\underbrace{|e\rangle\langle e| - |g\rangle\langle g|}_{\sigma_z} \right)
  + \hbar\omega_R \left(\underbrace{|g\rangle\langle e| + |e\rangle\langle g|}_{\sigma_x} \right)\cos (\omega t) \\
=&amp; \frac{1}{2}\hbar \omega_{eg} \sigma_z + \hbar \omega_R \cos (\omega t) \sigma_x
\end{align}$$

&lt;p&gt;$H$ corresponds to spin 1/2 in a static $z$ -field and linearly polarization
oscillating field along $x$ .&lt;/p&gt;

&lt;p&gt;Rotating magnetic field&lt;/p&gt;

$$\begin{align}
H = \frac{1}{2}\hbar\omega_{eg} \sigma_z +&amp;
    \underbrace{\frac{1}{2}\hbar\omega_R [\sigma_x \cos(\omega t) + \sigma_y \sin(\omega t)]}
_{\mathrm{co-rotating}}  \\
   +&amp;\underbrace{\frac{1}{2}\hbar\omega_R [(\sigma_x \cos(\omega t) - \sigma_y \sin(\omega t)]}
_{\mathrm{counter-rotating}}
\end{align}$$

&lt;p&gt;We solve the problem exactly by going into a frame which rotated at the Larmor
frequency, $\omega_{eg}$ . The co-rotating term became stationary on resoance in
this rotating frame, whereas the counter-rotating term rotates at a very high
frequency in this frame at $\omega_{eg} + \omega$ in the Larmor frequency. So, if this
frequency $|\omega - \omega_{eg}| \ll \omega_{eg}$ and $\omega_R \ll \omega_{eg}$ , we can neglect the
last term, RWA.&lt;/p&gt;

&lt;p&gt;Our results for spin 1/2, if $P_e(t = 0) = 0$ ,&lt;/p&gt;

$$\begin{align}
P(t) = \frac{\omega_R^2}{\Omega^2} \sin^2 \left( \frac{1}{2}\Omega_{R} t \right)
\end{align}$$

&lt;p&gt;where generalized Rabi frequency $\Omega_R = \sqrt{\omega_R^2 + \Delta^2}$ ,
detuning $\Delta = \omega - \omega_{eg}$ .&lt;/p&gt;

&lt;h2&gt;Broadband excitation&lt;/h2&gt;

&lt;p&gt;Perturbative result,&lt;/p&gt;

$$\begin{align}
|a_e(t)|^2 = \left( \frac{\omega_R}{2} \right)^2
\frac{\sin^2(\frac{\Delta}{2}t)}{(\Delta/2)^2},
\end{align}$$

&lt;p&gt;and now we want to integrate over that because we have a broadband distribution
of light. Energy density $W(\omega)$ ,&lt;/p&gt;

$$\begin{align}
\frac{1}{2}\epsilon_0 E_0^2 = \int \mathrm{d}\omega \cdot W(\omega)
\end{align}$$

&lt;p&gt;linearly polarized light in the x direction&lt;/p&gt;

$$\begin{align}
\omega_R^2 = \frac{1}{\hbar^2}(d_x E_0)^2
\end{align}$$



$$\begin{align}
P_e(t) = \frac{d_x^2 E_0^2}{4 \hbar^2}
\frac{\sin^2(\frac{\Delta}{2}t)}{(\Delta/2)^2}
= \frac{d_x^2}{2\epsilon_0\hbar^2}\int \mathrm{d}\Delta \cdot W(\omega + \Delta) \frac{\sin^2(\frac{\Delta}{2}t)}{(\Delta/2)^2}
\end{align}$$



&lt;h2&gt;Reference&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href='https://en.wikipedia.org/wiki/Wigner%E2%80%93Eckart_theorem'&gt;Wikipedia: Wigner–Eckart theorem&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Jun John Sakurai, Jim Napolitano, Modern Quantum Mechanics. (Cambridge University Press, 2017)&lt;/li&gt;
&lt;li&gt;&lt;a href='https://en.wikipedia.org/wiki/Clebsch%E2%80%93Gordan_coefficients'&gt;Wikipedia: Clebsch–Gordan coefficients&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href='https://en.wikipedia.org/wiki/Spherical_harmonics'&gt;Wikipedia: Spherical harmonics&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href='https://en.wikipedia.org/wiki/Table_of_spherical_harmonics'&gt;Wikipedia: Table of spherical harmonics&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href='https://quantummechanics.ucsd.edu/ph130a/130_notes/node422.html'&gt;https://quantummechanics.ucsd.edu/ph130a/130_notes/node422.html&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href='https://physics.stackexchange.com/questions/213736/pi-sigma-atomic-transitions-with-respect-to-the-magnetic-field-axis'&gt;Physics StackExchange: $\pi$ , $\sigma$ - atomic transitions with respect to the magnetic field axis&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href='https://en.wikipedia.org/wiki/Polarization_(waves)'&gt;Wikipedia: Polarization (waves) (defination of $\pi$ , $\sigma$ light)&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</content><category term="专业笔记"/><category term="Atomic and Optical Physics"/><category term="Wigner–Eckart theorem"/></entry><entry><title>Atomic and Optical Physics I, 12 Atoms in External Filds IV and Atom-light Interaction I</title><link href="https://zqw.ink/2022-12-20-physics-mitamo12.html" rel="alternate"/><published>2022-12-20T00:00:00+08:00</published><updated>2022-12-20T00:00:00+08:00</updated><author><name>ZQW</name></author><id>tag:zqw.ink,2022-12-20:/2022-12-20-physics-mitamo12.html</id><summary type="html">
&lt;h2&gt;Information&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href='https://ocw.mit.edu/courses/physics/8-421-atomic-and-optical-physics-i-spring-2014/'&gt;MIT官方介绍&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href='https://www.youtube.com/playlist?list=PLUl4u3cNGP62FPGcyFJkzhqq9c5cHCK32'&gt;Youtube视频列表地址&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Atoms light interaction outline&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;coupling matrix element (TODAY)&lt;/li&gt;
&lt;li&gt;narrow band and broad band&lt;/li&gt;
&lt;li&gt;quantized EM filed&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Results of Classical EM and Lagrangian Formalism&lt;/h2&gt;

&lt;p&gt;Ref Goldstein Eq.(1.63) and Eq.(8.35).&lt;/p&gt;

$$\begin{align}
\vec{p}_{\mathrm{canonical}} = \vec{p}_{\mathrm{kinetic}} + \frac{q}{c …</summary><content type="html">
&lt;h2&gt;Information&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href='https://ocw.mit.edu/courses/physics/8-421-atomic-and-optical-physics-i-spring-2014/'&gt;MIT官方介绍&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href='https://www.youtube.com/playlist?list=PLUl4u3cNGP62FPGcyFJkzhqq9c5cHCK32'&gt;Youtube视频列表地址&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Atoms light interaction outline&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;coupling matrix element (TODAY)&lt;/li&gt;
&lt;li&gt;narrow band and broad band&lt;/li&gt;
&lt;li&gt;quantized EM filed&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Results of Classical EM and Lagrangian Formalism&lt;/h2&gt;

&lt;p&gt;Ref Goldstein Eq.(1.63) and Eq.(8.35).&lt;/p&gt;

$$\begin{align}
\vec{p}_{\mathrm{canonical}} = \vec{p}_{\mathrm{kinetic}} + \frac{q}{c}\vec{A}
\end{align}$$

&lt;p&gt;for electron, charge $q = -e$&lt;/p&gt;

$$\begin{align}
H = \underbrace{\frac{1}{2m} \left( \vec{p}_{\mathrm{canonical}}
                 + \frac{e}{c}\vec{A} \right)^2}_{E_{\mathrm{kinetic}}} + V(r)
\end{align}$$

&lt;p&gt;where the first term is kinetic energy. Chose Coulomb gauge $\nabla\cdot \vec{A} = 0$ ,
so $[\vec{A}, \vec{p}] = 0$ , then&lt;/p&gt;

$$\begin{align}
H = \underbrace{\frac{p^2}{2m} + V(r)}_{H_0}
    + \underbrace{\frac{e}{mc}\vec{p}\cdot \vec{A}}_{H_{\mathrm{int}}}
 + \underbrace{\frac{e^2}{2 mc^2}\vec{A}^2}_{H^{(2)}}
\end{align}$$

&lt;p&gt;Consider a plane wave&lt;/p&gt;

$$\begin{align}
H_{\mathrm{int}} = \frac{e}{m c}
             \vec{p} \cdot\hat{e} A_0 e^{\mathrm{i}\vec{k}\cdot \vec{r} - \mathrm{i}\omega t}
\end{align}$$

&lt;p&gt;then matrix element&lt;/p&gt;

$$\begin{align}
\langle b |H_{\mathrm{int}} | a\rangle = H_{ba} e^{-\mathrm{i}\omega t}
\end{align}$$

&lt;p&gt;where&lt;/p&gt;

$$\begin{align}
H_{ba} = \frac{eA_0}{mc} \hat{e}\cdot \langle b |
             \vec{p} e^{\mathrm{i}\vec{k}\cdot \vec{r}} | a\rangle
\end{align}$$

&lt;p&gt;for long wave length approximation, $k r \ll 1$ , expand the exponential&lt;/p&gt;

$$\begin{align}
e^{\mathrm{i}\vec{k}\cdot \vec{r}} = 1 + \mathrm{i} \vec{k}\cdot \vec{r}
  - \frac{1}{2} (\vec{k}\cdot \vec{r})^2 + \cdots
\end{align}$$


&lt;h2&gt;Diople term&lt;/h2&gt;

&lt;p&gt;take the first term&lt;/p&gt;

$$\begin{align}
H_{ba} = - \frac{\mathrm{i} e E_0}{m\omega} \hat{e} \langle b| \vec{p} | a\rangle
\end{align}$$

&lt;p&gt;where we have used (radiation field)&lt;/p&gt;

$$\begin{align}
\vec{E} = - \frac{1}{c}\frac{\partial \vec{A}}{\partial t}
          = \frac{\mathrm{i}\omega}{c}A_0 \hat{e} \equiv E_0 \hat{e}.
\end{align}$$

&lt;p&gt;Then use&lt;/p&gt;

$$\begin{align}
\vec{p} = \frac{m}{i\hbar} [\vec{r}, H_0]
\end{align}$$

&lt;p&gt;we get&lt;/p&gt;

$$\begin{align}
H_{ba} = e E_0 \hat{e} \langle b| \vec{r} | a\rangle \frac{\omega_{ba}}{\omega}
 = \vec{E}\cdot \langle \vec{D}\rangle \frac{\omega_{ba}}{\omega}
\end{align}$$

&lt;p&gt;where $D$ is the dipole operator.&lt;/p&gt;

&lt;h2&gt;Higher-order radiation processes&lt;/h2&gt;

&lt;p&gt;assume the polarization is along the $z$ direction, and propagate along $x$
direction&lt;/p&gt;

$$\begin{align}
A(\vec{r}) = A\hat{z} e^{\mathrm{i} kx}
\end{align}$$


$$\begin{align}
k r = \frac{\hbar \omega}{\hbar c} a_0 = \frac{e^2}{a_0} \frac{1}{\hbar c} a_0 = \frac{e^2}{\hbar c}
    = \alpha.
\end{align}$$


&lt;p&gt;The expansion&lt;/p&gt;

$$\begin{align}
H_b = \frac{e A}{mc}\langle b| p_z \left[
                         1 + \mathrm{i} kx -\frac{1}{2}(kx)^2   \right]| a\rangle,
\end{align}$$

&lt;p&gt;the 2nd term&lt;/p&gt;

$$\begin{align}
p_z x = \underbrace{\frac{1}{2}(p_z x - z p_x)}_{- \frac{1}{2}\hbar L_y}
 + \frac{1}{2}(p_zx + z p_x)
\end{align}$$

&lt;p&gt;then&lt;/p&gt;

$$\begin{align}
\mathrm{i} k \frac{e A}{mc}\langle b| \frac{1}{2}(p_z   x - zp_x)| a\rangle
= \underbrace{- \mathrm{i}A k}_{B_y}
   \underbrace{\frac{e\hbar}{2 mc}}_{\mu_B}  \langle b| L_y |a\rangle = \vec{B}\mu_B \langle b|
   \underbrace{\vec{L}}_{-\vec{\mu}} | a\rangle
\end{align}$$

&lt;p&gt;where we have used $\vec{B} = \nabla\times \vec{A} = - \mathrm{i}k A \hat{y}$ .&lt;/p&gt;

&lt;p&gt;the other term&lt;/p&gt;

$$\begin{align}
\frac{1}{2}(p_zx + z p_x) = \frac{m}{2\mathrm{i}\hbar} \left(
             [z, H_0] x + z[x, H_0] \right)
 = \frac{m}{2\mathrm{i}\hbar} \left(
             -H_0 zx + zx H_0 \right)
\end{align}$$

&lt;p&gt;then (use $\vec{E} = - \frac{1}{c} \frac{\partial \vec{A}}{\partial t}, E = \mathrm{i}kA$)&lt;/p&gt;

$$\begin{align}
\mathrm{i} k \frac{e A}{mc}\langle b| \frac{1}{2}(p_z   x + zp_x)| a\rangle
= -\frac{e A k}{2 c} \omega_{ba} \langle b|z x |a\rangle
 = \frac{\mathrm{i} e E \omega_{ba}}{2 c} \langle b|z x |a\rangle
\end{align}$$

&lt;p&gt;this is electric quadropole.&lt;/p&gt;

&lt;p&gt;So,&lt;/p&gt;

$$\begin{align}
H_{\mathrm{int}}^{(2)} = \underbrace{H_{\mathrm{int}}(M1)}_{\mathrm{real}}
           + \underbrace{H_{\mathrm{int}}(E2)}_{\mathrm{imaginary}}
\end{align}$$

&lt;p&gt;there are no interference, that is to say&lt;/p&gt;

$$\begin{align}
|H_{\mathrm{int}}^{(2)}|^2 = |H_{\mathrm{int}}(M1)|^2 +
                 |H_{\mathrm{int}}(E2)|^2
\end{align}$$


&lt;h2&gt;Summary&lt;/h2&gt;


&lt;table&gt;
&lt;tr&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;                    &lt;/td&gt;
&lt;td&gt; Operator                        &lt;/td&gt;
&lt;td&gt; Parity &lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt; Electric dipole E1 &lt;/td&gt;
&lt;td&gt; $-e\vec{r}$                     &lt;/td&gt;
&lt;td&gt; -      &lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt; Magnetic dipole M1 &lt;/td&gt;
&lt;td&gt; $-\mu_B (\vec{L} + g_s \vec{S})$ &lt;/td&gt;
&lt;td&gt; +      &lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt; Electric dipole E2 &lt;/td&gt;
&lt;td&gt; Tensor $-e \vec{r}:\vec{r}$     &lt;/td&gt;
&lt;td&gt; +      &lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;
&lt;p&gt;M1, E2 are "Forbidden" transitions, $\alpha^2 \approx 5\times 10^{-5}$ weaker than an allowed
E1 transition.&lt;/p&gt;

&lt;h2&gt;Reference&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Goldstein, H., Poole, C. P. &amp; Safko, J. Classical Mechanics. 665 (2011).&lt;/li&gt;
&lt;/ul&gt;
</content><category term="专业笔记"/><category term="Atomic and Optical Physics"/><category term="Dipole approximation"/></entry><entry><title>Atomic and Optical Physics I, 11 Atoms in External Filds III, Field Ionization and AC Stark effect</title><link href="https://zqw.ink/2022-12-09-physics-mitamo11.html" rel="alternate"/><published>2022-12-09T00:00:00+08:00</published><updated>2022-12-09T00:00:00+08:00</updated><author><name>ZQW</name></author><id>tag:zqw.ink,2022-12-09:/2022-12-09-physics-mitamo11.html</id><summary type="html">
&lt;h2&gt;Information&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href='https://ocw.mit.edu/courses/physics/8-421-atomic-and-optical-physics-i-spring-2014/'&gt;MIT官方介绍&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href='https://www.youtube.com/playlist?list=PLUl4u3cNGP62FPGcyFJkzhqq9c5cHCK32'&gt;Youtube视频列表地址&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Beyond the Quadratic Stark Effect (Perturbation Theory)&lt;/h2&gt;

&lt;p&gt;We next consider the stability of atoms in strong electric field and field
ionization.&lt;/p&gt;

&lt;p&gt;Mixture of the states in to the ground state&lt;/p&gt;

$$\begin{align}
\sum_m |m^{(0)} \rangle \frac{\langle m^{(0)}|H'|n^{(0)} \rangle}{E_n^{(0)} - E_m …</summary><content type="html">
&lt;h2&gt;Information&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href='https://ocw.mit.edu/courses/physics/8-421-atomic-and-optical-physics-i-spring-2014/'&gt;MIT官方介绍&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href='https://www.youtube.com/playlist?list=PLUl4u3cNGP62FPGcyFJkzhqq9c5cHCK32'&gt;Youtube视频列表地址&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Beyond the Quadratic Stark Effect (Perturbation Theory)&lt;/h2&gt;

&lt;p&gt;We next consider the stability of atoms in strong electric field and field
ionization.&lt;/p&gt;

&lt;p&gt;Mixture of the states in to the ground state&lt;/p&gt;

$$\begin{align}
\sum_m |m^{(0)} \rangle \frac{\langle m^{(0)}|H'|n^{(0)} \rangle}{E_n^{(0)} - E_m^{(0)}}
\end{align}$$

&lt;p&gt;For perturbation theory, mixture coefficient is small, that is&lt;/p&gt;

$$\begin{align}
\left| \frac{\langle m^{(0)}|H'|n^{(0)} \rangle}{E_n^{(0)} - E_m^{(0)}} \right|\ll 1
\end{align}$$

&lt;p&gt;in our case&lt;/p&gt;

$$\begin{align}
\left| \frac{\langle i |e r \mathcal{E}| g \rangle}{E_i - E_g} \right|\ll 1 \\
\Rightarrow\mathcal{E} \ll \left| \frac{E_i - E_g}{e\langle i | r | g \rangle} \right|
\end{align}$$

&lt;p&gt;where $|i\rangle$ is the nearest state of oppsite parity to $|g\rangle$ . $\langle i | r | g \rangle$ is
on the order Bohr radius $a_0$ because there are no other length scales in this
problem. For hydrogen, $E_n = -\frac{1}{2}\frac{e^2}{a_0}\frac{1}{n^2}$ ,
so $E_i - E_g \sim e^2/ a_0$ . Then we gte an order of critical electric field beyond
which the perturbation will be invalid&lt;/p&gt;

$$\begin{align}
\mathcal{E}_{\mathrm{crit}} \sim \frac{e}{a_0^2} \approx 5\times 10^9 \mathrm{V/cm}? \\
(\frac{1.602\times 10^{-19} \times 2.998\times 10^9 \mathrm{Fr}}
{ \left(5.292\times 10^{-11} \times 10^2 \mathrm{cm}\right)^2}
\approx 1.7\times 10^7 \mathrm{V/cm}?)
\end{align}$$

&lt;p&gt;is $1,000$ times larger than laboratory electric fields.&lt;/p&gt;

&lt;p&gt;For other atoms(not hydrogen)&lt;/p&gt;

$$\begin{align}
\langle n, l + 1 | \vec{r} | n, l\rangle \sim n^2 a_{0} \\
\Delta E = E_{n, l + 1} - E_{n, l} =
 \frac{ - R_H}{(n - \delta_{l + 1})^2} - \frac{ - R_H}{(n - \delta_{l})^2} \\
(n\to\infty \mathrm{expand})\approx  2 R_H (\delta_{l + 1} - \delta_l) /n^3
\end{align}$$

&lt;p&gt;(a minus sign?)
where $\delta_l$ is the quantum defect. So $R_H = \frac{e^2}{a_0}$&lt;/p&gt;

$$\begin{align}
\mathcal{E}_{\mathrm{crit}} \sim \frac{\Delta E}{e \langle \mathrm{r}\rangle}
= \frac{e^2}{a_0} \frac{1}{e a_0} \frac{\delta_{l + 1} - \delta_l}{n^5}
\end{align}$$

&lt;p&gt;$\delta_l &lt; 10^{-5}$ for $l &gt; l_{\mathrm{core}} + 2 , n&gt;7$ ,
$\mathcal{E}_{\mathrm{crit}} &lt; 1 \mathrm{V/cm}$ . Where $l_{\mathrm{core}}$ is
angular momentum of the core. $n^{5}$ , so, for large $n$ ,
$\mathcal{E}_{\mathrm{crit}}$ can be reached! An example, Rydberg atom. Highly
excited states of atoms behave very differently from ground state atoms. Ref
Phys. Rev. Lett 41, 103-107 (1978)&lt;/p&gt;

&lt;h2&gt;Field ionization&lt;/h2&gt;

&lt;p&gt;&lt;p&gt;&lt;img src='2022-12-09-physics-MITAMO11/ionization.png' alt='ionization' max-width:100%&gt;&lt;p&gt;&lt;/p&gt;


$$\begin{align}
U_{\mathrm{total}} =&amp; - \frac{e^2}{|z|} + e\mathrm{E} z \\
z_{\mathrm{max}} =&amp; - \left| \frac{e}{\mathcal{E}} \right|^{1/2} \\
U_{\mathrm{max}} =&amp; -2 e^{3/2} \mathcal{E}^{1/2}
\end{align}$$

&lt;p&gt;if we assume $U_{\mathrm{max}} = -E_{\mathrm{Binding}} = - \mathrm{Ryd}/n^2$ ,
then (in atom units $e/a_0$)&lt;/p&gt;

$$\begin{align}
\mathcal{E}_{\mathrm{ION}} = \frac{1}{16 n^4}
\end{align}$$


&lt;p&gt;Application: $100%$ detection efficiency for atoms,  Phys. Rev. Lett. 76, 1800 (1996)&lt;/p&gt;

&lt;h2&gt;Atoms in oscillating electric fields (AC stack effect)&lt;/h2&gt;

&lt;p&gt;Use time dependent perturbation theory. An oscillating electric field&lt;/p&gt;

$$\begin{align}
\vec{\mathcal{E}}(t) =&amp; \mathcal{E} \hat{e} \cos(\omega t) \\
H' =&amp; - \vec{D} \cdot \vec{\mathcal{E}}(t)
 = - \frac{1}{2} \left( e^{\mathrm{i}\omega t} + e^{- \mathrm{i}\omega t} \right)
   \mathcal{E} \hat{e} \cdot \vec{D}
\end{align}$$

&lt;p&gt;the we use time dependent perturbation theory (Sakurai (5.7.17))&lt;/p&gt;

$$\begin{align}
|\psi(t) \rangle = \sum_k a_k(t) e^{- \mathrm{i} \omega_k t} |k\rangle
\end{align}$$


$$\begin{align}
a_k^{(1)} = \frac{\mathcal{E}}{2 \hbar}
 \langle k | \hat{e}\cdot \vec{D} | g\rangle
   \left[\frac{e^{\mathrm{i} (\omega_{kg} +\omega) t} - 1}{\omega_{kg} + \omega} + (\omega \leftrightarrow -\omega)  \right]
\end{align}$$

&lt;p&gt;the transmit contribution $1$ , due to the sudden switch on, will damps out.&lt;/p&gt;

&lt;p&gt;We set $\hat{e} = \hat{z}$ , $\vec{D} = - e z \hat{z}$ . Consider the ground
state $|g\rangle$ , then&lt;/p&gt;

$$\begin{align}
|g^(0) \rangle = \sum_k \delta_{kg} e^{- \mathrm{i} \omega_k t}| k\rangle = e^{- \mathrm{i}\omega_g t} | g\rangle
\end{align}$$

&lt;p&gt;the indeuced dipole(drop the sudden switch on term)&lt;/p&gt;

$$\begin{align}
&amp;\left( \langle g^{(0)}| + \langle g^{(1)}|  \right) D
 \left( |g^{(0)}\rangle + | g^{(1)}\rangle  \right) \\
=&amp; 2 \mathrm{Re} \langle g^{(0)} | D | g^{(1)} \rangle \\
=&amp; 2 \mathrm{Re} \sum_k \langle g | D | k \rangle a_k^{(1)}(t) e^{-\mathrm{i}\omega_kt}
 e^{\mathrm{i}\omega_gt}\\
=&amp; \frac{e^2}{\hbar} \mathrm{Re}\sum_k |\langle k | z| g\rangle|^2
\left[ \frac{e^{\mathrm{i} \omega t} }{\omega_{kg} + \omega} + (\omega \leftrightarrow -\omega) \right] \mathcal{E} \\
=&amp; \frac{e^2}{\hbar}  \mathrm{Re}\sum_k |\langle k | z| g\rangle|^2
\cdot 2 \frac{\omega_{kg}}{\omega_{kg}^2 - \omega^2} \cdot \cos (\omega t) \mathcal{E} \\
=&amp; \alpha(\omega) \cdot \cos (\omega t) \mathcal{E}
\end{align}$$

&lt;p&gt;where&lt;/p&gt;

$$\begin{align}
\alpha (\omega) \equiv \frac{e^2}{\hbar}  \mathrm{Re}\sum_k |\langle k | z| g\rangle|^2
\cdot 2 \frac{\omega_{kg}}{\omega_{kg}^2 - \omega^2}
\end{align}$$

&lt;p&gt;it is easy to show that $\alpha (0)$ is the DC result.&lt;/p&gt;

&lt;p&gt;About AC Stark shift, we have 3 poinst to discuss:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;relation to dressed atom&lt;/li&gt;
&lt;li&gt;oscillator strength&lt;/li&gt;
&lt;li&gt;index of refraction&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Relation to dressed atom&lt;/h2&gt;

&lt;p&gt;the energy shift of DC Stark effect is&lt;/p&gt;


$$\begin{align}
\Delta E = - \frac{1}{2} \alpha(\omega) \bar{\mathcal{E}^2(t)}
\end{align}$$

&lt;p&gt;where $\bar{\mathcal{E}^2(t)}$ means time average, then contribute a factor 2&lt;/p&gt;

$$\begin{align}
\Delta E =&amp; - \frac{1}{4} \alpha(\omega) \mathcal{E}^2 \\
    =&amp; - \frac{1}{4}
\frac{2e^2}{\hbar}   |\langle 1 | z| 2\rangle|^2
 \frac{\omega_{12}}{\omega_{12}^2 - \omega^2}
 \mathcal{E}^2 \\
=&amp; - \frac{\hbar}{4} \omega_R^2 \left[ \frac{1}{\delta} + \frac{1}{2\omega - \delta} \right]
\end{align}$$

&lt;p&gt;where &lt;a href='https://en.wikipedia.org/wiki/Rabi_frequency'&gt;Rabi frequency&lt;/a&gt; $\hbar^2 \omega_R^2 = e^2|\langle 1 | z| 2\rangle|^2
\mathcal{E}^2$ , detuning $\delta = \omega_{12} - \omega$ . The second term is called
&lt;a href='https://en.wikipedia.org/wiki/Bloch%E2%80%93Siegert_shift'&gt;Bloch–Siegert shift&lt;/a&gt; . This looks very similar to time-independent perturbation
theory, those are two term with detuning $\delta, -(2\omega -\delta)$ absorb a photon and
emit a photon correspondingly. This can be derived
using the quantized EM field (photons) picture.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;photon number states $\rightarrow$ time independent perturbation theory&lt;/li&gt;
&lt;li&gt;coherent state $\mathcal{E} \cos(\omega t)$  $\rightarrow$ time dependent perturbation theory&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;&lt;a href='https://en.wikipedia.org/wiki/Oscillator_strength'&gt;Oscillator strength&lt;/a&gt;&lt;/h2&gt;

&lt;p&gt;Compare our result (AC polarizability of atom) to a classical HO(harmonic
oscillator), with charge
$q_k$ , mass $m_k$ , frequency $\omega_k$ .&lt;/p&gt;

&lt;p&gt;Drivien by electric field $\mathcal{E} \cos(\omega t)$ :&lt;/p&gt;

&lt;p&gt;For a classical HO:&lt;/p&gt;
&lt;blockquote&gt;\begin{align}
D_z(\omega, t) = \mathcal{E} q_k z_q
\end{align}
where $z_{q}$ can be solved by classical mechanics of a driven oscillator, so
\begin{align}
D_z(\omega, t) = \mathcal{E} \frac{q_k^2}{m(\omega_k^2 - \omega^2)} \cos (\omega t)
\end{align}&lt;/blockquote&gt;

&lt;p&gt;For a atom&lt;/p&gt;
&lt;blockquote&gt;\begin{align}
D_z(\omega, t) = \sum_k f_{kg} \frac{e^2}{m(\omega_k^2 - \omega^2)} \mathcal{E}\cos(\omega t)
\end{align}
where oscillation strength defined as
\begin{align}
f_{kg} \equiv \frac{2m}{\hbar} \omega_{kg} |\langle k| z | j\rangle|^2
\end{align}&lt;/blockquote&gt;

&lt;p&gt;Atom response as a set of classical oscillators with an effective chrege&lt;/p&gt;

$$\begin{align}
q_k^2 = f_{kg} e^2
\end{align}$$


&lt;p&gt;For oscillation strength&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;classical correspondance&lt;/li&gt;
&lt;li&gt;Thomas–Reiche–Kuhn sum rule: $\sum_k f_{kg} = 1$&lt;/li&gt;
&lt;li&gt;it's a dimensionless parameter&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;For hydrogen, $1s \to 2p$ , $f = 0.4126$&lt;/p&gt;

&lt;p&gt;We can also write the matrix element in terms of oscillation strength&lt;/p&gt;


$$\begin{align}
|\langle k| z | j\rangle|^2 = f_{kg} \frac{1}{2} \cdot\frac{\hbar}{2m}\cdot \frac{1}{\omega_{kg}}
\end{align}$$

&lt;p&gt;where $\frac{\hbar}{2m}$ is the compton wave length of electron, $\frac{1}{\omega_{kg}}$
is the photon wave length.&lt;/p&gt;

&lt;h2&gt;Index of refraction&lt;/h2&gt;

&lt;p&gt;...&lt;/p&gt;

&lt;p&gt;ref Jackson (10.146)&lt;/p&gt;

&lt;h2&gt;Reference&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href='https://journals.aps.org/prl/abstract/10.1103/PhysRevLett.41.103'&gt;Field-Ionization Processes in Excited Atoms Michael G. Littman, Michael M. Kash, and Daniel Kleppner, Phys. Rev. Lett. 41, 103 – Published 10 July 1978&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href='https://journals.aps.org/prl/abstract/10.1103/PhysRevLett.76.1800'&gt;Quantum Rabi Oscillation: A Direct Test of Field Quantization in a Cavity M. Brune, F. Schmidt-Kaler, A. Maali, J. Dreyer, E. Hagley, J. M. Raimond, and S. Haroche, Phys. Rev. Lett. 76, 1800 – Published 11 March 1996&lt;/a&gt; (S. Haroche 2012 Nobel physics prize)&lt;/li&gt;
&lt;li&gt;Jackson, J. D. Classical electrodynamics. (Wiley, 1999)&lt;/li&gt;
&lt;li&gt;Jun John Sakurai, Jim Napolitano, Modern Quantum Mechanics. (Cambridge University Press, 2017)&lt;/li&gt;
&lt;li&gt;&lt;a href='https://en.wikipedia.org/wiki/Rabi_frequency'&gt;Wikipedia: Rabi frequency&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href='https://en.wikipedia.org/wiki/Bloch%E2%80%93Siegert_shift'&gt;Wikipedia: Bloch–Siegert shift&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href='https://en.wikipedia.org/wiki/Oscillator_strength'&gt;Wikipedia: Oscillator strength&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</content><category term="专业笔记"/><category term="Atomic and Optical Physics"/><category term="Stark effect"/><category term="AC stark effect"/><category term="Field Ionization"/><category term="Bloch–Siegert shift"/></entry><entry><title>Atomic and Optical Physics I, 10 Atoms in External Filds II, Quadratic DC Stark effect</title><link href="https://zqw.ink/2022-12-04-physics-mitamo10.html" rel="alternate"/><published>2022-12-04T00:00:00+08:00</published><updated>2022-12-04T00:00:00+08:00</updated><author><name>ZQW</name></author><id>tag:zqw.ink,2022-12-04:/2022-12-04-physics-mitamo10.html</id><summary type="html">
&lt;h2&gt;Information&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href='https://ocw.mit.edu/courses/physics/8-421-atomic-and-optical-physics-i-spring-2014/'&gt;MIT官方介绍&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href='https://www.youtube.com/playlist?list=PLUl4u3cNGP62FPGcyFJkzhqq9c5cHCK32'&gt;Youtube视频列表地址&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Summary HFS&lt;/h2&gt;


$$\begin{align}
H = a h \vec{I}\cdot \vec{J} + (g_J \mu_B m_J - g_I \mu_N m_I) B_0
\end{align}$$


&lt;p&gt;weak field: HFS + $\mu_B g_F B_0 m_F$&lt;/p&gt;


$$\begin{align}
\frac{a h}{2} [(F(F + 1) - J(J + 1) - I(I + 1) ]
\end{align}$$


&lt;p&gt;strong field …&lt;/p&gt;</summary><content type="html">
&lt;h2&gt;Information&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href='https://ocw.mit.edu/courses/physics/8-421-atomic-and-optical-physics-i-spring-2014/'&gt;MIT官方介绍&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href='https://www.youtube.com/playlist?list=PLUl4u3cNGP62FPGcyFJkzhqq9c5cHCK32'&gt;Youtube视频列表地址&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Summary HFS&lt;/h2&gt;


$$\begin{align}
H = a h \vec{I}\cdot \vec{J} + (g_J \mu_B m_J - g_I \mu_N m_I) B_0
\end{align}$$


&lt;p&gt;weak field: HFS + $\mu_B g_F B_0 m_F$&lt;/p&gt;


$$\begin{align}
\frac{a h}{2} [(F(F + 1) - J(J + 1) - I(I + 1) ]
\end{align}$$


&lt;p&gt;strong field&lt;/p&gt;


$$\begin{align}
ah m_I m_J + (g_J \mu_B m_J - g_I \mu_N m_I) B_0
\end{align}$$


&lt;p&gt;even stronger field&lt;/p&gt;

$$\begin{align}
A_{FS} m_l m_s + a_S m_I m_S + a_l m_I m_l
+ g_S \mu_B m_S + g_l \mu_B m_l - g_I \mu_N m_I
\end{align}$$


&lt;ul&gt;
&lt;li&gt;Nice example for Hamiltonian with different scaler products: $\vec{B}\cdot \vec{S} , \quad \vec{B}\cdot \vec{L} \quad \vec{S}\cdot \vec{L} \quad \vec{I} \cdot \vec{J}$&lt;/li&gt;
&lt;li&gt;vector model (rapid procession of projection) (calculation without explicit use of CG coefficents)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Atom in external electric fields: standard theory of the DC Stark effect of the atom polarizbility&lt;/h2&gt;

&lt;p&gt;Uniform electric field $\mathcal{E} \hat{z}$ .
ref Jackson Chap 4.6, Eq(4.24)&lt;/p&gt;

$$\begin{align}
U(\vec{r}) = q \phi(\vec{r}) - \vec{d}\cdot \hat{z} \mathcal{E} - \alpha \mathcal{E}^2
\end{align}$$

&lt;p&gt;this three terms corresponds monopole, permanent dipole moment, polarizbility
$\alpha$ induced dipole momentum $d_{IND} = \alpha \mathcal{E}$ .&lt;/p&gt;

&lt;p&gt;Use perturbation operator $H' = - \vec{d} \hat{z} \mathcal{E} = e z \mathcal{E}$
($\vec{d} = -e \vec{r}, d = -ez$) . $H'$ is odd parity, we have no permanent
dipole until we have degenerate energy levels.&lt;/p&gt;

&lt;p&gt;1st order perturbation energy (no degeneration)&lt;/p&gt;

&lt;p&gt;$E_n^{(1)} = \langle n^{(0)} | H' | n^{(0)}\rangle = 0$ .&lt;/p&gt;

&lt;p&gt;2nd order perturbation energy&lt;/p&gt;

$$\begin{align}
E_n^{(2)} = \sum_m ^{'} \frac{\langle n^{(0)}  | ez\mathcal{E}| m^{(0)}\rangle
\langle m^{(0)} | ez\mathcal{E} | n^{(0)}\rangle}
{E_n^{(0)} - E_m^{(0)}}
= e^2 \mathcal{E}^2
\sum_m^{'} \frac{|\langle n^{(0)}  | z| m^{(0)}\rangle|^2}{E_n^{(0)} - E_m^{(0)}}
\end{align}$$

&lt;p&gt;where $\sum_m^{'}$ means sum over all $m\neq n$ .&lt;/p&gt;

&lt;p&gt;dipole in the 1st order perturbed state&lt;/p&gt;

$$\begin{align}
\langle \vec{d} \rangle =&amp; (\langle n^{(0)}| + \langle n^{(1)}|) \vec{d}
              (| n^{(0)}\rangle + | n^{(1)}\rangle) \\
 = &amp; \langle n^{(1)} | \vec{d} | n^{(0)} \rangle + \langle n^{(0)} | \vec{d} | n^{(1)} \rangle \\
 = &amp; 2 \mathrm{Re} \left[\langle n^{(1)} | \vec{d} | n^{(0)} \rangle \right] \\
 = &amp; 2 \mathrm{Re} \left(
\sum_m^{'} \frac{\langle n^{(0)} | \vec{d} | m^{(0)} \rangle
              \langle m^{(0)} | ez\mathcal{E} | n^{(0)} \rangle}{E_n^{(0)} - E_m^{(0)}}
 \right) \\
 = &amp; - 2 \hat{z} e^2 \mathcal{E}  \sum_m^{'}
\frac{|\langle n^{(0)} |z| m^{(0)}\rangle |^{2}}{E_n^{(0)} - E_m^{(0)}} \\
 =&amp; \alpha \vec{\mathcal{E}}
\end{align}$$

&lt;p&gt;where the second equality use the parity of $\vec{d}$ . The polarizbility&lt;/p&gt;

$$\begin{align}
\alpha \equiv \frac{d}{\mathcal{E}} = - 2  e^2  \sum_m^{'}
\frac{|\langle n^{(0)} |z| m^{(0)}\rangle |^{2}}{E_n^{(0)} - E_m^{(0)}}
\end{align}$$

&lt;p&gt;so, we can rewrite the 2nd order perturbed energy as&lt;/p&gt;

$$\begin{align}
E_n^{(2)} = - \frac{1}{2}\alpha \mathcal{E}^2 = - \frac{1}{2}\langle \vec{d} \rangle \cdot \mathcal{E}
\end{align}$$


&lt;p&gt;Another veiw, 2nd perturbed total energy is (there is a problem about the
nomalization of perturbed wave function, a little funny)&lt;/p&gt;

$$\begin{align}
E_n^{(0)} + \Delta E =&amp; E_n^{(0)} + E_n^{(1)} + E_n^{(2)}
= \left( \langle n^{(0)} | + \langle n^{(1) |} \right) \left( H_0 + H' \right)
  \left( | n^{(0)} \rangle + |n^{(1)} \rangle \right) \\
=&amp; \langle n^{(0)} | H_0 | n^{(0)}\rangle + \langle n^{(1)} | H_0 | n^{(1)}\rangle
  + 2 \mathrm{Re} \left[ \langle n^{(0)} | H' | n^{(1)}\rangle \right]
\end{align}$$

&lt;p&gt;the second term&lt;/p&gt;

$$\begin{align}
\langle n^{(1)} | H_0 | n^{(1)}\rangle
 =&amp; \sum_{lm}^{'} \left( \frac{\langle n^{(0)} | H' | l^{(0)} \rangle\langle l^{(0)} | }
     {E_n^{(0)} - E_l^{(0)}}  \right)
 \left( H_0 \right)
\left( \frac{| m^{(0)} \rangle\langle m^{(0)} | H' | n^{(0)} \rangle  }
     {E_n^{(0)} - E_m^{(0)}}  \right) \\
=&amp; \sum_m^{'} \frac{|\langle n^{(0)} | H' | m^{(0)} \rangle|^2}{(E_n^{(0)} - E_m^{(0)})^2}
   E_m^{(0)}
\end{align}$$

&lt;p&gt;if we set $E_n^{(0)} = 0$ , then&lt;/p&gt;

$$\begin{align}
\langle n^{(1)} | H_0 | n^{(1)}\rangle = \frac{1}{2}\alpha \mathcal{E}^2
\end{align}$$

&lt;p&gt;then&lt;/p&gt;

$$\begin{align}
E_n^{(0)} + \Delta E = E_n^{(0)} \langle n^{(0)} | n^{(0)} \rangle + \frac{1}{2}\alpha \mathcal{E}
 - \alpha \mathcal{E}^2
\end{align}$$

&lt;p&gt;and $\Delta E = - \frac{1}{2}\alpha \mathcal{E}$ , the same as before.&lt;/p&gt;

&lt;h2&gt;Unit of $\alpha$&lt;/h2&gt;

&lt;p&gt;dimension of $[\alpha] = [\frac{q^2l^2}{E}] = [\frac{q^2}{l} \frac{1}{E}l^3] = L^3$ , is
volum.&lt;/p&gt;

&lt;p&gt;For hydrogen, only consider the matrix element between 1s and 2p, then we get&lt;/p&gt;

$$\begin{align}
\alpha \approx 2.96 a_0^3
\end{align}$$

&lt;p&gt;where $\alpha = 4.5 a_0^3$ if we use all matrix elements (include the positive energy
continuum states of hydrogen).&lt;/p&gt;

&lt;h2&gt;Unsold's approximation&lt;/h2&gt;

&lt;p&gt;something like Sakurai page 315.&lt;/p&gt;

&lt;h2&gt;Compare with classical EM for conducting sphere&lt;/h2&gt;

&lt;p&gt;dipole moment of a conducting sphere in a uniform electric filed is (Jackson
4.56) $\mathcal{E} R^3$&lt;/p&gt;

$$\begin{align}
\tag{Jackson (4.56)}
p =&amp; 4\pi \epsilon_0 \left( \frac{\epsilon/\epsilon_0 - 1}{\epsilon / \epsilon_0 + 2} \right)R^3\mathcal{E} \\
p_{\mathrm{conducting sphere}} =&amp; \lim_{\epsilon\to \infty} p = 4\pi \epsilon_0 R^3 E_0 \quad(\mathrm{SI}) \\
p_{\mathrm{conducting sphere}} \sqrt{4\pi\epsilon_0}
 =&amp;4\pi \epsilon_0 R^3 E_0 \frac{1}{\sqrt{4\pi\epsilon_0}} \quad(\mathrm{Gauss}) \\
p_{\mathrm{conducting sphere}}
 =&amp; R^3 E_0  \quad(\mathrm{Gauss})
\end{align}$$


&lt;p&gt;so, atoms $\Leftrightarrow$ conducting sphere.&lt;/p&gt;

&lt;blockquote&gt;When it comes to dipole moments and to polarizbility, atoms pretty much behave
like metallic conducting sphere of the same volum.&lt;/blockquote&gt;

&lt;h2&gt;Reference&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Jackson, J. D. Classical electrodynamics. (Wiley, 1999)&lt;/li&gt;
&lt;li&gt;Jun John Sakurai, Jim Napolitano, Modern Quantum Mechanics. (Cambridge University Press, 2017)&lt;/li&gt;
&lt;/ul&gt;
</content><category term="专业笔记"/><category term="Atomic and Optical Physics"/><category term="Stark effect"/><category term="Quadratic DC stark effect"/></entry><entry><title>Atomic and Optical Physics I, 09 Atoms V and Atoms in External Filds I</title><link href="https://zqw.ink/2022-11-22-physics-mitamo09.html" rel="alternate"/><published>2022-11-22T00:00:00+08:00</published><updated>2022-11-22T00:00:00+08:00</updated><author><name>ZQW</name></author><id>tag:zqw.ink,2022-11-22:/2022-11-22-physics-mitamo09.html</id><summary type="html">
&lt;h2&gt;Information&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href='https://ocw.mit.edu/courses/physics/8-421-atomic-and-optical-physics-i-spring-2014/'&gt;MIT官方介绍&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href='https://www.youtube.com/playlist?list=PLUl4u3cNGP62FPGcyFJkzhqq9c5cHCK32'&gt;Youtube视频列表地址&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Atoms V&lt;/h2&gt;

&lt;p&gt;Summary of spectroscipy of hydrogen over 80 years from precursors to the Lamb
shift, to the &lt;a href='https://en.wikipedia.org/wiki/Proton_radius_puzzle'&gt;&lt;em&gt;proton radius puzzle&lt;/em&gt;&lt;/a&gt; .&lt;/p&gt;

&lt;h2&gt;Atoms in external magnetic fields&lt;/h2&gt;

&lt;h3&gt;Fine structure and &lt;a href='https://en.wikipedia.org/wiki/Land%C3%A9_g-factor'&gt;Landé g-factor&lt;/a&gt;&lt;/h3&gt;

&lt;p&gt;"game of $\vec{L}, \vec{S}, \vec{B}$ "&lt;/p&gt;

&lt;p&gt;Add the Zeeman term&lt;/p&gt;

$$\begin{align}
H_Z = - \vec …</summary><content type="html">
&lt;h2&gt;Information&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href='https://ocw.mit.edu/courses/physics/8-421-atomic-and-optical-physics-i-spring-2014/'&gt;MIT官方介绍&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href='https://www.youtube.com/playlist?list=PLUl4u3cNGP62FPGcyFJkzhqq9c5cHCK32'&gt;Youtube视频列表地址&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Atoms V&lt;/h2&gt;

&lt;p&gt;Summary of spectroscipy of hydrogen over 80 years from precursors to the Lamb
shift, to the &lt;a href='https://en.wikipedia.org/wiki/Proton_radius_puzzle'&gt;&lt;em&gt;proton radius puzzle&lt;/em&gt;&lt;/a&gt; .&lt;/p&gt;

&lt;h2&gt;Atoms in external magnetic fields&lt;/h2&gt;

&lt;h3&gt;Fine structure and &lt;a href='https://en.wikipedia.org/wiki/Land%C3%A9_g-factor'&gt;Landé g-factor&lt;/a&gt;&lt;/h3&gt;

&lt;p&gt;"game of $\vec{L}, \vec{S}, \vec{B}$ "&lt;/p&gt;

&lt;p&gt;Add the Zeeman term&lt;/p&gt;

$$\begin{align}
H_Z = - \vec{\mu} \cdot \vec{B}
\end{align}$$

&lt;p&gt;to the SOC Hamiltonian&lt;/p&gt;

$$\begin{align}
H = H_0 + H_{FS} + H_Z = H_0 + A_{FS} \vec{L}\cdot \vec{S}
-\frac{\mu_B}{\hbar} (g_s \vec{S} + g_l \vec{L})\cdot \vec{B}
\end{align}$$

&lt;p&gt;where $|g_s| = 2(1 + \frac{\alpha}{2\pi} + \cdots )$ for electron spin, and $|g_l| = 1$
electon orbital angular momentum. FS term: an internal magnetic field $\sim 1$
Tesla.&lt;/p&gt;

&lt;h3&gt;direct derivation by using&lt;/h3&gt;


$$\begin{align}
\langle S, L, J, m_J | H_Z | S', L', J', m_J' \rangle
\end{align}$$


&lt;h3&gt;weak field limit $H_{FS} \gg H_{Z}$&lt;/h3&gt;

&lt;p&gt;vector model: $\vec{L}, \vec{S}$ rapidly process aroud total angular momentum
$\vec{J}$ , only projection on $\vec{J}$ .&lt;/p&gt;

&lt;p&gt;use $\vec{L}^2 = (\vec{J} - \vec{S})^2 \Rightarrow 2\vec{J}\cdot \vec{S} = \vec{J}^2 + \vec{S
}^2 - \vec{L}^2$ and let $g_s \to -2, g_l \to -1$&lt;/p&gt;

$$\begin{align}
H_Z =&amp; - \left(\vec{\mu}\cdot \frac{ \vec{J}}{|\vec{J}|} \right)
       \left( \vec{B}\cdot \frac{\vec{J}}{|\vec{J}|} \right) \\
 =&amp; \frac{\mu_B}{\hbar} \frac{(\vec{L}+ 2\vec{S})\cdot \vec{J}}{|\vec{J}|^2} B J_Z \\
 =&amp;  \frac{\mu_B B}{\hbar}J_z \cdot
 \frac{\vec{J}^2 + \frac{1}{2}(\vec{J}^2 + \vec{S}^{2} - \vec{L}^2)}{\vec{J}^2}\\
 =&amp; \mu_B B m_J \left(1 +  \frac{J(J + 1) + S(S + 1) - L(L + 1)}{2 J(J + 1)} \right)\\
\equiv &amp; \mu_B B m_J g_J
\end{align}$$

&lt;p&gt;where $g_J$ is &lt;a href='https://en.wikipedia.org/wiki/Land%C3%A9_g-factor'&gt;Landé g-factor&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;limiting case&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;$S = 0 \Rightarrow g_J = 1$&lt;/li&gt;
&lt;li&gt;$L = 0 \Rightarrow g_J = 2$&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;HFS in an Applied Field&lt;/h3&gt;

&lt;p&gt;Now add nucleus spin $\vec{I}$ :&lt;/p&gt;

$$\begin{align}
\vec{L} , \vec{S}, \vec{I}, \vec{B} , \quad \vec{I} + \vec{J} = \vec{F}
\end{align}$$


&lt;p&gt;(No fine structure Hamiltonian?)&lt;/p&gt;

$$\begin{align}
H = H_0 + a h \vec{I}\cdot \vec{J} - \vec{\mu}_J \cdot B_0 - \vec{\mu}_I \cdot \vec{B}_0
\end{align}$$


&lt;h4&gt;LOW FIELD $\vec{\mu}_J\cdot \vec{B}_0 \ll a h \vec{I}\cdot \vec{J}$&lt;/h4&gt;


$$\begin{align}
H_Z = -(\vec{\mu}_J + \vec{\mu}_{I})\cdot \vec{B}_0
\end{align}$$

&lt;p&gt;treated in a perturbation theory, similar to landé g factor&lt;/p&gt;

$$\begin{align}
H_Z = -\mu_B ( -|g_J| \vec{J}\cdot \vec{F} + g_I \frac{\mu_N}{\mu_B}\vec{I}\cdot \vec{F})
\frac{\vec{F} \cdot \vec{B}_0}{|\vec{F}|^{2}}
\end{align}$$

&lt;p&gt;where $\mu_N = \frac{e\hbar}{2m_p}$ (&lt;a href='https://en.wikipedia.org/wiki/Nucleon_magnetic_moment'&gt;Wikipedia: Nucleon magnetic moment&lt;/a&gt;) , and because $m_p \gg m_3$ , so $\mu_N\ll \mu_B$ , we
neglect the second term, we define&lt;/p&gt;

$$\begin{align}
g_F \equiv \frac{\vec{J}\cdot \vec{F}}{|\vec{F}|^2}g_J
\end{align}$$

&lt;p&gt;thus&lt;/p&gt;

$$\begin{align}
H_Z = \mu_B g_F B_0 m_F
\end{align}$$


&lt;h4&gt;HIGH FIELD $\vec{\mu}_J\cdot \vec{B} \gg a h \vec{I}\cdot \vec{J}$&lt;/h4&gt;

&lt;p&gt;Zeeman energy fist comes, $\vec{B}_0$ quantize $\vec{J}$ and $\vec{I}$
along $B_0$&lt;/p&gt;

$$\begin{align}
H_Z = |g_J| \mu_B m_J B_0 - g_I \mu_N m_I B_0 + a h m_I m_J
\end{align}$$


&lt;h4&gt;GENERAL SOLUTION: EXACT DIAGNOLIZATION&lt;/h4&gt;


$$\begin{align}
H = a h \vec{I}\cdot \vec{J} + (g_J\mu_B m_J - g_I \mu_N m_I) B_0
\end{align}$$



$$\begin{align}
m_F = m_I + m_J = m_{\mathrm{TOTAL}}
\end{align}$$

&lt;p&gt;structure: repulsive and anti-crossings of state with the same $m_F$ , for
example: Na $^{87}\mathrm{Rb}$ . $^2S_{1/2}$ ground state $I = \frac{3}{2}$ .&lt;/p&gt;

&lt;h2&gt;Reference&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href='https://en.wikipedia.org/wiki/Proton_radius_puzzle'&gt;Wikipedia: Proton radius puzzle&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href='https://en.wikipedia.org/wiki/Land%C3%A9_g-factor'&gt;Wikipedia: Landé g-factor&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href='http://sites.unice.fr/site/kastberg/My_Sites/Physique_Atomique/Cours_files/lscoupling.pdf'&gt;vector model: lscoupling.pdf&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href='https://en.wikipedia.org/wiki/Nucleon_magnetic_moment'&gt;Wikipedia: Nucleon magnetic moment&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</content><category term="专业笔记"/><category term="Atomic and Optical Physics"/><category term="Zeeman effect"/></entry><entry><title>Lindblad Master Equation and FFT</title><link href="https://zqw.ink/2022-10-03-physics-lindblad_master_eq.html" rel="alternate"/><published>2022-10-03T00:00:00+08:00</published><updated>2022-10-03T00:00:00+08:00</updated><author><name>ZQW</name></author><id>tag:zqw.ink,2022-10-03:/2022-10-03-physics-lindblad_master_eq.html</id><summary type="html">
&lt;h2&gt;Lindblad Master Equation&lt;/h2&gt;


$$\begin{align}
\frac{\mathrm{d}}{\mathrm{d}t}\rho = -\mathrm{i} [H, \rho]
 + \sum_n \left(L_n \rho L_n^{\dagger} - \frac{1}{2}\{L_n^{\dagger}L_n, \rho\}\right)
\end{align}$$


&lt;p&gt;小括号中的求和对应耗散过程. 求和中第一 …&lt;/p&gt;</summary><content type="html">
&lt;h2&gt;Lindblad Master Equation&lt;/h2&gt;


$$\begin{align}
\frac{\mathrm{d}}{\mathrm{d}t}\rho = -\mathrm{i} [H, \rho]
 + \sum_n \left(L_n \rho L_n^{\dagger} - \frac{1}{2}\{L_n^{\dagger}L_n, \rho\}\right)
\end{align}$$


&lt;p&gt;小括号中的求和对应耗散过程. 求和中第一项是跃迁算符 $L_n$ 导致的 $L_n$ 的末态的增加, 求
和中第二项是初态的减少, 或者 coherence 的减少.&lt;/p&gt;

&lt;h2&gt;Example: Tight binding&lt;/h2&gt;

&lt;h3&gt;解析分析&lt;/h3&gt;

&lt;p&gt;如 Phys. Rev. Lett. 127, 070402 (2022) 中的例子:&lt;/p&gt;

$$\begin{align}
H =&amp; 0 \\
L_{R, l} =&amp; \sqrt{\gamma_R} |l + 1\rangle\langle l| \\
L_{L, l} =&amp; \sqrt{\gamma_L} | l - 1 \rangle\langle l|
\end{align}$$

&lt;p&gt;这是一个一维链, 格点之间没有相互作用, 但相邻格点之间有类似自发辐射的非相干的跃迁
过程.&lt;/p&gt;

&lt;p&gt;这此模型中, 主方程只有耗散项. 第一项对应&lt;/p&gt;

$$\begin{align}
L_{R,l} \rho L_{R, l}^{\dagger} = \gamma_R  \rho_{ll} |l + 1\rangle\langle l + 1|
\end{align}$$

&lt;p&gt;$L_{L, l}$ 是类似的. 可以看出, 这一项的作用是使跃迁的末态 $|l + 1\rangle$ 的 population 增加, 且
增加的多少与初态 $|l\rangle$ 的 population 成正比. 这很物理.&lt;/p&gt;

&lt;p&gt;再看另外一项:&lt;/p&gt;

$$\begin{align}
&amp;- \frac{1}{2} \sum_l\{L_{R, l}^{\dagger}L_{R, l}, \rho\}
= - \frac{1}{2}\gamma_R\sum_{l, m, n} \{|l\rangle\langle l|, \rho_{mn}|m\rangle\langle n|\}\\
=&amp; - \frac{1}{2}\gamma_R \sum_{l,n}(|l\rangle\langle n| \rho_{l,n} + |n\rangle\langle l|, \rho_{n,l}) \\
 =&amp; - \gamma_R \sum_l \rho_{ll} |l\rangle\langle l|
      -\frac{1}{2}\gamma_R \sum_{l, n\neq l}\left(\rho_{l, n}|l\rangle\langle n| + \rho_{n, l}|n\rangle\langle l| \right)
\end{align}$$

&lt;p&gt;第一项是对角项 population 的减小对角项越大, 减小越多. 第二项是非对角项 coherence
的减小, 它本来越大, 减小就越多.&lt;/p&gt;

&lt;p&gt;这个例子的特点是, 它是描述的是一维格点中的单体运动, 这就导致每个 $L_n$
只包含一个矩阵元, 这就导致主方程是分块对角的. 因为我们分析过了, $L_n$ 的作用有三
点&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;使得对角项 population 有一部分与其相邻的 population 成正比的增加, 这描述的是作 为跃迁的终态, population 的增加. 它在主方程中是正号的那个耗散项.&lt;/li&gt;
&lt;li&gt;使得对角项 population 有一部分与自身成正比的减小, 描述的是作为跃迁的初态, 粒子 跳向别的态, population 减小. 它在主方程中是负号的那个耗散项.&lt;/li&gt;
&lt;li&gt;使得所有的 coherence 都减小, 自身越大, 减小越快. 因此耗散项使得系统的相干性不 断降低.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;这三点没有 population 与 coherence 之间的 couple. 这使得问题大大简化, 立即可以得
到解析解. 所有的 coherence 都是 exponential decay.
population 可以用一个 no-Hermition 的有有效 Hamiltonian 来描述&lt;/p&gt;

$$\begin{align}
H_{\mathrm{eff}} = \sum_{l} (\gamma_R |l + 1\rangle\langle l| + \gamma_L |l\rangle\langle l + 1|)
\end{align}$$

&lt;p&gt;我们忽略了一个常数算符.
它描述了 population 之间的相互跃迁. 这就是一个 tight binding 的模型. 在周期性边
界条件下, 由于平移对称性, 它可以严格解, 具体结果可以参考 Phys. Rev. Lett. 127,
070402 (2021).&lt;/p&gt;

&lt;h3&gt;数值分析&lt;/h3&gt;

&lt;p&gt;这个 model 是快速傅里叶变换 (FFT) 的极佳的例子.&lt;/p&gt;

&lt;pre&gt;&lt;code class="language-python"&gt;import numpy as np
import matplotlib.pyplot as plt


def hamiltonian(N, gamma_l, gamma_r):
    a = np.eye(N-1)
    right = np.vstack((np.zeros(N-1), a))
    right = np.hstack((right, np.zeros([N, 1])))
    left = np.hstack((np.zeros([N-1, 1]), a))
    left = np.vstack((left, np.zeros(N)))
    pbc = np.zeros([N, N])
    pbc[0, -1] = gamma_l        # peridical boundary condition
    pbc[-1, 0] = gamma_r
    h = left*gamma_l + right*gamma_r + pbc
    return h


N = 10
h = hamiltonian(N, 1, 2)
plt.imshow(h)
plt.colorbar()
plt.savefig('hamiltonian.png', transparent=True)

P = np.array([[np.exp(-1j*2*np.pi/N * a*b) for a in range(N)]
              for b in range(N)])
D = P.conjugate()@h@P
plt.clf()
plt.imshow(np.abs(D))
plt.colorbar()
plt.savefig('population.png', transparent=True)

eigenvalues = np.array([D[i, i] for i in range(N)])
plt.clf()
for i in eigenvalues:
    plt.plot(i.real, i.imag, 'bo')
plt.xlabel('Re')
plt.ylabel('Im')
plt.savefig('eigenvalues.png', transparent=True)&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;a href='2022-10-03-physics-lindblad_master_eq/code.py'&gt;code.py&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;周期边界条件下的 Hamiltonian:&lt;/p&gt;

&lt;p&gt;&lt;p&gt;&lt;img src='2022-10-03-physics-lindblad_master_eq/hamiltonian.png' alt='hamiltonian' max-width:100%&gt;&lt;p&gt;&lt;/p&gt;

&lt;p&gt;对坐标基底做 FFT , 换到动量基底下, Hamiltonian 就对角化了:&lt;/p&gt;

&lt;p&gt;&lt;p&gt;&lt;img src='2022-10-03-physics-lindblad_master_eq/population.png' alt='population' max-width:100%&gt;&lt;p&gt;&lt;/p&gt;

&lt;p&gt;本征值就是一组平面波:&lt;/p&gt;

&lt;p&gt;&lt;p&gt;&lt;img src='2022-10-03-physics-lindblad_master_eq/eigenvalues.png' alt='eigenvalues' max-width:100%&gt;&lt;p&gt;&lt;/p&gt;

&lt;h2&gt;Reference&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href='https://journals.aps.org/prl/abstract/10.1103/PhysRevLett.127.070402'&gt;Phys. Rev. Lett. 127, 070402 (2021) Liouvillian Skin Effect: Slowing Down of Relaxation Processes without Gap Closing&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</content><category term="专业笔记"/><category term="物理"/><category term="Lindblad Master Equation"/><category term="FFT"/><category term="tight binding"/></entry><entry><title>博客2.0版本的介绍存档</title><link href="https://zqw.ink/2022-09-20-coding-blog20.html" rel="alternate"/><published>2022-09-20T00:00:00+08:00</published><updated>2022-09-20T00:00:00+08:00</updated><author><name>ZQW</name></author><id>tag:zqw.ink,2022-09-20:/2022-09-20-coding-blog20.html</id><summary type="html">
&lt;h1 id="关于我"&gt;关于我&lt;/h1&gt;
&lt;p&gt;AMO PhD student&lt;/p&gt;
&lt;p&gt;研究课题: RF spectrum of strongly interacting Bose gases across d-wave resonance&lt;/p&gt;
&lt;p&gt;热爱生活, 热爱物理.&lt;/p&gt;
&lt;p&gt;业余爱好列表, 排名不分先后:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;书法: 始于初中语文课本 …&lt;/li&gt;&lt;/ul&gt;</summary><content type="html">
&lt;h1 id="关于我"&gt;关于我&lt;/h1&gt;
&lt;p&gt;AMO PhD student&lt;/p&gt;
&lt;p&gt;研究课题: RF spectrum of strongly interacting Bose gases across d-wave resonance&lt;/p&gt;
&lt;p&gt;热爱生活, 热爱物理.&lt;/p&gt;
&lt;p&gt;业余爱好列表, 排名不分先后:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;书法: 始于初中语文课本最后一页的兰亭集序, 发展于本科时的书画协会.&lt;/li&gt;
&lt;li&gt;口琴: 始于高中时, 发展比较平缓, 研三在家终于调琴超吹成功.&lt;/li&gt;
&lt;li&gt;吉他: 始于高中同学拿到宿舍的一把蓝色破吉他. 研四暑假从零开始.&lt;/li&gt;
&lt;li&gt;乒乓球: 始于小学水泥台子, 发展于本科时选修的乒乓球体育课&lt;/li&gt;
&lt;li&gt;羽毛球: 始于研二时舒哥的指引, 在北园食堂上面打.&lt;/li&gt;
&lt;li&gt;植物: 蓬勃的生命!&lt;/li&gt;
&lt;li&gt;Linux: 始于研二的 deepin, 发展于 Manjaro.&lt;/li&gt;
&lt;li&gt;写程序: 始于研二, python, c, html...&lt;/li&gt;
&lt;li&gt;Latex: 必备技能.&lt;/li&gt;
&lt;li&gt;折腾: 生命!&lt;/li&gt;
&lt;li&gt;看动漫: 始于研一, 第一部是 《超时空要塞 $\Delta$ 》. 每天睡觉看一集, 研一支撑我过来的精神支柱. 睡前看的习惯持续至今, 不觉已有四年.&lt;/li&gt;
&lt;li&gt;打邦邦: BanG Dream!  始于研三因疫情在家的那个夏天, 让我体会到音乐带来的快感!&lt;/li&gt;
&lt;li&gt;跑跑卡丁车: 始于初中时时候家里刚给买了电脑, 从那就一直玩. 周五放学回家最开心的时光!&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;联系请 E-mail: zeqing6688@126.com&lt;/p&gt;
&lt;p&gt;本站内容为: 只对自己负责的学习笔记, 以及生活的牢骚.&lt;/p&gt;
&lt;h1 id="关于本站"&gt;关于本站&lt;/h1&gt;
&lt;p&gt;本站是由 python 生成的静态博客, 托管于&lt;br /&gt;
&lt;a href="https://github.com/phyer219/phyer219.github.io.2.0"&gt;GithubPages&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;文章的源格式大多采用 org-mode 的格式, 由&lt;br /&gt;
&lt;a href="https://github.com/phyer219/phyer219.github.io.2.0/tree/main/zqwblog/renderer"&gt;zqwblog/renderer&lt;/a&gt;&lt;br /&gt;
渲染成 html . 由于是自己的写的包, 还有很多不完善的地方. 重复造轮子的目的是练习写&lt;br /&gt;
程序.&lt;/p&gt;
&lt;p&gt;还有一部分文章的源格式是 markdown, 由包&lt;br /&gt;
&lt;a href="https://python-markdown.github.io/"&gt;python-markdown&lt;/a&gt; 渲染.&lt;/p&gt;
&lt;p&gt;文章中的公式由 &lt;a href="https://www.mathjax.org/"&gt;MathJax&lt;/a&gt; 渲染.&lt;/p&gt;
&lt;p&gt;文章中的代码块由 &lt;a href="https://highlightjs.org/"&gt;highlight.js&lt;/a&gt; 渲染.&lt;/p&gt;
&lt;p&gt;有许多现有的静态博客生成器, 如 Hexo, Jekyll, Pelican 等, 都非常优秀. 但本站还是&lt;br /&gt;
自己写了一个简陋的版本, 原因在于:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;本站的需求比较简单&lt;/li&gt;
&lt;li&gt;想要练习写程序&lt;/li&gt;
&lt;li&gt;Hexo 等, 更新之后有时会产生一些兼容问题&lt;/li&gt;
&lt;li&gt;难以随心所欲的修改博客的样式, 添加一些新的页面, 组件&lt;/li&gt;
&lt;/ul&gt;
</content><category term="软件使用"/><category term="blog"/><category term="archive"/></entry><entry><title>研五下学期总结</title><link href="https://zqw.ink/2022-09-14-thinking-summary_grade_5_2.html" rel="alternate"/><published>2022-09-14T00:00:00+08:00</published><updated>2022-09-14T00:00:00+08:00</updated><author><name>ZQW</name></author><id>tag:zqw.ink,2022-09-14:/2022-09-14-thinking-summary_grade_5_2.html</id><summary type="html">
&lt;h2&gt;序&lt;/h2&gt;

&lt;p&gt;9.3 返校.&lt;/p&gt;

&lt;h2&gt;课题&lt;/h2&gt;

&lt;p&gt;开学后 rf 谱的课题, 又试着用平均场的方法算了一下零温的情况. 算到要解准粒子色散关
系时, 课题中断 …&lt;/p&gt;</summary><content type="html">
&lt;h2&gt;序&lt;/h2&gt;

&lt;p&gt;9.3 返校.&lt;/p&gt;

&lt;h2&gt;课题&lt;/h2&gt;

&lt;p&gt;开学后 rf 谱的课题, 又试着用平均场的方法算了一下零温的情况. 算到要解准粒子色散关
系时, 课题中断, 跑去找大 J 做课题. 目的是为了能发一篇文章, 再加上 rf 谱的文章,
就可以达到要求, 按时毕业.&lt;/p&gt;

&lt;p&gt;剩下的时间, 在大 J 那做了两个课题. 第一个是关于离子边带冷却的非厄米系统中的 skin
effect 用时较短, 做了解析推导的部分. 第二个是主要工作, 量子同步中的阻塞效应.&lt;/p&gt;

&lt;p&gt;八月底暑假回家时量子同步中的阻塞效应已经完成主体工作, 只剩下修改文章. 非厄米系统
的工作打算把数值也做一下.&lt;/p&gt;

&lt;p&gt;总的来说, 这个学期的工作是比较快速的. 一方面利益于几年科研工作积累的各种经验, 知
识, 使得项目可以快速进行. 另一方面这两个工作并有之前 rf 谱的工作量大, 没有巨量的
前置技能, 没有大量的解析推导, 没有充满各种发散问题的数值计算. 如果接下来文章投得
顺利, 应该可以按时毕业.&lt;/p&gt;

&lt;h2&gt;读书&lt;/h2&gt;

&lt;p&gt;一心扑在工作上, 没有专门来看一些书. 不过, 工作的过程中, 极大的加深了对量子光学的
一些知识的理解. 从某种程度上讲, 获得了比读书更加深刻的理解.&lt;/p&gt;

&lt;h2&gt;业余&lt;/h2&gt;

&lt;p&gt;邦邦也没怎么打. 因为条件允许了, 大部分业余时间都在练电吉他和打拳.&lt;/p&gt;

&lt;p&gt;考虑到自己的需求简单, hexo 升级不断出现兼容问题, 对博客系统进行了改版. 一个脚本
就可以满足大部分需求.&lt;/p&gt;

&lt;p&gt;在博客改版之后, 写了一个 org-mode 渲染程序.&lt;/p&gt;

&lt;p&gt;304 的电脑在学校做为影音系统和网络中转服务器, 零事故运行.&lt;/p&gt;

&lt;h2&gt;总&lt;/h2&gt;

&lt;p&gt;研五上的末尾也有很多难忘的回忆! 希望明年我能按时毕业! 找到一个新的好去处!&lt;/p&gt;

&lt;p&gt;&lt;p&gt;&lt;img src='2022-09-14-thinking-summary_grade_5_2/20220820_145108.jpg' alt='figalt' max-width:100%&gt;&lt;p&gt;&lt;/p&gt;
</content><category term="想说"/><category term="总结"/></entry><entry><title>深圳小记</title><link href="https://zqw.ink/2022-08-31-thinking-shenzhen.html" rel="alternate"/><published>2022-08-31T00:00:00+08:00</published><updated>2022-08-31T00:00:00+08:00</updated><author><name>ZQW</name></author><id>tag:zqw.ink,2022-08-31:/2022-08-31-thinking-shenzhen.html</id><summary type="html">&lt;!-- toc --&gt;
&lt;!-- more --&gt;
&lt;p&gt;4月9日晚上到深圳。8月21日早上离开。&lt;/p&gt;
&lt;h1 id="干净的空气"&gt;干净的空气&lt;/h1&gt;
&lt;p&gt;这是第一感受，也是进入一座城市最直接最快速的感受。&lt;/p&gt;
&lt;p&gt;城市主干道的视野宽阔，绿化好，这与北京截然相 …&lt;/p&gt;</summary><content type="html">&lt;!-- toc --&gt;
&lt;!-- more --&gt;
&lt;p&gt;4月9日晚上到深圳。8月21日早上离开。&lt;/p&gt;
&lt;h1 id="干净的空气"&gt;干净的空气&lt;/h1&gt;
&lt;p&gt;这是第一感受，也是进入一座城市最直接最快速的感受。&lt;/p&gt;
&lt;p&gt;城市主干道的视野宽阔，绿化好，这与北京截然相反。蓝的透亮的天空，随时狙击的阵雨。&lt;/p&gt;
&lt;h1 id="断掉的社交"&gt;断掉的社交&lt;/h1&gt;
&lt;p&gt;我不是那种自来熟的人，更何况，大部分时间我的办公室都是我独自一人。&lt;/p&gt;
&lt;p&gt;办公室没有窗户，关上门就没有一丝光亮，关上空调就密不透风。开始的一段时间，我就住在办公室，食堂就在办公室的同一层。办公室的对面就是浴室，浴室里面有洗衣烘干机。所以，只要你愿意，每天就只需要下一次楼做核酸。除了师兄偶尔来讨论问题，没有任何人会打扰到你。因为没有人认识你，你也就只认识食堂盛饭的阿姨。&lt;/p&gt;
&lt;p&gt;我常常到对面的浴室，推开窗户，看看天气如何，有没有下雨。&lt;/p&gt;
&lt;p&gt;当然，还是要在饭后去外面散步，见一见阳光。&lt;/p&gt;
&lt;p&gt;住在那间办公室，真是一种神奇的体验。尤其是，在方圆千里的范围内，办公室是你唯一的落脚点的时候，在方圆千里，没有几个人说话的时候。&lt;/p&gt;
&lt;p&gt;这让我想起了牛顿躲避瘟疫做出许多伟大工作的事情。如果你是一个特别热爱工作的人，这简直就是天堂。&lt;/p&gt;
&lt;p&gt;只有在最后的一个月，才认识了两位同学，但也仅限于点头之交。就像之前的硕士室友，在要分别的时候，才发现，有许多话都没有说。&lt;/p&gt;
&lt;h1 id="拥挤的城中村"&gt;拥挤的城中村&lt;/h1&gt;
&lt;p&gt;这与城市主干道的宽阔干净截然相反。&lt;/p&gt;
&lt;p&gt;城中村是多半深圳人栖息的地方。离开后，我大概率不会再选择住进去。&lt;/p&gt;
&lt;p&gt;就像许多人说的，很有烟火气。但是总感觉是一种匆匆的，飘忽不定的烟火气。被生活所迫，住在拥挤狭小的房间。而且，过于拥挤。&lt;/p&gt;
&lt;h1 id="电吉他与拳击"&gt;电吉他与拳击&lt;/h1&gt;
&lt;p&gt;后来几个月，在沙尾西村租了一间有点破的小房间，买了一把芬达，一台电视。&lt;/p&gt;
&lt;p&gt;每天的作息就非常稳定了。早上六点四十起床，整理，出门。如果有雨，就步行，如果无雨，就骑共享单车。在路上买肠粉，到办公室吃肠粉。下午六点左右离开，回沙尾。一小时左右的拳击，一小时左右的练琴，一小时左右的洗澡休息，一小时左右的躺在床上看动漫。&lt;/p&gt;
&lt;p&gt;练琴能够把内心所有的情感发泄出来，喜怒哀乐。&lt;/p&gt;
&lt;p&gt;这就是所有的业余生活。周末偶尔看点小说。几乎不出门，真乃死宅。&lt;/p&gt;
&lt;h1 id="早上的肠粉"&gt;早上的肠粉&lt;/h1&gt;
&lt;p&gt;当在沙尾租了房子之后，每天的早餐就是固定的双肉肠粉加一个鸡蛋。&lt;/p&gt;
&lt;p&gt;毫不客气地说，除去与朋友短暂的相聚时光，这家肠粉店，就是我离开深圳后最怀念的。&lt;/p&gt;
&lt;p&gt;有一次疫情比较严重，我在没人的肠粉店门口左右徘徊时，听见了卖肠粉的阿姨的声音，顺着声音过去，又看见了熟悉的卖肠粉的先生。原来是疫情原因临时搬家。&lt;/p&gt;
&lt;p&gt;最后要离开深圳的那个周一，和卖肠粉的阿姨和先生道了别。&lt;/p&gt;
&lt;h1 id="每天的核酸"&gt;每天的核酸&lt;/h1&gt;
&lt;p&gt;如今，在好多地方，做核酸都是日常。我已经再那里连续做了几个月的核酸。&lt;/p&gt;
&lt;h1 id="随时被封控的不确定"&gt;随时被封控的不确定&lt;/h1&gt;
&lt;p&gt;你永远不知道，明天是否能够出村。&lt;/p&gt;
&lt;h1 id="最开心的时光"&gt;最开心的时光&lt;/h1&gt;
&lt;p&gt;和朋友相聚的时光总是难忘的！吃肠粉便是一个人时最棒的时刻。&lt;/p&gt;
&lt;h1 id="结尾"&gt;结尾&lt;/h1&gt;
&lt;p&gt;有让人留恋的东西，却没有留下的勇气。&lt;/p&gt;
</content><category term="想说"/><category term="深圳"/><category term="肠粉"/><category term="城中村"/><category term="电吉他"/></entry><entry><title>最简单的调用网站api的程序</title><link href="https://zqw.ink/2022-07-31-coding-py_api.html" rel="alternate"/><published>2022-07-31T00:00:00+08:00</published><updated>2022-07-31T00:00:00+08:00</updated><author><name>ZQW</name></author><id>tag:zqw.ink,2022-07-31:/2022-07-31-coding-py_api.html</id><summary type="html">
&lt;p&gt;在 themoviedb 上注册账号，申请自己的应用，获得一个 api 。之后就可以利用网站的资源进行开发了。下面是一个最简短的例子。（如果长 …&lt;/p&gt;</summary><content type="html">
&lt;p&gt;在 themoviedb 上注册账号，申请自己的应用，获得一个 api 。之后就可以利用网站的资源进行开发了。下面是一个最简短的例子。（如果长时间没有反应，那就是
api.themoviedb.org 被污染了，可以手动找到 ip，然后修改 host 文件）&lt;/p&gt;

&lt;pre&gt;&lt;code class="language-python"&gt;import requests
v3auth = '?api_key=你的api_key'
q = '&amp;query=' + 'lycoris'
r = requests.get('https://api.themoviedb.org/3/search/tv'+v3auth+q)
print(r.status_code)
for i in r.json()['results']:
    print(i)&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;返回结果如下：&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-python"&gt;200
{'backdrop_path': '/cPqA1G5odxY7uVJ0i81z5E2tSSW.jpg', 'first_air_date': '2022-07-02', 'genre_ids': [16, 10759, 35], 'id': 154494, 'name': 'Lycoris Recoil', 'origin_country': ['JP'], 'original_language': 'ja', 'original_name': 'リコリス・リコイル', 'overview': "For these peaceful days――there’s a secret behind it all. A secret organization that prevents crimes: “DA - Direct Attack”. And their group of all-girl agents: “Lycoris”. This peaceful everyday life is all thanks to these young girls. The elite Chisato Nishikigi is the strongest Lycoris agent of all time. Alongside is Takina Inoue, the talented but mysterious Lycoris. They work together at one of its branches–Café LycoReco. Here, the orders this café takes range from coffee and sweets to childcare, shopping, teaching Japanese to foreign students, etc. It's mostly tasks unbefitting of Lycoris. The free-spirited and optimistic pacifist, Chisato. And the cool-headed and efficient Takina. The chaotic everyday lives of this mismatched duo begin!", 'popularity': 112.401, 'poster_path': '/dfGf0Ti3BEKpBpVCVtEXKTjQjNR.jpg', 'vote_average': 7.7, 'vote_count': 10}&lt;/code&gt;&lt;/pre&gt;
</content><category term="软件使用"/><category term="python"/><category term="api"/></entry><entry><title>Wigner D-matrix</title><link href="https://zqw.ink/2022-06-07-physics-wigner_d.html" rel="alternate"/><published>2022-06-07T00:00:00+08:00</published><updated>2022-06-07T00:00:00+08:00</updated><author><name>ZQW</name></author><id>tag:zqw.ink,2022-06-07:/2022-06-07-physics-wigner_d.html</id><summary type="html">
&lt;h2&gt;Wigner D-matrix&lt;/h2&gt;


$$\begin{align}
R(\alpha, \beta, \gamma) = e^{-\mathrm{i}\alpha J_{z}}
             e^{-\mathrm{i}\beta J_{y}}
             e^{-\mathrm{i}g J_{z}}
\end{align}$$



$$\begin{align}
D^l_{m' m} (\alpha, \beta, \gamma)  \langle l, m'| R(\alpha, \beta, \gamma) |l, m\rangle
\end{align}$$


&lt;p&gt;$D …&lt;/p&gt;</summary><content type="html">
&lt;h2&gt;Wigner D-matrix&lt;/h2&gt;


$$\begin{align}
R(\alpha, \beta, \gamma) = e^{-\mathrm{i}\alpha J_{z}}
             e^{-\mathrm{i}\beta J_{y}}
             e^{-\mathrm{i}g J_{z}}
\end{align}$$



$$\begin{align}
D^l_{m' m} (\alpha, \beta, \gamma)  \langle l, m'| R(\alpha, \beta, \gamma) |l, m\rangle
\end{align}$$


&lt;p&gt;$D^l_{m' m}(R)$ 是旋转操作 $R$ 在一组基底 $|l, m\rangle$ 下的表示的矩阵元( $l$ 是固定
的, 也就是说 $1=\sum_m |l, m\rangle\langle l, m|$ ).&lt;/p&gt;

&lt;p&gt;$D^l(R)$ 是 $SO(3)$ 群元 $R$ 在不可约表示 $l$ 中的表示矩阵.&lt;/p&gt;

&lt;h2&gt;Relation to spherical harmonics&lt;/h2&gt;


$$\begin{align}
Y_{l, m}^{*} (\theta, \phi) = \langle l, m | \theta, \phi \rangle
=&amp; \langle l, m | R(\phi, \theta, \gamma) | \theta = 0, \phi = 0 \rangle \\
=&amp;\sum_{m'} \langle l, m | R(\phi, \theta, \gamma) |l, m'\rangle\langle l, m' | \theta = 0, \phi = 0 \rangle \\
=&amp;\sum_{m'} \langle l, m | R(\phi, \theta, \gamma) |l, m'\rangle \delta_{m', 0}\sqrt{\frac{2l + 1}{4\pi}} \\
=&amp;\langle l, m | R(\phi, \theta, \gamma) |l, 0\rangle \sqrt{\frac{2l + 1}{4\pi}} \\
=&amp; D^l_{m, 0}(\phi, \theta, \gamma) \sqrt{\frac{2l + 1}{4\pi}}
\end{align}$$


&lt;h2&gt;Reference&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href='https://en.wikipedia.org/wiki/Wigner_D-matrix#Relation_to_spherical_harmonics_and_Legendre_polynomials'&gt;wikipedia: Wigner D-matrix&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href='https://en.wikipedia.org/wiki/Spherical_harmonics'&gt;wikipedia: Spherical harmonics&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href='https://physics.stackexchange.com/questions/665947/rotations-of-spherical-harmonics-and-wigner-d-matrices'&gt;https://physics.stackexchange.com/questions/665947/rotations-of-spherical-harmonics-and-wigner-d-matrices&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</content><category term="专业笔记"/><category term="SO(3)"/><category term="group theory"/><category term="Wigner D-matrix"/><category term="spherical harmonic"/></entry><entry><title>magnetic dipole</title><link href="https://zqw.ink/2022-05-20-physics-magnetic_dipole.html" rel="alternate"/><published>2022-05-20T00:00:00+08:00</published><updated>2022-05-20T00:00:00+08:00</updated><author><name>ZQW</name></author><id>tag:zqw.ink,2022-05-20:/2022-05-20-physics-magnetic_dipole.html</id><summary type="html">

$$\begin{align}
\vec{B} = \frac{\mu_0}{4\pi} \left[
   3\hat{r}(\vec{m}\cdot \hat{r}) -\vec{m}\right] \frac{1}{r^3}
\end{align}$$


&lt;h2&gt;Demo&lt;/h2&gt;

&lt;p&gt;&lt;a href='2022-05-20-physics-magnetic_dipole/code.py'&gt;code&lt;/a&gt;&lt;/p&gt;

&lt;pre&gt;&lt;code class="language-python"&gt;import matplotlib.pyplot as plt
import numpy as np


n = 30
x = np.linspace(-30, 30.1, n)
y = np.linspace(-30 …&lt;/code&gt;&lt;/pre&gt;</summary><content type="html">

$$\begin{align}
\vec{B} = \frac{\mu_0}{4\pi} \left[
   3\hat{r}(\vec{m}\cdot \hat{r}) -\vec{m}\right] \frac{1}{r^3}
\end{align}$$


&lt;h2&gt;Demo&lt;/h2&gt;

&lt;p&gt;&lt;a href='2022-05-20-physics-magnetic_dipole/code.py'&gt;code&lt;/a&gt;&lt;/p&gt;

&lt;pre&gt;&lt;code class="language-python"&gt;import matplotlib.pyplot as plt
import numpy as np


n = 30
x = np.linspace(-30, 30.1, n)
y = np.linspace(-30, 30.1, n)
bx = np.zeros([n, n])
by = np.zeros([n, n])

mu = [0, 1]


def field(x, y):
    r = np.sqrt(x**2 + y**2)
    vx = (3*(mu[0]*x+mu[1]*y) * x/(r**2) - mu[0]) / r**3
    vy = (3*(mu[0]*x+mu[1]*y) * y/(r**2) - mu[1]) / r**3
    return vx, vy


X, Y = np.meshgrid(x, y)
vx, vy = field(X, Y)


plt.streamplot(x, y, vx, vy)
plt.savefig('magnetic-dipole.png')&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&lt;p&gt;&lt;img src='2022-05-20-physics-magnetic_dipole/magnetic-dipole.png' alt='figalt' max-width:100%&gt;&lt;p&gt;&lt;/p&gt;

&lt;h2&gt;Reference&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href='https://en.wikipedia.org/wiki/Magnetic_dipole'&gt;wikipedia: Magnetic diopole&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</content><category term="专业笔记"/><category term="SO(3)"/><category term="group theory"/></entry><entry><title>SO(3) generators in 3 dimentiona representation in cartesian and spherical basis</title><link href="https://zqw.ink/2022-05-17-physics-so3_spherical_cartesian_basis.html" rel="alternate"/><published>2022-05-17T00:00:00+08:00</published><updated>2022-05-17T00:00:00+08:00</updated><author><name>ZQW</name></author><id>tag:zqw.ink,2022-05-17:/2022-05-17-physics-so3_spherical_cartesian_basis.html</id><summary type="html">
&lt;h2&gt;Demo&lt;/h2&gt;

&lt;p&gt;&lt;a href='2022-05-17-physics-SO3_spherical_cartesian_basis/code.py'&gt;code&lt;/a&gt;&lt;/p&gt;

&lt;pre&gt;&lt;code class="language-python"&gt;from sympy import pprint
from sympy import Matrix
from sympy import I
from sympy import sqrt

jx_cartesian = Matrix([[0, 0, 0],
                       [0, 0, I],
                       [0, -I, 0]])
jy_cartesian = Matrix([[0, 0, I],
                       [0, 0, 0],
                       [-I, 0, 0]])
jz_cartesian = Matrix([[0, I, 0],
                       [-I, 0, 0],
                       [0, 0 …&lt;/code&gt;&lt;/pre&gt;</summary><content type="html">
&lt;h2&gt;Demo&lt;/h2&gt;

&lt;p&gt;&lt;a href='2022-05-17-physics-SO3_spherical_cartesian_basis/code.py'&gt;code&lt;/a&gt;&lt;/p&gt;

&lt;pre&gt;&lt;code class="language-python"&gt;from sympy import pprint
from sympy import Matrix
from sympy import I
from sympy import sqrt

jx_cartesian = Matrix([[0, 0, 0],
                       [0, 0, I],
                       [0, -I, 0]])
jy_cartesian = Matrix([[0, 0, I],
                       [0, 0, 0],
                       [-I, 0, 0]])
jz_cartesian = Matrix([[0, I, 0],
                       [-I, 0, 0],
                       [0, 0, 0]])

print('==== SO(3) generators in cartesian representation is ===')
print('jx_cartesian:')
pprint(jx_cartesian)
print('jy_cartesian:')
pprint(jy_cartesian)
print('jz_cartesian:')
pprint(jz_cartesian)
print('========================================================')
print('we want to change bisis to a representation which jz are diagonalized.')
print('the eigenvaluses and eigenvectors of jz are:')
pprint(jz_cartesian.eigenvects())
print(('note: we need to choose proper coefficients and order of eigenvectors'
       + ' to ensure the results is the right form which we are familiar'
       + ' with in quantum mechanics.'))

u = Matrix([[-1/sqrt(2), 0, 1/sqrt(2)],
            [I/sqrt(2), 0, I/sqrt(2)],
            [0, 1, 0]])

print('so use transorm u**(-1) j u go to spherical representation:')
pprint(u)
print('the results are:')
pprint('jx_spherical:')
pprint(u**(-1) * jx_cartesian * u)
pprint('jy_spherical:')
pprint(u**(-1) * jy_cartesian * u)
pprint('jz_spherical:')
pprint(u**(-1) * jz_cartesian * u)
print('========================================================')

# p, d = jz_cartesian.diagonalize()
&lt;/code&gt;&lt;/pre&gt;

&lt;pre&gt;&lt;code class="language-"&gt;==== SO(3) generators in cartesian representation is ===
jx_cartesian:
⎡0  0   0⎤
⎢        ⎥
⎢0  0   ⅈ⎥
⎢        ⎥
⎣0  -ⅈ  0⎦
jy_cartesian:
⎡0   0  ⅈ⎤
⎢        ⎥
⎢0   0  0⎥
⎢        ⎥
⎣-ⅈ  0  0⎦
jz_cartesian:
⎡0   ⅈ  0⎤
⎢        ⎥
⎢-ⅈ  0  0⎥
⎢        ⎥
⎣0   0  0⎦
========================================================
we want to change bisis to a representation which jz are diagonalized.
the eigenvaluses and eigenvectors of jz are:
⎡⎛       ⎡⎡-ⅈ⎤⎤⎞  ⎛      ⎡⎡0⎤⎤⎞  ⎛      ⎡⎡ⅈ⎤⎤⎞⎤
⎢⎜       ⎢⎢  ⎥⎥⎟  ⎜      ⎢⎢ ⎥⎥⎟  ⎜      ⎢⎢ ⎥⎥⎟⎥
⎢⎜-1, 1, ⎢⎢1 ⎥⎥⎟, ⎜0, 1, ⎢⎢0⎥⎥⎟, ⎜1, 1, ⎢⎢1⎥⎥⎟⎥
⎢⎜       ⎢⎢  ⎥⎥⎟  ⎜      ⎢⎢ ⎥⎥⎟  ⎜      ⎢⎢ ⎥⎥⎟⎥
⎣⎝       ⎣⎣0 ⎦⎦⎠  ⎝      ⎣⎣1⎦⎦⎠  ⎝      ⎣⎣0⎦⎦⎠⎦
note: we need to choose proper coefficients and order of eigenvectors to ensure the results is the right form which we are familiar with in quantum mechanics.
so use transorm u**(-1) j u go to spherical representation:
⎡-√2       √2 ⎤
⎢────  0   ── ⎥
⎢ 2        2  ⎥
⎢             ⎥
⎢√2⋅ⅈ     √2⋅ⅈ⎥
⎢────  0  ────⎥
⎢ 2        2  ⎥
⎢             ⎥
⎣ 0    1   0  ⎦
the results are:
jx_spherical:
⎡    √2    ⎤
⎢0   ──  0 ⎥
⎢    2     ⎥
⎢          ⎥
⎢√2      √2⎥
⎢──  0   ──⎥
⎢2       2 ⎥
⎢          ⎥
⎢    √2    ⎥
⎢0   ──  0 ⎥
⎣    2     ⎦
jy_spherical:
⎡      -√2⋅ⅈ         ⎤
⎢ 0    ──────    0   ⎥
⎢        2           ⎥
⎢                    ⎥
⎢√2⋅ⅈ          -√2⋅ⅈ ⎥
⎢────    0     ──────⎥
⎢ 2              2   ⎥
⎢                    ⎥
⎢       √2⋅ⅈ         ⎥
⎢ 0     ────     0   ⎥
⎣        2           ⎦
jz_spherical:
⎡1  0  0 ⎤
⎢        ⎥
⎢0  0  0 ⎥
⎢        ⎥
⎣0  0  -1⎦
========================================================
&amp;gt;&amp;gt;&amp;gt;&lt;/code&gt;&lt;/pre&gt;

&lt;h2&gt;Reference&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href='https://www.physicsforums.com/threads/representation-of-angular-momentum-matrix-in-cartesian-and-spherical-basis.418710/'&gt;https://www.physicsforums.com/threads/representation-of-angular-momentum-matrix-in-cartesian-and-spherical-basis.418710/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</content><category term="专业笔记"/><category term="SO(3)"/><category term="group theory"/></entry><entry><title>博客改版</title><link href="https://zqw.ink/2022-04-16-thinking-blog_evolution.html" rel="alternate"/><published>2022-04-16T00:00:00+08:00</published><updated>2022-04-16T00:00:00+08:00</updated><author><name>ZQW</name></author><id>tag:zqw.ink,2022-04-16:/2022-04-16-thinking-blog_evolution.html</id><summary type="html">
&lt;p&gt;这几天离开304,新版的 hexo 渲染 org-mode 有问题。也就是说只能用 304 上的电脑用老&lt;br /&gt;
版的 hexo 写。&lt;/p&gt;
&lt;p&gt;于是今天花了一天的时间，从早上 7 半 …&lt;/p&gt;</summary><content type="html">
&lt;p&gt;这几天离开304,新版的 hexo 渲染 org-mode 有问题。也就是说只能用 304 上的电脑用老&lt;br /&gt;
版的 hexo 写。&lt;/p&gt;
&lt;p&gt;于是今天花了一天的时间，从早上 7 半一直到晚上 11 点版，写了这个不到 200 行的自用&lt;br /&gt;
的静态博客生成器。&lt;/p&gt;
&lt;p&gt;虽然还有很多问题，不过勉强能用。&lt;/p&gt;
&lt;p&gt;时间紧迫，下一次修复这些问题就不知道是什么时候了。&lt;/p&gt;
&lt;h2 id="附之前放在首页的说明"&gt;附:之前放在首页的说明&lt;/h2&gt;
&lt;p&gt;改版说明&lt;/p&gt;
&lt;p&gt;由于 Hexo 升级带来各种兼容性问题，org-mode 也无法正常渲染。因此弃用 Hexo。&lt;/p&gt;
&lt;p&gt;之后本博客将采用100 行左右的 python 脚本(链接到s.py) 直接生成 html。&lt;/p&gt;
&lt;p&gt;因此不依赖于任何其他静态博客生成程序，可以说是从根本上杜绝了一切兼容性问题。&lt;/p&gt;
&lt;p&gt;缺点在于一切动要自己写，就显得比较简陋。但这正体现了本博客极简实用的精神。&lt;/p&gt;
&lt;p&gt;目前正在以非常慢的速度建设中，任何建议请直接 email 博主：&lt;a href="mailto:zeqing6688@126.com"&gt;zeqing6688@126.com&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://zqw.ink/hexo_ver/"&gt;旧版&lt;/a&gt;目前仍可访问。&lt;/p&gt;
</content><category term="想说"/><category term="blog"/><category term="hexo"/></entry><entry><title>风沙 苹果 外星人 雨 开袋即食</title><link href="https://zqw.ink/2022-03-30-story-spring_march_2022.html" rel="alternate"/><published>2022-03-30T00:00:00+08:00</published><updated>2022-03-30T00:00:00+08:00</updated><author><name>ZQW</name></author><id>tag:zqw.ink,2022-03-30:/2022-03-30-story-spring_march_2022.html</id><summary type="html">
&lt;p&gt;（一）&lt;/p&gt;
&lt;p&gt;窗外是一片大风与黄沙，几天前，在这样的早晨醒来。明明昨天还是干净透明的蓝天。&lt;/p&gt;
&lt;p&gt;回忆刚才的梦。&lt;/p&gt;
&lt;p&gt;“你可以用‘陳’”，对着焦急 …&lt;/p&gt;</summary><content type="html">
&lt;p&gt;（一）&lt;/p&gt;
&lt;p&gt;窗外是一片大风与黄沙，几天前，在这样的早晨醒来。明明昨天还是干净透明的蓝天。&lt;/p&gt;
&lt;p&gt;回忆刚才的梦。&lt;/p&gt;
&lt;p&gt;“你可以用‘陳’”，对着焦急烦躁的脸这样说到。&lt;/p&gt;
&lt;p&gt;“哎呀！不是！‘陳’和‘陈’是不一样的！根本不是一个意思！”，伴着焦急的神情。&lt;/p&gt;
&lt;p&gt;“哦，是这样啊！”，这样说也不是没有可能，毕竟没有考证（考查验证）。这样想着，拇指向上滑动解锁手机，开始搜索。&lt;/p&gt;
&lt;p&gt;半分钟。&lt;/p&gt;
&lt;p&gt;“你看，是一样的”，把手机凑到对方的跟前。&lt;/p&gt;
&lt;p&gt;“哦。可是。。。”&lt;/p&gt;
&lt;p&gt;然后就这样醒来了。这是这几天最温和的一个噩梦。&lt;/p&gt;
&lt;p&gt;（二）&lt;/p&gt;
&lt;p&gt;外面传来几声枪响。&lt;/p&gt;
&lt;p&gt;娘把两个苹果分别藏到两个火罐里，不是拔火罐的火罐，是用来取暖的那个火罐。对两个四五岁的女儿说：“坐在火罐上。等会他们来了，千万不要起来！”&lt;/p&gt;
&lt;p&gt;人果然进来了。“有苹果吗？把苹果交出来！”，用刺刀对着两个小女孩。&lt;/p&gt;
&lt;p&gt;姐姐有些害怕，妹妹却还觉得有趣。&lt;/p&gt;
&lt;p&gt;最终，两个苹果都被征收走了。&lt;/p&gt;
&lt;p&gt;妹妹对娘说：“娘，娘，姐姐真傻，姐姐真傻，他们让她起来，她就起来！”&lt;/p&gt;
&lt;p&gt;（三）&lt;/p&gt;
&lt;p&gt;不知道哪一天，校园里突然出现了一块被铁皮墙圈起来的地。&lt;/p&gt;
&lt;p&gt;谁都不知道那里面是什么。&lt;/p&gt;
&lt;p&gt;说不定是外星人的基地。&lt;/p&gt;
&lt;p&gt;终于有一天，铁皮墙上裂开了一条缝隙。里面原来是一堆垃圾。&lt;/p&gt;
&lt;p&gt;太奇怪了，垃圾为什么不放到分类的垃圾桶里？垃圾为什么不运走？垃圾为什么要用铁皮墙围起来？&lt;/p&gt;
&lt;p&gt;说不定真的是外星人的基地，伪装成垃圾堆的样子。&lt;/p&gt;
&lt;p&gt;（四）&lt;/p&gt;
&lt;p&gt;意外地，教学视频里出现了雨声。真的是雨声吗？并不见得。&lt;/p&gt;
&lt;p&gt;但是雨声把思绪拉回了大概十年前的夜晚。那个时候，也是好像听到了，雨滴落到宿舍外商业街铁皮屋顶上的声音。&lt;/p&gt;
&lt;p&gt;还真是一切都像从前。急切地期盼一场雨，因为很久没有下雨了。&lt;/p&gt;
&lt;p&gt;(五)&lt;/p&gt;
&lt;p&gt;真空包装食品，写有食用方法。喜凉食，开袋即食。或者喜热食，可微波加热或水浴加热。我喜热食，可是没有微波炉或者热水，所以只能开袋即食。&lt;/p&gt;
</content><category term="blog"/><category term="文学青年"/><category term="风沙"/><category term="苹果"/><category term="外星人"/><category term="雨"/><category term="开袋即食"/><category term="春天"/></entry><entry><title>Atomic and Optical Physics I, 08 Atoms IV: Hyperfine Structure (updage 17/Nov/2022)</title><link href="https://zqw.ink/2022-02-23-physics-mitamo08.html" rel="alternate"/><published>2022-02-23T00:00:00+08:00</published><updated>2022-02-23T00:00:00+08:00</updated><author><name>ZQW</name></author><id>tag:zqw.ink,2022-02-23:/2022-02-23-physics-mitamo08.html</id><summary type="html">
&lt;h2&gt;Information&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;官方介绍: https://ocw.mit.edu/courses/physics/8-421-atomic-and-optical-physics-i-spring-2014/&lt;/li&gt;
&lt;li&gt;视频列表地址: https://www.youtube.com/playlist?list=PLUl4u3cNGP62FPGcyFJkzhqq9c5cHCK32&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Lamb Shift&lt;/h2&gt;

&lt;p&gt;Two contribution:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Coulomb potential is "smeared out", so a weaker binding energy.&lt;/li&gt;
&lt;li&gt;Futher contribution to the Lamb shift. 27 MHz, 3% : vaccum polarization …&lt;/li&gt;&lt;/ul&gt;</summary><content type="html">
&lt;h2&gt;Information&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;官方介绍: https://ocw.mit.edu/courses/physics/8-421-atomic-and-optical-physics-i-spring-2014/&lt;/li&gt;
&lt;li&gt;视频列表地址: https://www.youtube.com/playlist?list=PLUl4u3cNGP62FPGcyFJkzhqq9c5cHCK32&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Lamb Shift&lt;/h2&gt;

&lt;p&gt;Two contribution:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Coulomb potential is "smeared out", so a weaker binding energy.&lt;/li&gt;
&lt;li&gt;Futher contribution to the Lamb shift. 27 MHz, 3% : vaccum polarization. We observe the shielded charge. $\Rightarrow$ s(l = 0) electron sees a higher charge(s 电子 穿透到里面) $\Rightarrow$ down shift for $2S_{1/2}$ 27MHz.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;p&gt;&lt;img src='2022-02-23-physics-MITAMO08/vaccum_polarization.png' alt='vaccum polarization' max-width:100%&gt;&lt;p&gt;&lt;/p&gt;

&lt;h2&gt;Introduction: Effect of Nucleus (Hyperfine Structure)&lt;/h2&gt;

&lt;p&gt;So far: point charge&lt;/p&gt;

&lt;p&gt;Now: nucleus has structure&lt;/p&gt;

&lt;p&gt;mangnetic moment: dipole or quadrapole $\Rightarrow$ HFS.&lt;/p&gt;

&lt;p&gt;mass and volume $\Rightarrow$ Isotope shifts&lt;/p&gt;

&lt;p&gt;&lt;p&gt;&lt;img src='2022-02-23-physics-MITAMO08/hfs.png' alt='hyperfine structure' max-width:100%&gt;&lt;p&gt;&lt;/p&gt;

&lt;p&gt;Relevance of hpyerfine structure:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;several ground states (optical pumping, manuplation of atoms)&lt;/li&gt;
&lt;li&gt;astronomical observation 21cm line&lt;/li&gt;
&lt;li&gt;determination of nuclear properties(even of unstable nuclei)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;HFS&lt;/h2&gt;

&lt;p&gt;the most important effect due to the hyperfine structure: the nucleolus has a
magnetic moment, and this magnetic moment couples to the magnetic field, even if
you don't apply an external magnetic field.&lt;/p&gt;


$$\begin{align}
H_{\mathrm{HF}} = - \vec{B}_J(0)\cdot \vec{\mu}_{I}
\end{align}$$


&lt;p&gt;this is the Zeeman Hamiltonian of the nucleus in the magnetic field created by
the electron.&lt;/p&gt;

&lt;blockquote&gt;Alternatively: $e^-$ moves in the potential of the nucleus
\begin{align}
V = - \frac{e^2}{r} , \vec{A} = \frac{\vec{\mu}_I\times \mathrm{r}}{r^3}
\quad \mathrm{Jackson(5.55)}
\end{align}
then solve the Schrodinger Eq.&lt;/blockquote&gt;

&lt;p&gt;&lt;em&gt;Semi classical&lt;/em&gt; derivation of $\vec{B}_{J}$&lt;/p&gt;

&lt;p&gt;orbital and spin part:&lt;/p&gt;

$$\begin{align}
\vec{B}_J = \vec{B}_L + \vec{B}_S
\end{align}$$

&lt;p&gt;Jackson (5.64):&lt;/p&gt;

$$\begin{align}
\vec{B}_S = \frac{1}{r^3}[-\vec{\mu} + 3(\vec{\mu}\cdot \hat{r})\hat{r}]
              + \frac{8\pi}{3}\delta(\vec{r}) \vec{\mu}
\end{align}$$

&lt;p&gt;where $\vec{\mu} = g\mu_B\vec{S}$. Biot and Savart:&lt;/p&gt;

$$\begin{align}
\vec{B}_L(0) = \frac{1}{c}\int \vec{I} \frac{\mathrm{d}\vec{r}\times \vec{r}}{r^3}
\rightarrow \frac{e}{c} \int \rho (\vec{r}) \frac{\vec{v}\times \vec{r}}{r^3}
= - \frac{e}{mc}\vec{L} \langle \frac{1}{r^3} \rangle
= - 2\mu_B \vec{L} \langle \frac{1}{r^3} \rangle
\end{align}$$

&lt;p&gt;total $\vec{B}$ field (using $g= -2$ for electron spin)&lt;/p&gt;

$$\begin{align}
\vec{B}_J = -2\mu_B \left(
\frac{\vec{L}}{r^3} - \frac{\vec{S}}{r^3}
+ \frac{3(\vec{S}\cdot \hat{r})\hat{r}}{r^{3}}
+ \frac{8}{3}\pi \delta(\vec{r})\vec{S}
 \right)
\end{align}$$

&lt;p&gt;the first three terms is $0$ for $L = 0$ because of spherical average, the last
term is $0$ for $L\neq 0$ .&lt;/p&gt;


$$\begin{align}
H_{HF} = - \vec{B}_J \vec{\mu}_I = a h \vec{I} \cdot \vec{J}
\end{align}$$


&lt;p&gt;For $L = 0$ , $\langle \vec{J} \cdot \vec{B}_J = - 4\pi \mu_B |\psi_{s}|^2$&lt;/p&gt;

$$\begin{align}
a h =  \frac{g_I \mu_N \mu_B 4\pi |\psi(0)|^2}{S(S + 1)} , \quad
\vec{\mu}_I = g_I \mu_N \vec{I}
\end{align}$$

&lt;p&gt;For hydrogen: 1420MHz&lt;/p&gt;

$$\begin{align}
H = a h \vec{I}\cdot\vec{J} = \frac{a h}{2} (F(F + 1) - I(I + 1) - J(J + 1))
\end{align}$$

&lt;p&gt;$I = J = S = 1/2$, $F = 1, 0$&lt;/p&gt;

&lt;p&gt;&lt;p&gt;&lt;img src='2022-02-23-physics-MITAMO08/hfs1.png' alt='hyperfine structure for hydrogen' max-width:100%&gt;&lt;p&gt;&lt;/p&gt;

&lt;p&gt;center of mass of HF states is not change.&lt;/p&gt;

&lt;h2&gt;Quadrapole moments&lt;/h2&gt;

&lt;p&gt;What further (electric or magnetic) moments can a nucleus have?&lt;/p&gt;

&lt;p&gt;parity of electric multiple: $( - 1)^l$ parity
parity of magnetic multiple: $( - 1)^{ l + 1}$ parity&lt;/p&gt;

&lt;h2&gt;Minimum I for magnetic dipole and electric quadrapole&lt;/h2&gt;

&lt;p&gt;for magnetic dipole is $I\ge 1/2$ ：
分清两个方向, 只需要翻个个就行&lt;/p&gt;

&lt;p&gt;for electric quadrapole is $I \ge 1$ ：
分清一个椭球还是一个球, 需要有一个反转 90 度的操作&lt;/p&gt;

&lt;h2&gt;Formal&lt;/h2&gt;

&lt;h2&gt;Isotopic effects&lt;/h2&gt;

&lt;h3&gt;Mass&lt;/h3&gt;


$$\begin{align}
E_n = E_n^{\infty} (\frac{M}{M + m})
\end{align}$$

&lt;p&gt;$M$ : nucleus mass. $m$ : electron mass&lt;/p&gt;

&lt;h3&gt;Volumn&lt;/h3&gt;

&lt;p&gt;Coulomb level shits. only $s$ electron&lt;/p&gt;

&lt;h3&gt;weakens the binding energies&lt;/h3&gt;

&lt;p&gt;Volum effect: Largest for heavy nuclei&lt;/p&gt;

&lt;p&gt;Mass effect: Largest for hightest nuclei&lt;/p&gt;

&lt;h2&gt;Reference&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href='https://en.wikipedia.org/wiki/Lamb_shift'&gt;wikipedia: Lamb shift&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href='https://en.wikipedia.org/wiki/Fine_structure'&gt;wikipedia: Fine structure&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Jackson, J. D. Classical electrodynamics. (Wiley, 1999)&lt;/li&gt;
&lt;/ul&gt;
</content><category term="专业笔记"/><category term="Atomic and Optical Physics"/><category term="hyperfine structure"/></entry><entry><title>波数, 电子伏, 赫兹单位换算</title><link href="https://zqw.ink/2022-02-20-physics-atom_unit.html" rel="alternate"/><published>2022-02-20T00:00:00+08:00</published><updated>2022-02-20T00:00:00+08:00</updated><author><name>ZQW</name></author><id>tag:zqw.ink,2022-02-20:/2022-02-20-physics-atom_unit.html</id><summary type="html">
&lt;h2&gt;Wavenumber&lt;/h2&gt;

&lt;p&gt;原子物理中一般指 used in spectroscopy 的 wavenumber, 即&lt;/p&gt;

$$\begin{align}
\tilde{\nu} = \frac{1}{\lambda}
\end{align}$$

&lt;p&gt;波长的倒数, &lt;em&gt;没有&lt;/em&gt; $2\pi$ 因子. 常用的单位是 $\mathrm{cm}^{-1}$&lt;/p&gt;

&lt;h2&gt;频率&lt;/h2&gt;

&lt;p&gt;也是 &lt;em&gt;没有 …&lt;/em&gt;&lt;/p&gt;</summary><content type="html">
&lt;h2&gt;Wavenumber&lt;/h2&gt;

&lt;p&gt;原子物理中一般指 used in spectroscopy 的 wavenumber, 即&lt;/p&gt;

$$\begin{align}
\tilde{\nu} = \frac{1}{\lambda}
\end{align}$$

&lt;p&gt;波长的倒数, &lt;em&gt;没有&lt;/em&gt; $2\pi$ 因子. 常用的单位是 $\mathrm{cm}^{-1}$&lt;/p&gt;

&lt;h2&gt;频率&lt;/h2&gt;

&lt;p&gt;也是 &lt;em&gt;没有&lt;/em&gt; $2\pi$ 因子的频率, 对于真空中的光, 即&lt;/p&gt;

$$\begin{align}
c = \nu \lambda
\end{align}$$

&lt;p&gt;它与 wavenumber 的关系即为&lt;/p&gt;

$$\begin{align}
\nu = c \tilde{\nu}
\end{align}$$

&lt;p&gt;差一光速.&lt;/p&gt;

&lt;h2&gt;eV&lt;/h2&gt;

&lt;p&gt;eV 是能量单位, 即 $1 \mathrm{eV} = 1.602176634 \times 10^{-19} J$ ( $e =
1.602176634\times 10^{-19} C$ )
它与 wavenumber 的关系&lt;/p&gt;

$$\begin{align}
E = h \nu = h c \tilde{\nu}
\end{align}$$

&lt;p&gt;对于波数为 $1 \mathrm{cm}^{-1}$ 的光子, 其能量为&lt;/p&gt;

$$\begin{align}
E = h c \cdot 1 \mathrm{cm}^{-1}
  =&amp; 6.62607015×10^{−34} \mathrm{J}\cdot \mathrm{Hz}^{−1}
    \times 299792458 \mathrm{m/s} \times 1 \mathrm{cm}^{-1} \\
  =&amp; 6.62607015×10^{−34} \times 299792458 \times 10^{2} \mathrm{J} \\
 = &amp;\frac{6.62607015×10^{−34} \times 299792458 \times 10^{2}}{1.602176634 \times 10^{-19}} \mathrm{eV}
\end{align}$$

&lt;p&gt;即&lt;/p&gt;

$$\begin{align}
1 \mathrm{eV} = h c \cdot 1 \mathrm{cm}^{-1} \times
   \frac{1.602176634 \times 10^{-19}}{6.62607015×10^{−34} \times 299792458 \times 10^{2}}
   = 8065.54 \times h c \cdot 1 \mathrm{cm}^{-1}
\end{align}$$

&lt;p&gt;8065.54 为 $\frac{e}{100hc}$ 的数值值( $e, h, c$ 取国际单位制 ).&lt;/p&gt;

&lt;p&gt;频率与 eV 的关系是类似的, 即&lt;/p&gt;

$$\begin{align}
E =&amp; h \nu = h \cdot 1 \mathrm{Hz} = 6.62607015×10^{−34} \mathrm{J} \\
  =&amp; \frac{6.62607015×10^{−34}}{1.602176634 \times 10^{-19}} \mathrm{eV}
\end{align}$$


$$\begin{align}
1 \mathrm{eV} = \frac{1.602176634 \times 10^{-19}}{6.62607015×10^{−34}}
     \times h \cdot 1 \mathrm{Hz} = 2.41799\times 10^{14} \times h \cdot 1 \mathrm{Hz}
\end{align}$$

&lt;p&gt;$2.41799\times 10^{14}$ 为 $\frac{e}{h}$ 的数值值( $e, h$ 取国际单位制 ).&lt;/p&gt;

&lt;blockquote&gt;Example1:

原子发出可见光的跃是 eV 量级相互作用能级的跃迁, 对应于可见光的频率 $10^{14} \mathrm{Hz}$ .&lt;/blockquote&gt;

&lt;blockquote&gt;Example2:

氢原子 $2^2S_{1/2}$ 与 $2^2P_{1/2}$ 能级的 Lamb shift 为
$4.4 \times 10^{-6} \mathrm{eV}$ , 对应频率大约为 $10^9 \mathrm{Hz}$ , 即 GHz .&lt;/blockquote&gt;

&lt;h2&gt;Reference&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href='https://en.wikipedia.org/wiki/Wavenumber'&gt;wikipedia: Wavenumber&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href='https://en.wikipedia.org/wiki/Planck_constant'&gt;wikipedia: Planck constant&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href='https://en.wikipedia.org/wiki/Speed_of_light'&gt;wikipedia: Speed of light&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href='http://wild.life.nctu.edu.tw/class/common/energy-unit-conv-table.html'&gt;Energy unit conversion table&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</content><category term="专业笔记"/><category term="Atomic and Optical Physics"/></entry><entry><title>Atomic and Optical Physics I, 07 Atoms III: Fine Structure</title><link href="https://zqw.ink/2022-02-19-physics-mitamo07.html" rel="alternate"/><published>2022-02-19T00:00:00+08:00</published><updated>2022-02-19T00:00:00+08:00</updated><author><name>ZQW</name></author><id>tag:zqw.ink,2022-02-19:/2022-02-19-physics-mitamo07.html</id><summary type="html">
&lt;h2&gt;Information&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;官方介绍: https://ocw.mit.edu/courses/physics/8-421-atomic-and-optical-physics-i-spring-2014/&lt;/li&gt;
&lt;li&gt;视频列表地址: https://www.youtube.com/playlist?list=PLUl4u3cNGP62FPGcyFJkzhqq9c5cHCK32&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Helium (last lecture)&lt;/h2&gt;


$$\begin{align}
\vec{S} = \vec{S}(1) + \vec{S}(2)
\end{align}$$


&lt;p&gt;All spin operators are symmetric against particle exchange. In other …&lt;/p&gt;</summary><content type="html">
&lt;h2&gt;Information&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;官方介绍: https://ocw.mit.edu/courses/physics/8-421-atomic-and-optical-physics-i-spring-2014/&lt;/li&gt;
&lt;li&gt;视频列表地址: https://www.youtube.com/playlist?list=PLUl4u3cNGP62FPGcyFJkzhqq9c5cHCK32&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Helium (last lecture)&lt;/h2&gt;


$$\begin{align}
\vec{S} = \vec{S}(1) + \vec{S}(2)
\end{align}$$


&lt;p&gt;All spin operators are symmetric against particle exchange. In other words, if
you couple to the spin through a magnetic field, you couple to the two electrons
symmetrically. And therefore, you have the selection rule only symmetric and
symmetric ( $S \leftrightarrow S$ ) &amp; anti-symmetric and anti-symmetric ( $A \leftrightarrow A$ ) states
couple. 也就是说 Hamiltonian 中的自旋算符不改变自旋的组态.&lt;/p&gt;

&lt;p&gt;Spatial and spin symmetry (S. A) are both good quantum numbers. Formally, all
observables $\hat{O}$ commute with particle exchange operator (自旋和空间没有耦
合)&lt;/p&gt;

$$\begin{align}
[P_{ij}, \hat{O}] = 0
\end{align}$$


&lt;p&gt;As long as wavefunctions and operators separate into spin-dependent and
space-dependent parts&lt;/p&gt;

$$\begin{align}
P_{12} = P_{12}^{\mathrm{space}} P_{12}^{\mathrm{spin}}
\end{align}$$

&lt;p&gt;and both $P_{12}$ 's are conserved.&lt;/p&gt;

&lt;p&gt;Singlets $\leftrightarrow$ Triplets transition requires violation of above assumption.&lt;/p&gt;

&lt;blockquote&gt;Mixing of spin and spatial WF by spin orbit coupling.

Spin-orbital coupling $\propto Z^4$ . Weak for Helium, $2^{3}s$ is VERY long lived
8000s (It's one of the most longest-lived metastable states you can imagine and
which you find in atomic physics)

Ne, Ar, Kr, Xe 40s.(longer, because of stronger nuclear charge)

Mg, Ca, Sr have inter-combination lines, are candidate for atomic clocks (kHz
line width). If the line width is kilohertz, the lifetime is millisecond ...&lt;/blockquote&gt;

&lt;p&gt;Decay path: 1 photon M1(we discuss it later in the course), and not 2-photons as
believed earlier). The decay path requires higher order terms using the Dirac
equation with coupling to the electromagnetic field.&lt;/p&gt;

&lt;h2&gt;Fine Structure&lt;/h2&gt;


&lt;table&gt;
&lt;tr&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt; Electronic energy &lt;/td&gt;
&lt;td&gt; Ryd, $\alpha^2 mc^2$        &lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt; Fine structure    &lt;/td&gt;
&lt;td&gt; $\alpha^4 mc^2$ , $\alpha^2$ Ryd &lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt; Lamb shifts       &lt;/td&gt;
&lt;td&gt; $\alpha^5 mc^2$ , GHz       &lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;
&lt;p&gt;Fine structure: $\alpha^4 mc^2$ .
Exact picture: Dirac equation. The solution of the Dirac equation for the
hydrogen atom gives us the electronic structure, the same as comes out of the
Bohr model, but now including the fine structure.&lt;/p&gt;

&lt;h3&gt;Fine Structure: 3 contributions&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;kinetic&lt;/li&gt;
&lt;li&gt;spin-orbit&lt;/li&gt;
&lt;li&gt;Darwin term&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Pauli approximation to the Dirac equation (expand Dirac equation in power of
$v/c$ , lowest order):&lt;/p&gt;

$$\begin{align}
H =&amp; mc^{2} + \frac{p^2}{2m} - \frac{e^2}{r} \\
   &amp; - \frac{p^4}{8m^3c^2}\quad \mathrm{kinetic} \\
   &amp; + \frac{\hbar^2e^2}{2m^2 c^2}\frac{1}{r^3} \vec{L}\cdot \vec{S} \quad \mathrm{spin-orbit}\\
   &amp; - \frac{\hbar^2}{8 m^2c^2}\nabla^2 \frac{e^2}{r} \quad \mathrm{Darwin}
\end{align}$$


&lt;h4&gt;Kinetic energy&lt;/h4&gt;


$$\begin{align}
E = \sqrt{(mc^2)^2 + (pc)^2}
\end{align}$$


$$\begin{align}
T = E - mc^2 \approx \frac{p^2}{2m} - \frac{1}{8}\frac{p^4}{m^3c^2}
\end{align}$$


&lt;h4&gt;Spin-orbit interaction&lt;/h4&gt;
&lt;p&gt;insightful: what do we have to add to the Schrodinger
equation to get it? Spin!&lt;/p&gt;

&lt;p&gt;$e^-$&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;intrinsic angular moment $\hbar \vec{S}$&lt;/li&gt;
&lt;li&gt;magnetic moment $\mu = g\mu_0 \vec{S}$ ( $g = 2$ , $\mu_0$ Bohr magneton)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;moving electron "sees" motional magnetic field.&lt;/p&gt;

$$\begin{align}
B_{\mathrm{mot}} = - \frac{\vec{v}}{c}\times \vec{E}
    = - \frac{\vec{v}}{c}\times \frac{e}{r^3}\vec{r} = \frac{e\hbar}{mc} \frac{1}{r^3}\vec{L}
\end{align}$$


$$\begin{align}
H_{\mathrm{S.O.}} = - \vec{\mu}\cdot \vec{B}
 = \frac{e^2 \hbar^2}{m^2 c^2}\frac{1}{r^3}\vec{S}\cdot \vec{L}
\end{align}$$


&lt;blockquote&gt;relativistic transformations
\begin{align}
\vec{\Omega}_{\mathrm{T}} = \frac{1}{2}\frac{\vec{a}\times \vec{v}}{c^2}
\quad
\begin{pmatrix}
= 0, \quad \vec{a} // \vec{v} \\
\mathrm{Thomas}\, \mathrm{procession}
\end{pmatrix}
\end{align}
according to Lecture 2
\begin{align}
\vec{B}_{\mathrm{T}} = \frac{1}{\gamma_e}\vec{\Omega}_{\mathrm{T}},
 \gamma_e = \frac{e}{mc}, \vec{a} = \frac{e^2}{mr^3}\vec{r}
\end{align}
\begin{align}
\Rightarrow B_{\mathrm{T}} = \frac{1}{2}B_{\mathrm{mot}}
\end{align}

杨福家碱金属双线一节, 及 Griffiths QM 6.3 节有关于坐标系变换的讨论.&lt;/blockquote&gt;

&lt;h4&gt;Darwin term&lt;/h4&gt;

&lt;p&gt;electron is "smeared(not localized) out" over Compton wavelength $\frac{\hbar}{mc}$&lt;/p&gt;

&lt;p&gt;German word: Zitterbewegung (trembling motion)&lt;/p&gt;

&lt;p&gt;fells averaged Coulomb potential $\bar{V(r)}$&lt;/p&gt;

&lt;p&gt;small displacement $\vec{s}$&lt;/p&gt;

$$\begin{align}
V(\vec{r} + \vec{s}) = v(\vec{r}) + \vec{\nabla} V\cdot \vec{s}
 + \frac{1}{2} \sum_{ij} s_{xi}s_{xj} \frac{\partial^2 V}{\partial x_i \partial x_j}
\end{align}$$

&lt;p&gt;the correction:&lt;/p&gt;

$$\begin{align}
\Delta V = \frac{1}{2}\frac{1}{3}\left(\frac{\hbar}{mc}\right)^2 \nabla^2V
    = - \frac{1}{6} \frac{e^2\hbar^2}{m^2c^2}\nabla^2 \frac{1}{r}
\end{align}$$

&lt;p&gt;$\nabla^2\frac{1}{r} \Rightarrow$ only s electrons which have a non-vanishing probability to
feel the origin of the Coulomb potential.
Exact coefficition is $\frac{1}{8}$ .&lt;/p&gt;

&lt;h4&gt;summary&lt;/h4&gt;


&lt;table&gt;
&lt;tr&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;                    &lt;/td&gt;
&lt;td&gt; s electrons &lt;/td&gt;
&lt;td&gt; $l\neq 0$ &lt;/td&gt;
&lt;td&gt; sign &lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt; rel KE             &lt;/td&gt;
&lt;td&gt; Yes         &lt;/td&gt;
&lt;td&gt; Yes     &lt;/td&gt;
&lt;td&gt; $-$  &lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt; $\vec{L}\cdot \vec{S}$ &lt;/td&gt;
&lt;td&gt; No          &lt;/td&gt;
&lt;td&gt; Yes     &lt;/td&gt;
&lt;td&gt; $+/-$ &lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt; Darwin             &lt;/td&gt;
&lt;td&gt; Yes         &lt;/td&gt;
&lt;td&gt; No      &lt;/td&gt;
&lt;td&gt; $+$  &lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;
&lt;p&gt;the Darwin term reduces the binding energy, because it sort of takes a cusp (a
point of transition between two different states) away from the Coulomb
interaction.&lt;/p&gt;

&lt;p&gt;Spin-orbit is not diagonal in $\vec{L}, \vec{S}$ . So what we have to do is we
have to introduce now:&lt;/p&gt;

$$\begin{align}
(\vec{L} + \vec{S})^2 = \vec{J}^{2}
\end{align}$$


$$\begin{align}
\vec{L}\cdot \vec{S} = \frac{1}{2}(\vec{J}^2 - \vec{L}^2 - \vec{S}^2)
\end{align}$$

&lt;p&gt;So, therefore, the LS interaction is diagonal in the J basis.&lt;/p&gt;

&lt;p&gt;加上 Kinetic 和 Darwin 项之后, $^2S_{1/2}, ^2P_{1/2}$ 又重新简并. If we would use
a non-relativistic approach, and derive the Darwin term, the spin orbit term,
and the relativistic correction separately, there would be no reason. It would
just look like a freak(a thing, person, animal, or event that is extremely
unusual or unlikely, and not like any other…) accident in nature that those two
levels come out equal. However, it's not a freak accident. *It's a symmetry of
the Dirac equation.* So all those corrections have a deep connection in
relativistic physics. And &lt;em&gt;relativistic physics preserves the degeneracy in $J$&lt;/em&gt;
.&lt;/p&gt;

&lt;p&gt;Fine structure does not lift the degeneracy between $^2S_{1/2}$ and $^2P_{1/2}$
. When we use the Dirac equation, we can get an exact expression for the fine
structure:&lt;/p&gt;

$$\begin{align}
E_{\mathrm{F.S.}} = \alpha^2 mc^2 \left(-\frac{\alpha^2}{2n^4}\right)
     \left(\frac{n}{j+\frac{1}{2}} - \frac{3}{4} \right)
\end{align}$$

&lt;p&gt;and then the &lt;em&gt;fine structure only depends on $J$ , and not on $L, S$ separately&lt;/em&gt;
. So that tells us that eventually the spin of the electron and the fine
structure really have deep origins in the relativistic nature of the underlying
physics.&lt;/p&gt;

&lt;p&gt;但这个简并只对单电子的系统有效. 见 Demtröder, W. Atoms, Molecules and Photons:
An Introduction to Atomic-, Molecular- and Quantum Physics. (Springer Berlin
Heidelberg, 2018)  第 167, 168 页 5.5.4
Spin-Orbit Coupling and Fine Structure.&lt;/p&gt;

&lt;p&gt;&lt;p&gt;&lt;img src='2022-02-19-physics-MITAMO07/FS_Hydrogen.png' alt='figalt' max-width:100%&gt;&lt;p&gt;&lt;/p&gt;

&lt;p&gt;So that means at the level of $10^{-4}$ eV, we understand atomic structure. But
we want to go further. And the next thing we want to discuss is that --- what is
the exact degeneracy between $^2S_{1/2}$ and $^2P_{1/2}$ which is actually lifted
when we introduce photons when we allow the electrons to couple to the
electromagnetic field, that's QED. And that introduces the Lamb shift (the
nucleus is a point charge, has no structure).&lt;/p&gt;

&lt;p&gt;When we bring in the proton. So far we have said there is a point charge, but
the proton is a particle which has finite size. But also, it has finite angular
momentum. And then we have HFS.&lt;/p&gt;

&lt;p&gt;&lt;p&gt;&lt;img src='2022-02-19-physics-MITAMO07/RoadMap.png' alt='figalt' max-width:100%&gt;&lt;p&gt;&lt;/p&gt;

&lt;h2&gt;Lamb Shift (QED)&lt;/h2&gt;

&lt;p&gt;The discovery of this lifting of the degeneracy actually opened up the field for
the development of quantum electrodynamics.&lt;/p&gt;

&lt;p&gt;If you fully quantize the electromagnetic field, you have a vector potential
which describes the vacuum mode. And you have a vector potential, which is the
operator of the fully-quantized field. And if you now carry out second-order
perturbation theory in this operator $A$ of the quantized electromagnetic
field. In other words, you allow the atom or the electron in the atom to couple
to all the empty modes of the vacuum. Then you obtain the Lamb shift in its full beauty.&lt;/p&gt;


&lt;p&gt;The nature of the Lamb shift is the coupling to the vacuum modes. But I want to
capture that now in a semi-classical picture.&lt;/p&gt;

&lt;h3&gt;Simple picture due to &lt;a href='https://en.wikipedia.org/wiki/Theodore_A._Welton'&gt;Welton&lt;/a&gt; &amp; &lt;a href='https://en.wikipedia.org/wiki/Victor_Weisskopf'&gt;Weisskopf&lt;/a&gt;&lt;/h3&gt;

&lt;p&gt;the vacuum is filled with a zero point energy of the electromagnetic field.&lt;/p&gt;

&lt;p&gt;EM modes  have zero point energy $\frac{1}{2}\hbar\omega$ density of modes (per volume
and frequency interval)&lt;/p&gt;

&lt;blockquote&gt;Now in addition to its own trembling motion, the electron is now shaken by the
electric field of vacuum. And this leads to an additional smear out. This is the
Lamb shift.&lt;/blockquote&gt;

$$\begin{align}
\rho(\nu) \mathrm{d}\nu = 8\pi \frac{\nu^2}{c^3}\mathrm{d}\nu
\end{align}$$

&lt;p&gt;zero point density&lt;/p&gt;

$$\begin{align}
W_0 = \frac{1}{2}h\nu \rho(\nu) = 4\pi\frac{h\nu^3}{c^3} = \frac{1}{8\pi} E_{\nu^2}
\end{align}$$

&lt;p&gt;So therefore, what we derive from this picture, that the vacuum is filled with
an oscillating electric field. And this oscillating electric field is
characterized by a value, by a spectral density&lt;/p&gt;

$$\begin{align}
E_{\nu}^2 = \frac{32\pi^2 h\nu^3}{c^3}
\end{align}$$


&lt;p&gt;What is the effect of such a field on a free electron? And we will later discuss
that for very high-frequencies, an electron can be regarded as free.&lt;/p&gt;

$$\begin{align}
m \ddot{s_{\nu}} =&amp; e E_{\nu} \cos (2\pi\nu t) \\
\Rightarrow s_{\nu} =&amp; \frac{e E_{\nu}}{2\pi \nu^2 m}(- \cos(2\pi\nu t))
\end{align}$$

&lt;p&gt;where $s$ is coordinate of electron.&lt;/p&gt;

&lt;p&gt;Of course, the phase is random, so we're not interested in the amplitude . We
are interested in sort of an average amplitude square or an RMS amplitude.&lt;/p&gt;

$$\begin{align}
\bar{S_{\nu}^2} = \frac{e^2}{32\pi^4m^2\nu^4}E_{\nu}^2 = \frac{c^2h}{\pi^2 m^2 e^3}\frac{1}{\nu}
\end{align}$$

&lt;p&gt;like Darwin term&lt;/p&gt;

$$\begin{align}
\Delta V = \frac{s_{\nu}^2}{6} \nabla^2 V(r) = \frac{s_{\nu}^2}{6} \cdot 4\pi z\delta(r)
\end{align}$$

&lt;p&gt;These smear out ( $s_{\nu}^2$ ) of the electron leads to a change of the average Coulomb
potential. And that means now that we get a change of the binding energy of the
electron, which is nothing else in perturbation theory than the matrix element
of the perturbation operator&lt;/p&gt;

$$\begin{align}
\delta W_{\nu} = \frac{2\pi}{3} e^2 s_{\nu}^2 \langle \psi | \delta(r) | \psi\rangle
\end{align}$$

&lt;p&gt;$\langle \psi | \delta(r) | \psi\rangle$ only affects s electron $\frac{Z^3}{\pi n^3a_0^3}$&lt;/p&gt;

&lt;p&gt;integrate over $\nu$&lt;/p&gt;

$$\begin{align}
\delta W = \frac{4}{3\pi}\alpha^3 \frac{Z^4}{n^e}
    \mathrm{ln} \left[ \frac{\nu_{\mathrm{max}}}{\nu_{\mathrm{min}}} \right]
\end{align}$$

&lt;p&gt;we have divergences at both ends. So we need a cutoff at a minimum and at a
maximum frequency. $\nu_{\mathrm{max}} \approx mc^2$ , $\nu_{\mathrm{min}} =$ frequency
of the orbital electron&lt;/p&gt;

$$\begin{align}
\frac{Z^2}{n^3} 2 \mathrm{Ryd.}
\end{align}$$

&lt;p&gt;so&lt;/p&gt;

$$\begin{align}
\frac{\nu_{\mathrm{max}}}{\nu_{\mathrm{min}}}
\approx \frac{n^3}{Z^2\alpha^{2}}
\end{align}$$

&lt;p&gt;if we apply it to 2s state which is most important because there is the
degeneracy between $^2S_{1/2}$ and $^2P_{1/2}$ to be lifted, we get a result that
the energy splitting is now&lt;/p&gt;

$$\begin{align}
\delta W = \frac{1}{6\pi}\alpha^3 \mathrm{ln}\frac{8}{\alpha^2}\approx 1600 \mathrm{MHz}
\end{align}$$

&lt;p&gt;exact value is 1058 MHz.&lt;/p&gt;

&lt;h2&gt;Reference&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href='https://journals.aps.org/prl/abstract/10.1103/PhysRevLett.103.053002'&gt;S. S. Hodgman, R. G. Dall, L. J. Byron, K. G. H. Baldwin, S. J. Buckman, and A. G. Truscott Phys. Rev. Lett. 103, 053002 – Published 30 July 2009&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href='https://journals.aps.org/prl/abstract/10.1103/PhysRevLett.100.023001'&gt;Phys. Rev. Lett. 100, 023001 – Published 15 January 2008, Experimental Determination of the Helium $2^3P_1–1^1S_0$ Transition Rate&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href='https://en.wikipedia.org/wiki/Zitterbewegung'&gt;Wikipedia: Zitterbewegung&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href='https://en.wikipedia.org/wiki/Theodore_A._Welton'&gt;Wikipedia: Welton&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href='https://en.wikipedia.org/wiki/Victor_Weisskopf'&gt;Wikipedia: Weisskopf&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Demtröder, W. Atoms, Molecules and Photons: An Introduction to Atomic-, Molecular- and Quantum Physics. (Springer Berlin Heidelberg, 2018)&lt;/li&gt;
&lt;li&gt;&lt;a href='https://en.wikipedia.org/wiki/Fine_structure'&gt;wikipedia: Fine structure&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</content><category term="专业笔记"/><category term="Atomic and Optical Physics"/><category term="fine structure"/></entry><entry><title>研五上学期总结</title><link href="https://zqw.ink/2022-02-18-thinking-summary_grade_5_1.html" rel="alternate"/><published>2022-02-18T00:00:00+08:00</published><updated>2022-02-18T00:00:00+08:00</updated><author><name>ZQW</name></author><id>tag:zqw.ink,2022-02-18:/2022-02-18-thinking-summary_grade_5_1.html</id><summary type="html">
&lt;h2&gt;序&lt;/h2&gt;

&lt;p&gt;今日返校.&lt;/p&gt;

&lt;h2&gt;课题&lt;/h2&gt;

&lt;p&gt;我的第一个课题终于基本算完
了
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!&lt;/p&gt;

&lt;h2&gt;读书&lt;/h2&gt;

&lt;p&gt;本学期组内读书会读的还是 Ahtony Zee 的群论, 读到了第三章. 可惜了, 这 …&lt;/p&gt;</summary><content type="html">
&lt;h2&gt;序&lt;/h2&gt;

&lt;p&gt;今日返校.&lt;/p&gt;

&lt;h2&gt;课题&lt;/h2&gt;

&lt;p&gt;我的第一个课题终于基本算完
了
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!&lt;/p&gt;

&lt;h2&gt;读书&lt;/h2&gt;

&lt;p&gt;本学期组内读书会读的还是 Ahtony Zee 的群论, 读到了第三章. 可惜了, 这本书就读到这
里了.&lt;/p&gt;

&lt;p&gt;Wolfgang Ketterle 的 AMO 视频看完第八节, 笔记整理完第六节. 收获还是很大的. 他的
物理图像很 nice.&lt;/p&gt;

&lt;p&gt;其它的就没看什么了, 这学期主要的精力还是用来算课题了, 我是真急了!&lt;/p&gt;

&lt;h2&gt;业余&lt;/h2&gt;

&lt;p&gt;一直在打邦邦. 不过能打的曲子没什么突破, 主要是 great 减少了, 因此打起来也就更加
有快感.&lt;/p&gt;

&lt;p&gt;还玩了几天的 fitness boxing 2. 感觉很好, 可以一直玩下去.&lt;/p&gt;

&lt;p&gt;这学期买了 nuc, 学到不少东西. 看了一部分 30 天自制操作系统, 收获非常大. 在 304
的台式上加了一块 6T 的机械硬盘, 这样这台式就当服务器了. 目前有&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;个人主页&lt;/li&gt;
&lt;li&gt;emby 媒体服务器. 这样在任何地方都可以访问里面存的音乐和视频, 也不跑我的校园网 流量.&lt;/li&gt;
&lt;li&gt;有一个 shadowsocks 服务, 这样寒假在家的时候就可以照常访问教育网的资源了.&lt;/li&gt;
&lt;li&gt;Transmission web 端. 这样寒假在家的时候就可以下载 pt 资源到 emby 上了.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;然后设置了断电通电后自动开机, 这样只要 304 有电, 服务器就会一直运行. 整个寒假 40
多天都非常稳定, 没有出现任何问题.&lt;/p&gt;

&lt;p&gt;寒假在家一个月, 完全没学物理. 德亚上买了一把 CX12, 才 900 块, 是真便宜了, 可惜买
来就在那里吃灰了, 这种经典的琴, 早晚要买的.&lt;/p&gt;

&lt;p&gt;吉他就练了一首 月亮代表我的心 的指弹. 本来想录个视频, 可是还是总有地方不连贯, 就
放弃了. 之后的练习方向也明确了, 是 南泽大介 的练习曲, 因为练了半首, 很好听, 难度
也适合我.&lt;/p&gt;

&lt;h2&gt;总&lt;/h2&gt;

&lt;p&gt;研五上有很多难忘的回忆! 希望明年我能按时毕业!&lt;/p&gt;

&lt;p&gt;&lt;p&gt;&lt;img src='2022-02-18-thinking-summary_grade_5_1/Screenshot_20220202-115428_BanG Dream!.jpg' alt='figalt' max-width:100%&gt;&lt;p&gt;&lt;/p&gt;
</content><category term="想说"/><category term="总结"/></entry><entry><title>多体系统的密度算符, 密度矩阵, 多体系统的单体密度算符, 密度矩阵小结</title><link href="https://zqw.ink/2022-01-01-physics-density_matrix.html" rel="alternate"/><published>2022-01-01T00:00:00+08:00</published><updated>2022-01-01T00:00:00+08:00</updated><author><name>ZQW</name></author><id>tag:zqw.ink,2022-01-01:/2022-01-01-physics-density_matrix.html</id><summary type="html">
&lt;p&gt;新年快乐!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!&lt;/p&gt;

&lt;h2&gt;Signle particle&lt;/h2&gt;

&lt;p&gt;单粒子的情况, 参考 Sakurai &amp; Napolitano 中的讨论, 以及 Wolfgang Ketterle 的 AMO
公开课第五讲.&lt;/p&gt;

&lt;h2&gt;Many body system Density operator $\hat{\rho}_N$, Density matrix $\rho_N$&lt;/h2&gt;

&lt;p&gt;对于一个 $N$ 粒子 …&lt;/p&gt;</summary><content type="html">
&lt;p&gt;新年快乐!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!&lt;/p&gt;

&lt;h2&gt;Signle particle&lt;/h2&gt;

&lt;p&gt;单粒子的情况, 参考 Sakurai &amp; Napolitano 中的讨论, 以及 Wolfgang Ketterle 的 AMO
公开课第五讲.&lt;/p&gt;

&lt;h2&gt;Many body system Density operator $\hat{\rho}_N$, Density matrix $\rho_N$&lt;/h2&gt;

&lt;p&gt;对于一个 $N$ 粒子的多体纯态 $|\Psi_{\mathrm{N-particles}}\rangle$ , 其 density operator 定
义为&lt;/p&gt;

$$\begin{align}
\hat{\rho}_N \equiv |\Psi_{\mathrm{N-particles}}\rangle\langle\Psi_{\mathrm{N-particles}}|
\end{align}$$

&lt;p&gt;选取一组基底, 写出 density opertor 在此基底下的表示矩阵, 即为 density
operator. 例如有一组正交归一的单粒子本征态 $\{| \alpha\rangle\}$ , 系统的基底选取为 $N$ 个单
粒子态的直积 (Negele &amp; Orland Eq.(1.27))&lt;/p&gt;

$$\begin{align}
|\alpha_1 , \alpha_2, \cdots, \alpha_N) \equiv |\alpha_1\rangle \otimes |\alpha_2\rangle \otimes \cdots\otimes |\alpha_N\rangle
\end{align}$$

&lt;p&gt;需要注意:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;1. 这里等式左边不是 $|\rangle$ , 而是 $|)$ . 区别在于后者没有对费米子或是玻色子做反 对&lt;/li&gt;
&lt;li&gt;2. $N$ 是多体系统总的粒子数, 而不是单粒子本征态 $\{| \alpha\rangle\}$ 的个数. 称或者是对称化处理. 它的完备性可以写为&lt;/li&gt;
&lt;/ul&gt;

$$\begin{align}
\sum_{\alpha_1, \cdots,\alpha_N}|\alpha_1 , \alpha_2, \cdots, \alpha_N) (\alpha_1 , \alpha_2, \cdots, \alpha_N| = 1
\end{align}$$

&lt;p&gt;因此在这样一组基底下, density opertor 的矩阵表示, 也就是 density matrix 可以写为&lt;/p&gt;

$$\begin{align}
&amp;\rho_N(\alpha_1 , \alpha_2, \cdots, \alpha_N ;\alpha_1' , \alpha_2', \cdots, \alpha_N')\\
=&amp; (\alpha_1 , \alpha_2, \cdots, \alpha_N| \hat{\rho}_N |\alpha_1' , \alpha_2', \cdots, \alpha_N') \\
    =&amp; (\alpha_1 , \alpha_2, \cdots, \alpha_N| \Psi_{\mathrm{N-particles}}\rangle\langle\Psi_{\mathrm{N-particles}}
                      |\alpha_1' , \alpha_2', \cdots, \alpha_N')
\end{align}$$

&lt;p&gt;一种特殊的情况是将基底选为空间坐标, 就可以写成多体波函数的形式&lt;/p&gt;

$$\begin{align}
 \rho_N(r_1 , r_2, \cdots, r_N ;r_1' , r_2', \cdots, r_N')
= \Psi_{\mathrm{N-particles}}(r_1 , r_2, \cdots, r_N)
   \Psi^{*}_{\mathrm{N-particles}}(r_1' , r_2', \cdots, r_N')
\end{align}$$

&lt;p&gt;其中波函数为 (Negele &amp; Orland Eq.(1.49))&lt;/p&gt;

$$\begin{align}
\Psi_{\mathrm{N-particles}}(r_1 , r_2, \cdots, r_N)
 = (r_1 , r_2, \cdots, r_N| \Psi_{\mathrm{N-particles}}\rangle
\end{align}$$

&lt;p&gt;如果我们对 $\rho_N$ 求 trace, 也就是对取 $r_1' = r_1, r_2' = r_2, \cdots, r_N' = r_N$ , 再
对所有这些指标求和, 会发现结果是 $1$ , 从多体波函数
$\Psi_{\mathrm{N-particles}}(r_1 , r_2, \cdots, r_N)$ 的归一化也可以看出这一点.&lt;/p&gt;

&lt;blockquote&gt;Example: 2 Fermions

$2$ spin $1/2$ Fermions, 一个在 spin up, 一个在 spin down, 并且空间波函数是交换
对称的. 考虑其自旋部分的 density opertor.

因为 Fermion 总的波函数是交换反对称的, 而这里已经假设空间波函数是交换对称的, 所
以自旋部分只能是交换反对称的. 反对称化(只有单个粒子处于的态正交时才能够这样反对
称化, 详见 Negele, J. W. &amp; Orland)后的 $2$ 粒子态的自旋部分为(也就是自旋单态)
\begin{align}
|\Psi_{\mathrm{2-particles}} \rangle
  = \frac{1}{\sqrt{2}}(|\uparrow\rangle \otimes |\downarrow\rangle - |\downarrow\rangle\otimes|\uparrow\rangle)
\end{align}
选取单粒子态基底为 $\{|\uparrow\rangle, |\downarrow\rangle\}$ . 在此基底下, spin up 和 spin down 表示为
\begin{align}
|\uparrow\rangle \sim&amp; \begin{pmatrix} \langle\uparrow|\uparrow\rangle \\\langle\downarrow|\uparrow\rangle  \end{pmatrix}
  = \begin{pmatrix} 1 \\0  \end{pmatrix} \\
|\downarrow\rangle \sim&amp; \begin{pmatrix} \langle\downarrow|\uparrow\rangle \\\langle\downarrow|\uparrow\rangle  \end{pmatrix}
  = \begin{pmatrix} 0 \\1  \end{pmatrix}
\end{align}
其中 $\sim$ 表示 'represented by' (参见 Sakurai &amp; Napolitano).

直积
\begin{align}
|\uparrow \downarrow ) = |\uparrow\rangle \otimes |\downarrow\rangle &amp;\sim \begin{pmatrix} 1 \\0  \end{pmatrix}\otimes
        \begin{pmatrix} 0 \\1  \end{pmatrix}
  = \begin{pmatrix} 1\times 0 \\1\times 1\\ 0\times 0\\0\times 1  \end{pmatrix}
  = \begin{pmatrix} 0 \\1\\  0\\0 \end{pmatrix} \\
|\downarrow \uparrow) = |\downarrow\rangle\otimes|\uparrow\rangle&amp; \sim\begin{pmatrix} 0 \\0\\  1\\0 \end{pmatrix}
\end{align}
也就是说
\begin{align}
|\Psi_{\mathrm{2-particles}} \rangle
  \sim\begin{pmatrix} (\uparrow \uparrow |\Psi_{\mathrm{2-particles}} \rangle\\
                   (\uparrow \downarrow |\Psi_{\mathrm{2-particles}} \rangle\\
                   (\downarrow \uparrow |\Psi_{\mathrm{2-particles}} \rangle\\
                   (\downarrow \downarrow |\Psi_{\mathrm{2-particles}} \rangle
    \end{pmatrix}
=\frac{1}{\sqrt{2}}\left(\begin{pmatrix} 0 \\1\\ 0\\0 \end{pmatrix}
             - \begin{pmatrix} 0 \\ 0 \\ 1\\0  \end{pmatrix}\right)
= \frac{1}{\sqrt{2}}\begin{pmatrix} 0 \\1\\ -1\\0 \end{pmatrix}
\end{align}
也可以这样算, 比如
\begin{align}
(\uparrow \uparrow |\Psi_{\mathrm{2-particles}} \rangle = \langle \uparrow |\otimes \langle\uparrow|\Psi_{\mathrm{2-particles}} \rangle
= \frac{1}{\sqrt{2}} (\langle \uparrow |\otimes \langle\uparrow|)\cdot(|\uparrow\rangle \otimes |\downarrow\rangle - |\downarrow\rangle\otimes|\uparrow\rangle)
\end{align}
其中
\begin{align}
\langle \uparrow |\otimes \langle\uparrow|\cdot|\uparrow\rangle \otimes |\downarrow\rangle = \langle\uparrow|\uparrow \rangle\langle\uparrow|\downarrow\rangle = 0
\end{align}
如此这般, 所有的项都可以算出来.

Density operator and density matrix
\begin{align}
\hat{\rho}_N =&amp; |\Psi_{\mathrm{2-particles}} \rangle\langle\Psi_{\mathrm{2-particles}} |\sim
\rho \\
=&amp;
\frac{1}{2} \begin{pmatrix} 0 \\1\\ -1\\0 \end{pmatrix}
\begin{pmatrix} 0 &amp;1 &amp; -1 &amp;0 \end{pmatrix}
= \frac{1}{2} \begin{pmatrix} 0 &amp; 0 &amp; 0 &amp; 0 \\
                       0&amp; 1 &amp; -1 &amp; 0\\
                       0&amp; -1 &amp; 1 &amp; 0\\
                       0&amp; 0 &amp; 0 &amp; 0 \end{pmatrix}
\end{align}
很明显, 它的迹是 $1$ .&lt;/blockquote&gt;

&lt;h2&gt;Reduced density matrix&lt;/h2&gt;

&lt;p&gt;按照 C. N. Yang 1962 中单体密度算符的定义&lt;/p&gt;

$$\begin{align}
\langle j | \rho_1 | i\rangle \equiv \mathrm{Sp} \, a_j \rho a_i^{\dagger}
\end{align}$$

&lt;p&gt;其中 $i, j$ 表示单粒子态.&lt;/p&gt;

&lt;p&gt;用这篇博客里的符号来表达就是&lt;/p&gt;

$$\begin{align}
\rho_1(\alpha; \alpha') \equiv \sum_{\alpha_2, \alpha_3,\cdots \alpha_N} (\alpha_2, \alpha_3, \cdots \alpha_N |\hat{a}_{\alpha}
                  \hat{\rho}_N \hat{a}_{\alpha'}^{\dagger}| \alpha_2, \alpha_3, \cdots, \alpha_N)
\end{align}$$

&lt;p&gt;也就是&lt;/p&gt;

$$\begin{align}
\rho_1(\alpha, \alpha')=&amp; \sum_{\alpha_2, \alpha_3,\cdots \alpha_N}
           (\alpha_2, \alpha_3, \cdots \alpha_N |\hat{a}_{\alpha} |\Psi_{\mathrm{N-particles}}\rangle
           \langle\Psi_{\mathrm{N-particles}}|\hat{a}_{\alpha'}^{\dagger}| \alpha_2, \alpha_3, \cdots, \alpha_N) \\
     =&amp; \langle \Psi_{\mathrm{N-particles}} |\hat{a}_{\alpha'}^{\dagger} \hat{a}_{\alpha}
           | \Psi_{\mathrm{N-particles}}\rangle
\end{align}$$

&lt;p&gt;现在, 有一个问题, 我们想知道 $\rho_1(\alpha; \alpha')$ 与 $\rho_N(\alpha_1, \alpha_2,\cdots, \alpha_N; \alpha_1',
\alpha_{2}',\cdots \alpha_N')$ 的关系. 注意&lt;/p&gt;

$$\begin{align}
\langle\Psi_{\mathrm{N-particles}}|\hat{a}_{\alpha'}^{\dagger}| \alpha_2, \alpha_3, \cdots, \alpha_N)
\neq \langle\Psi_{\mathrm{N-particles}}|\sqrt{n_{\alpha'} +1}| \alpha', \alpha_2, \alpha_3, \cdots, \alpha_N)
\end{align}$$

&lt;p&gt;其中 $n_{\alpha'}$ 表示 $\alpha_2, \alpha_3, \cdots, \alpha_N$ 中有多少个与 $\alpha'$ 相同的态. 产生算符应
该作用在对称化过的态上, 即&lt;/p&gt;

$$\begin{align}
\hat{a}_{\alpha'}^{\dagger}| \alpha_2, \alpha_3, \cdots, \alpha_N\rangle = \sqrt{n_{\alpha'} +1}| \alpha', \alpha_2, \alpha_3, \cdots, \alpha_N\rangle
\end{align}$$

&lt;p&gt;二者之间的关系为 (Negele &amp; Orland Eq.(1.46))&lt;/p&gt;

$$\begin{align}
|\alpha_1, \alpha_2, \alpha_3, \cdots, \alpha_N\rangle = \frac{1}{\sqrt{N! \prod_\alpha n_{\alpha}!}}
  \sum_P\zeta^P |\alpha_{P1} , \alpha_{P2}, \alpha_{P3}, \cdots , \alpha_{PN} )
\end{align}$$

&lt;p&gt;其中 $P$ 表示置换, $\zeta = \pm 1$ (Boson $+1$ , Fermion $-1$ ) . 因此有&lt;/p&gt;

$$\begin{align}
   &amp;\langle\Psi_{\mathrm{N-particles}}| \alpha_1, \alpha_2, \alpha_3, \cdots, \alpha_N\rangle \\
  =&amp; \frac{1}{\sqrt{N! \prod_\alpha n_{\alpha}!}}
  \sum_P\zeta^P\langle\Psi_{\mathrm{N-particles}}|\alpha_{P1} , \alpha_{P2}, \alpha_{P3}, \cdots , \alpha_{PN}) \\
=&amp; \frac{1}{\sqrt{N! \prod_\alpha n_{\alpha}!}}
  \sum_P\zeta^P\cdot \zeta^P\langle\Psi_{\mathrm{N-particles}}|\alpha_{1} , \alpha_{2}, \alpha_{3}, \cdots , \alpha_{N}) \\
=&amp; \frac{1}{\sqrt{N! \prod_\alpha n_{\alpha}!}}
  N! \langle\Psi_{\mathrm{N-particles}}|\alpha_{1} , \alpha_{2}, \alpha_{3}, \cdots , \alpha_{N}) \\
=&amp; \sqrt{\frac{N!}{ \prod_\alpha n_{\alpha}!}}
  \langle\Psi_{\mathrm{N-particles}}|\alpha_{1} , \alpha_{2}, \alpha_{3}, \cdots , \alpha_{N})
\end{align}$$

&lt;p&gt;同理&lt;/p&gt;

$$\begin{align}
   &amp;\langle\Psi_{\mathrm{N-particles}}| \alpha_1, \alpha_2, \alpha_3, \cdots, \alpha_N\rangle \\
=&amp;\langle\Psi_{\mathrm{N-particles}}|\frac{1}{\sqrt{n_{\alpha_1}}}\hat{a}^{\dagger}_{\alpha_1} |\alpha_2, \alpha_3, \cdots, \alpha_N\rangle \\
=&amp; \frac{1}{\sqrt{n_{\alpha_1}}}\sqrt{\frac{(N - 1)!}{\frac{1}{n_{\alpha_1}} \prod_\alpha n_{\alpha}!}}
  \langle\Psi_{\mathrm{N-particles}}|\hat{a}^{\dagger}_{\alpha_1}|\alpha_{2}, \alpha_{3}, \cdots , \alpha_{N}) \\
=&amp; \sqrt{\frac{(N - 1)!}{ \prod_\alpha n_{\alpha}!}}
   \langle\Psi_{\mathrm{N-particles}}|\hat{a}^{\dagger}_{\alpha_1}|\alpha_{2}, \alpha_{3}, \cdots , \alpha_{N})
\end{align}$$

&lt;p&gt;这样就得到&lt;/p&gt;

$$\begin{align}
\sqrt{N}\langle\Psi_{\mathrm{N-particles}}|\alpha_{1} , \alpha_{2}, \alpha_{3}, \cdots , \alpha_{N})
= \langle\Psi_{\mathrm{N-particles}}|\hat{a}^{\dagger}_{\alpha_1}|\alpha_{2}, \alpha_{3}, \cdots , \alpha_{N})
\end{align}$$


&lt;p&gt;因此我们就知道了  $\rho_1(\alpha, \alpha')$ 与 $\rho_N(\alpha_1, \alpha_2,\cdots, \alpha_N; \alpha_1',
\alpha_{2}',\cdots \alpha_N')$ 的关系, 即&lt;/p&gt;

$$\begin{align}
\rho_1(\alpha; \alpha') =&amp; \sum_{\alpha_2, \alpha_3,\cdots \alpha_N}
           (\alpha_2, \alpha_3, \cdots \alpha_N |\hat{a}_{\alpha} |\Psi_{\mathrm{N-particles}}\rangle
           \langle\Psi_{\mathrm{N-particles}}|\hat{a}_{\alpha'}^{\dagger}| \alpha_2, \alpha_3, \cdots, \alpha_N) \\
  = &amp; N \sum_{\alpha_2, \alpha_3,\cdots \alpha_N}
           (\alpha, \alpha_2, \alpha_3, \cdots \alpha_N |\Psi_{\mathrm{N-particles}}\rangle
           \langle\Psi_{\mathrm{N-particles}}|\alpha', \alpha_2, \alpha_3, \cdots, \alpha_N) \\
  = &amp; N \sum_{\alpha_2, \alpha_3,\cdots \alpha_N} \rho_N(\alpha, \alpha_2,\cdots, \alpha_N; \alpha', \alpha_{2},\cdots \alpha_N)
\end{align}$$

&lt;p&gt;也就是说, 多体系统的单体密度矩, 就是将多体系统的密度矩阵求偏迹 (Partial trace),
只留下一对指标. 如果我们对 $\rho_1(\alpha, \alpha')$ 求 trace, 会发现&lt;/p&gt;

$$\begin{align}
\sum_{\alpha} \rho_1(\alpha; \alpha) = N
\end{align}$$

&lt;p&gt;此即 C. N. Yang 1962 中的 Eq.(4) .&lt;/p&gt;

&lt;p&gt;我们可以 inductive 地定义多体系统的两体算符, 三体算符等等.&lt;/p&gt;

&lt;blockquote&gt;Example 1: 3 Bosons

$2$ 个本征态, $\{|\alpha\rangle , |\beta\rangle\}$ , 3 个 Boson, 全都处于 $|\alpha\rangle$ 态. 在 $\{|\alpha\rangle
, |\beta\rangle\}$ 基底下
\begin{align}
|\Psi_{\mathrm{3-particles}} \rangle &amp;= \frac{1}{\sqrt{3! 3!}} \cdot 3! |\alpha, \alpha, \alpha) \\
  &amp;\sim (1, 0, 0, 0, 0, 0, 0, 0)^T
\end{align}
density opertor and density matrix
\begin{align}
\hat{\rho}_3 \sim \begin{pmatrix}
            1 &amp; 0 &amp; 0 &amp; 0 &amp; 0 &amp; 0 &amp; 0 &amp; 0 \\
            0 &amp; 0 &amp; 0 &amp; 0 &amp; 0 &amp; 0 &amp; 0 &amp; 0 \\
            0 &amp; 0 &amp; 0 &amp; 0 &amp; 0 &amp; 0 &amp; 0 &amp; 0 \\
            0 &amp; 0 &amp; 0 &amp; 0 &amp; 0 &amp; 0 &amp; 0 &amp; 0 \\
            0 &amp; 0 &amp; 0 &amp; 0 &amp; 0 &amp; 0 &amp; 0 &amp; 0 \\
            0 &amp; 0 &amp; 0 &amp; 0 &amp; 0 &amp; 0 &amp; 0 &amp; 0 \\
            0 &amp; 0 &amp; 0 &amp; 0 &amp; 0 &amp; 0 &amp; 0 &amp; 0 \\
            0 &amp; 0 &amp; 0 &amp; 0 &amp; 0 &amp; 0 &amp; 0 &amp; 0
           \end{pmatrix}
\end{align}

\begin{align}
\hat{\rho}_1 \sim 3  \begin{pmatrix}
            1 &amp; 0\\
            0 &amp; 0\\
         \end{pmatrix}
\end{align}
可以发现 $\rho_1$ 的对角元表示每个本征态上的粒子数&lt;/blockquote&gt;

&lt;blockquote&gt;Example 2: 3 Bosons

$2$ 个本征态, $\{|\alpha\rangle , |\beta\rangle\}$ , 3 个 Boson (记为 $A, B, C$ ), 两个处于 $|\alpha\rangle$ 态,
一个处于 $|\beta\rangle$ 在 $\{|\alpha\rangle , |\beta\rangle\}$ 基底下(如果我没算错的话)
\begin{align}
\hat{\rho}_3 \sim\rho_3=  \frac{2!}{3!}\begin{pmatrix}
            0 &amp; 0 &amp; 0 &amp; 0 &amp; 0 &amp; 0 &amp; 0 &amp; 0 \\
            0 &amp; 1 &amp; 1 &amp; 0 &amp; 1 &amp; 0 &amp; 0 &amp; 0 \\
            0 &amp; 1 &amp; 1 &amp; 0 &amp; 1 &amp; 0 &amp; 0 &amp; 0 \\
            0 &amp; 0 &amp; 0 &amp; 0 &amp; 0 &amp; 0 &amp; 0 &amp; 0 \\
            0 &amp; 1 &amp; 1 &amp; 0 &amp; 1 &amp; 0 &amp; 0 &amp; 0 \\
            0 &amp; 0 &amp; 0 &amp; 0 &amp; 0 &amp; 0 &amp; 0 &amp; 0 \\
            0 &amp; 0 &amp; 0 &amp; 0 &amp; 0 &amp; 0 &amp; 0 &amp; 0 \\
            0 &amp; 0 &amp; 0 &amp; 0 &amp; 0 &amp; 0 &amp; 0 &amp; 0
           \end{pmatrix}
\end{align}
两体密度矩阵
\begin{align}
\hat{\rho}_2 \sim\rho_2 = 3(3-1)\mathrm{Tr}_C\rho_{3}
          = 3(3-1)\frac{2!}{3!}\begin{pmatrix}
            1 &amp; 0 &amp; 0 &amp; 0 \\
            0 &amp; 1 &amp; 1 &amp; 0 \\
            0 &amp; 1 &amp; 1 &amp; 0 \\
            0 &amp; 0 &amp; 0 &amp; 0 \\
           \end{pmatrix}
\end{align}
单体密度矩阵
\begin{align}
\hat{\rho}_1 \sim\rho_1 = 3\mathrm{Tr}_{BC}\rho_{3}
          = 3\frac{2!}{3!}\begin{pmatrix}
            2 &amp; 0 \\
            0 &amp; 1 \\
           \end{pmatrix}
\end{align}&lt;/blockquote&gt;
&lt;p&gt;再次验证了 $\rho_1$ 的对角元表示每个本征态上的粒子数. 此即 Hui Zhai 书上的 Eq.(3.7)&lt;/p&gt;

$$\begin{align}
\rho(\vec{r}, \vec{r}') = \sum_i N_i \psi_i^{*} (\vec{r}) \psi_i(\vec{r}')
\end{align}$$



&lt;h2&gt;Mixed state&lt;/h2&gt;

&lt;p&gt;上述内容均在纯态中讨论, 可以容易地推广到混合态.&lt;/p&gt;

&lt;h2&gt;Reference&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;J. J. Sakurai &amp; Jim Napolitano, Modern Quantum Mechanics, second edition. Chap 3.4, dneisyt operators and pure versus mixed ensembles&lt;/li&gt;
&lt;li&gt;MIT Open Courses: &lt;a href='https://ocw.mit.edu/courses/physics/8-421-atomic-and-optical-physics-i-spring-2014/'&gt;Atomic and Optical Physics I&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Negele, J. W. &amp; Orland, H. Quantum many-particle systems. (Perseus Books, 1998). Chapter 1&lt;/li&gt;
&lt;li&gt;$|\rangle\langle|$ 对应 [[eww:https://en.wikipedia.org/wiki/Outer_product][Outer product]] , $\otimes$ 对应 &lt;a href='https://en.wikipedia.org/wiki/Tensor_product'&gt;Tensor product of linear maps&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Yang, C. N. Concept of Off-Diagonal Long-Range Order and the Quantum Phases of Liquid He and of Superconductors. Rev. Mod. Phys. 34, 694–704 (1962). 文章中 $\mathrm{Sp}$ 即为迹 $\mathrm{Tr}$ , 参见 &lt;a href='https://de.wikipedia.org/wiki/Spur_(Mathematik)'&gt;Spur&lt;/a&gt; .&lt;/li&gt;
&lt;li&gt;&lt;a href='https://en.wikipedia.org/wiki/Partial_trace'&gt;Partial trace&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Zhai, H. Ultracold atomic physics. (Cambridge University Press, 2020).&lt;/li&gt;
&lt;/ul&gt;
</content><category term="专业笔记"/><category term="density matrix"/><category term="reduced dnesity matrix"/></entry><entry><title>Atomic and Optical Physics I, 06 Atoms II: Hydrogen</title><link href="https://zqw.ink/2021-12-14-physics-mitamo06.html" rel="alternate"/><published>2021-12-14T00:00:00+08:00</published><updated>2021-12-14T00:00:00+08:00</updated><author><name>ZQW</name></author><id>tag:zqw.ink,2021-12-14:/2021-12-14-physics-mitamo06.html</id><summary type="html">
&lt;h2&gt;Information&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;官方介绍: https://ocw.mit.edu/courses/physics/8-421-atomic-and-optical-physics-i-spring-2014/&lt;/li&gt;
&lt;li&gt;视频列表地址: https://www.youtube.com/playlist?list=PLUl4u3cNGP62FPGcyFJkzhqq9c5cHCK32&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Atomic units&lt;/h2&gt;

&lt;p&gt;Natural units, atomic units.&lt;/p&gt;

&lt;p&gt;In atomic units, &lt;em&gt;no speed of light $c$&lt;/em&gt; , because there is no speed of light in
Schrodinger Equation. So …&lt;/p&gt;</summary><content type="html">
&lt;h2&gt;Information&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;官方介绍: https://ocw.mit.edu/courses/physics/8-421-atomic-and-optical-physics-i-spring-2014/&lt;/li&gt;
&lt;li&gt;视频列表地址: https://www.youtube.com/playlist?list=PLUl4u3cNGP62FPGcyFJkzhqq9c5cHCK32&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Atomic units&lt;/h2&gt;

&lt;p&gt;Natural units, atomic units.&lt;/p&gt;

&lt;p&gt;In atomic units, &lt;em&gt;no speed of light $c$&lt;/em&gt; , because there is no speed of light in
Schrodinger Equation. So, atomic units&lt;/p&gt;
&lt;blockquote&gt;- charge of electron: $e$
- mass of electron: $m$
- $h$&lt;/blockquote&gt;

&lt;p&gt;Length (Bohr radius): $a_0 = \frac{\hbar^2}{m e^2}$&lt;/p&gt;

&lt;p&gt;Energy (One Hartree 27.2 eV):
$\frac{e^4m}{\hbar^2} = \left( \frac{e^2}{\hbar c} \right)^2m^2c^2 = \alpha^2m c^2$ , where $\alpha =
1/137$ .&lt;/p&gt;

&lt;p&gt;Velocity: $mv^2 = \frac{e^4m}{\hbar^2}$ , $v = \frac{e^2}{\hbar} = \alpha c$&lt;/p&gt;

&lt;p&gt;Electric field: $\frac{e}{a_0^2} = 5.1\times 10^9 \mathrm{V/cm}$&lt;/p&gt;

&lt;h2&gt;Fine-structure constant: $\alpha$&lt;/h2&gt;

&lt;p&gt;The fundamental constant which should ultimately be predicted by a complete
theory.&lt;/p&gt;

&lt;p&gt;$\alpha \ll 1$ means: electromagnetic interactions are weak.&lt;/p&gt;

&lt;p&gt;If energy uncertainties become $\Delta E = mc^2$ , then the concept of single
particles breaks down. $\Delta E = mc^2 \Rightarrow \Delta p \sim m c, \Delta x \sim \frac{\hbar}{mc} =
\lambda_{\mathrm{Compton}}$ .&lt;/p&gt;

&lt;p&gt;Coulomb interaction at $\lambda_{\mathrm{Compton}}$ :
$E_{\mathrm{Compton}} = \frac{e^2}{\lambda_{\mathrm{Compton}}} = \frac{e^2mc}{\hbar}$&lt;/p&gt;

&lt;p&gt;So, "strongest" Coulomb interaction&lt;/p&gt;

$$\begin{align}
\frac{E_{\mathrm{Compton}}}{mc^2} = \frac{\frac{e^2mc}{\hbar}}{mc^2}
  = \frac{e^2}{\hbar c} = \alpha
\end{align}$$


&lt;h2&gt;One electron atoms with cores&lt;/h2&gt;

&lt;p&gt;&lt;p&gt;&lt;img src='2021-12-14-physics-MITAMO06/alkali.png' alt='figalt' max-width:100%&gt;&lt;p&gt;&lt;/p&gt;


$$\begin{align}
E_n \sim \frac{R}{n^2}
\end{align}$$


&lt;p&gt;What is the leading correction to the properties of this atom due to the fact
that we have an ionic core instead of a proton?&lt;/p&gt;

&lt;p&gt;receives correction&lt;/p&gt;

&lt;blockquote&gt;- A. $\frac{R}{n^2} + \delta$
- B. $\frac{R}{n^2} + \frac{\delta}{n^2}$
- C. $\frac{R}{n^2} + \frac{\delta}{n^3}$
- D. $\frac{R}{(n - \delta)^2}$&lt;/blockquote&gt;
&lt;p&gt;C, D are both right.&lt;/p&gt;

&lt;p&gt;Derivation:&lt;/p&gt;

&lt;p&gt;Perturbation theory&lt;/p&gt;

$$\begin{align}
\psi_{nl}(r) \overset{r \to 0}{\rightarrow} r^l \frac{1}{n^{3/2}}
\end{align}$$



$$\begin{align}
H = H_0 + H'
\end{align}$$

&lt;p&gt;$H'$ is localizes around origin, so&lt;/p&gt;

$$\begin{align}
\Delta E_n = \langle \psi_{nl} | H' | \psi_{nl} \rangle\propto \frac{1}{n^3}
\end{align}$$

&lt;p&gt;exact $\frac{\delta_l2R}{n^3}$ . this means&lt;/p&gt;

$$\begin{align}
- E_n = \frac{R}{n^2} + \frac{2 R\delta_l}{n^3}
  = \frac{R}{(n - \delta_l)^2}
\end{align}$$

&lt;p&gt;$\delta_l$ : quantum defect.&lt;/p&gt;

&lt;p&gt;Other derivations: JWKB , model $H' \propto \frac{1}{r^2}$ .&lt;/p&gt;

&lt;h2&gt;Spectroscopic notation&lt;/h2&gt;

&lt;p&gt;Isolated atom. We have (good) quantum number $J, M_{J}$ , we call&lt;/p&gt;

&lt;blockquote&gt;one level has $2J + 1$ sublevels(or states)&lt;/blockquote&gt;

&lt;p&gt;$\vec{J}$ can have contributions from several $e^-$ , from spin $\vec{S}$
and orbital angular momentum $\vec{L}$&lt;/p&gt;

&lt;p&gt;Often(light atoms), the different electrons umndergo LS coupling.&lt;/p&gt;

$$\begin{align}
\vec{L} = \sum \vec{l}_i , \quad \vec{S} = \sum \vec{s}_i
\end{align}$$

&lt;p&gt;So let's assume we have an atom which has total angular momentum $J$ , which is
the sum of  orbital angular momentum and spin&lt;/p&gt;

$$\begin{align}
\vec{J} = \vec{L} + \vec{S}
\end{align}$$

&lt;p&gt;in this case a level is designated by&lt;/p&gt;

$$\begin{align}
^{2S + 1}L_{J}, \quad L = S, P, D, \cdots
\end{align}$$


&lt;p&gt;Hydrogenic atom: preceed term by the principal quantum number n.&lt;/p&gt;
&lt;blockquote&gt;Example:

Na( $n = 3$ )
\begin{align}
3^2S_{1/2}
\end{align}
first excited states
\begin{align}
3^2P_{1/2, 3/2}
\end{align}&lt;/blockquote&gt;
&lt;p&gt;sometimes one specifies the configuration&lt;/p&gt;

$$\begin{align}
1s^2, 2s^2, 2p\cdots
\end{align}$$

&lt;p&gt;products of symbols $nl^m$ .&lt;/p&gt;

&lt;p&gt;Na: $1s^22s^22p^63s$&lt;/p&gt;

&lt;h2&gt;The helium atom: effects of two electrons&lt;/h2&gt;

&lt;p&gt;Ref: Sec1 Conhen-Tannoudji QM, Gasiorowicz&lt;/p&gt;

&lt;h3&gt;Ground states&lt;/h3&gt;

&lt;p&gt;If we regard it as a hydrogen problem, and we put two electrons into the $1s$
state ( $(1s)^2$ ), we would expect that, based on the hydrogenic model, the
binding energy of that is, per electron, $13.6Z^2 = 54.4 \mathrm{eV}$ . So that
would mean that the binding energy of the ground states is $-108 \mathrm{eV}$
. However, the experimental result is $- 79 \mathrm{eV}$ . So we find that there
is a big discrepancy of $29 \mathrm{eV}$&lt;/p&gt;

$$\begin{align}
-108 &amp; \mathrm{eV} \\
-79  &amp; \mathrm{eV} \\
---------&amp;---- \\
29   &amp; \mathrm{eV}
\end{align}$$

&lt;p&gt;We neglected $e^--e^{-}$ interactions! Perturbation operator&lt;/p&gt;

$$\begin{align}
V' = \frac{e^2}{r_{12}}
\end{align}$$


$$\begin{align}
\psi_G = \psi_{100}(1)\psi_{100}(2)
\end{align}$$


$$\begin{align}
\Delta E = \langle \psi_G | V' | \psi_G\rangle = 34 \mathrm{eV}
\end{align}$$

&lt;p&gt;removes most of the discrepancy!&lt;/p&gt;

&lt;p&gt;Improve by variations wavefunction $Z \to Z^{*}$ .&lt;/p&gt;

&lt;h3&gt;First excited states&lt;/h3&gt;

&lt;p&gt;Starting again with the hydrogenic model. In hydrogen, the 2s and 2p state are
degenerate, so we have two configurations contributing to the same energy, 1s2s
and 1s2p . The binding energy in the hydrogen model is a quarter of a Rydberg
$3.4 \mathrm{eV}$ . We have to scale it by $Z^2$ , and we find $13.6 \mathrm{eV}$
.&lt;/p&gt;

&lt;p&gt;But now what happens is that we have to introduce the Coulomb energy between
the electrons. And if you do that, it shifts up the levels in different ways. So
why it is different?&lt;/p&gt;

&lt;p&gt;You have two electrons, and you have the helium nucleus. First you put in the 1s
electron, and now the second electron, when it is in a 2p state, it's further
out. And it pretty much experiences the charge of the helium nucleus shielded by
the 1s electron, and therefore, it sees in effect a smaller nuclear
charge. Whereas, the 2s electron penetrates deeper, gets closer to the nucleus
and will still realize that the nucleus has a charge of 2, and not a shielded
charge. So, therefore, you would expect that the shielding effect due to the
innermost electron is more important, has a bigger effect for 2p electron than
for the 2s electron. And therefore, *the 2p electron has a smaller binding
energy* . It's actually comparable to the binding energy of the 2p state in
hydrogen (4eV). And this effect is smaller for 2s state.&lt;/p&gt;

&lt;p&gt;But now, each level under goes further splitting. We will have two different
terms for (1s2s), one is singlet $^1S_0$ , and one is triplet $^3S_1$ . And this
splitting is $0.8 \mathrm{eV}$ . The same for 1s2p $^3P_{2, 1, 0}$ , $^1P_1$ . the
splitting is also on the order of an eV (0.25 eV).&lt;/p&gt;

&lt;p&gt;How can the spin cause a splitting? Because the spin so far has not appeared in
our Hamiltonian. We really have a Hamiltonian which has only the Coulomb energy,
and the spin is not part of it. We don't have a magnetic field, to which the
magnetic momentum of the spin would couple. And also we have not yet introduced
spin orbit coupling. But if this is on you mind, take it off you mind. Spin
orbit coupling is a much, much smaller effect. Energies on the order of 1
electron volt, you just cannot get from spin orbit coupling. Spin orbit coupling
is smaller that electronic energies. It is smaller by the fine structure
constant. So the typical scale for spin orbit coupling is much smaller.&lt;/p&gt;

&lt;p&gt;So, we are focusing now on the splitting.&lt;/p&gt;

&lt;p&gt;Wave function $\psi_{S, A}\times \mathrm{SPIN}$&lt;/p&gt;

$$\begin{align}
\psi_{S, A} = \frac{1}{\sqrt{2}}
  \left[ \psi_{100}(r_1)\psi_{200}(r_2) \pm \psi_{100}(r_2)\psi_{200}(r_1) \right]
\end{align}$$

&lt;p&gt;$S$ : symmetry spatial WF, $S = 0$ , $^1S_0$ . $A$ : antisymmetry spatial WF, $S
= 1$ , $^3S_1$ .&lt;/p&gt;

&lt;p&gt;As long as we have non-interacting electron, the two wave functions are
degenerate. But now we want to bring in the Coulomb energy between the two
electrons $\frac{e^2}{r_{12}}$&lt;/p&gt;

$$\begin{align}
\Delta E =&amp; \frac{1}{2}\int \int \frac{e^2}{r_{12}}
    \left[|\psi_{100}(r_1)|^2|\psi_{200}(r_2)|^2 + (r_1\leftrightarrow r_{2})\right]
   \pm \frac{1}{2}\int \int \frac{e^2}{r_{12}}
   \left[\psi_{100}^{*}(r_1)\psi_{200}^{*}(r_2) \psi_{100}(r_2)\psi_{200}(r_1)+ (r_1\leftrightarrow r_{2})\right] \\
 =&amp; \Delta E^{\mathrm{Coul}} \pm \Delta E^{\mathrm{exch}}
\end{align}$$

&lt;p&gt;$\Delta E^{\mathrm{exch}}$ DEPENDS on spin. Triplet state has lower energy, because
antisymetirc spatal WF reduces the $e^--e^-$ repulsive interaction. This can be
written as ( $S = 0, 1$ )&lt;/p&gt;

$$\begin{align}
\Delta E = \alpha + \beta \vec{S}_1\cdot \vec{S}_2
\end{align}$$

&lt;p&gt;use&lt;/p&gt;

$$\begin{align}
2\vec{S}_1\cdot \vec{S}_2 = - \vec{S}_1^{2} - \vec{S}_2^{2} + \vec{S}^2
\end{align}$$

&lt;p&gt;we get&lt;/p&gt;

$$\begin{align}
\Delta E = (\alpha - \frac{1}{4}\beta) \pm (-\frac{\beta}{2})
\end{align}$$

&lt;p&gt;where $\alpha - \frac{1}{4}\beta = \Delta E^{\mathrm{Coul}}, -\frac{\beta}{2} = \Delta
E^{\mathrm{exch}}$ . &lt;em&gt;It looks like a ferromagnetic spin-spin interaction.&lt;/em&gt; And
well, it looks like it, it is actually an effective ferromagnetic spin-spin
interaction. However, the coupling is purely electrostatic, not magnetic.&lt;/p&gt;

&lt;p&gt;&lt;p&gt;&lt;img src='2021-12-14-physics-MITAMO06/helium.png' alt='figalt' max-width:100%&gt;&lt;p&gt;&lt;/p&gt;

&lt;h2&gt;New feature of two electrons&lt;/h2&gt;

&lt;p&gt; What about possible transitions between triplet and singlet?&lt;/p&gt;

&lt;p&gt; Question: What Fields(couplings) drive singlet-triplet transition?&lt;/p&gt;

&lt;p&gt; - A. optical fields (dipole operator)
 - B. rotating magnetic fields
 - C. boths
 - D. none&lt;/p&gt;

&lt;p&gt;&lt;p&gt;&lt;img src='2021-12-14-physics-MITAMO06/intercombination.png' alt='figalt' max-width:100%&gt;&lt;p&gt;&lt;/p&gt;

&lt;p&gt;ANSWER: $\Delta S = 0$ , selection rule.  Dipole operator acts only on spatial WF,
NOT in spin part. Transverse B fields: $S_x, S_y, S_{x, y} = (S^+ \pm S^-)/\sqrt{2}$
, so $|S| = \mathrm{const}$ .&lt;/p&gt;



&lt;h2&gt;Reference&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href='https://en.wikipedia.org/wiki/WKB_approximation'&gt;wikipedia: WKB approximation&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href='https://en.wikipedia.org/wiki/Stephen_Gasiorowicz'&gt;wikipedia: Gasiorowicz&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href='https://physics.stackexchange.com/questions/312312/why-is-helium-ground-state-a-singlet'&gt;StackExchange: Why is Helium ground state a singlet?&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href='http://hyperphysics.phy-astr.gsu.edu/hbase/quantum/helium.html'&gt;Helium Energy Levels&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</content><category term="专业笔记"/><category term="Atomic and Optical Physics"/><category term="quantum defect"/><category term="helium"/><category term="fine structure constant"/><category term="effective ferromagnetic spin-spin interaction"/></entry><entry><title>scipy 数值求解微分方程, 方程组, 复微分方程组</title><link href="https://zqw.ink/2021-12-09-coding-py_ode.html" rel="alternate"/><published>2021-12-09T00:00:00+08:00</published><updated>2021-12-09T00:00:00+08:00</updated><author><name>ZQW</name></author><id>tag:zqw.ink,2021-12-09:/2021-12-09-coding-py_ode.html</id><summary type="html">
&lt;p&gt;Some examples&lt;/p&gt;

&lt;h2&gt;1D Real&lt;/h2&gt;


$$\begin{align}
\frac{\mathrm{d}}{\mathrm{d}t}y(t) = 2 t y(t)
\end{align}$$

&lt;p&gt;exact solution is&lt;/p&gt;

$$\begin{align}
y(t) = e^{t^2}y(0)
\end{align}$$


&lt;pre&gt;&lt;code class="language-python"&gt;import numpy as np
import matplotlib.pyplot as plt
from scipy.integrate import odeint


def dy_dt …&lt;/code&gt;&lt;/pre&gt;</summary><content type="html">
&lt;p&gt;Some examples&lt;/p&gt;

&lt;h2&gt;1D Real&lt;/h2&gt;


$$\begin{align}
\frac{\mathrm{d}}{\mathrm{d}t}y(t) = 2 t y(t)
\end{align}$$

&lt;p&gt;exact solution is&lt;/p&gt;

$$\begin{align}
y(t) = e^{t^2}y(0)
\end{align}$$


&lt;pre&gt;&lt;code class="language-python"&gt;import numpy as np
import matplotlib.pyplot as plt
from scipy.integrate import odeint


def dy_dt(y, t):
    return 2*t*y


ts = np.linspace(0, 1, 40)
y0 = 1
ys = odeint(dy_dt, y0, ts)

plt.plot(ts, ys, 'o', label='numerical')
plt.plot(ts, np.exp(ts**2)*y0, label='analytical')
plt.legend()
plt.xlabel('t')
plt.ylabel('y(t)')
plt.savefig('1d.png')&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;a href='2021-12-09-coding-py_ode/1d-real.py'&gt;2021-12-09-coding-py_ode/1d-real.py&lt;/a&gt;
&lt;p&gt;&lt;img src='2021-12-09-coding-py_ode/1d-real.png' alt='figalt' max-width:100%&gt;&lt;p&gt;&lt;/p&gt;

&lt;h2&gt;1D Complex&lt;/h2&gt;


$$\begin{align}
\frac{d}{\mathrm{d}t}\psi = f(t) \psi
\end{align}$$

&lt;p&gt;Write as&lt;/p&gt;

$$\begin{align}
\frac{\mathrm{d}}{\mathrm{d}t}
    \begin{pmatrix}
     \mathrm{Re}\psi(t) \\ \mathrm{Im}\psi(t)
    \end{pmatrix}
      =
    \begin{pmatrix}
       \mathrm{Re} f(t) &amp; -\mathrm{Im} f(t)\\
       \mathrm{Im} f(t) &amp; \mathrm{Re} f(t)
    \end{pmatrix}
    \begin{pmatrix}
     \mathrm{Re}\psi(t) \\ \mathrm{Im}\psi(t)
    \end{pmatrix}
\end{align}$$

&lt;p&gt;For example&lt;/p&gt;

$$\begin{align}
\frac{d}{\mathrm{d}t}\psi = \mathrm{i}\omega \psi
\end{align}$$

&lt;p&gt;exact solution is&lt;/p&gt;

$$\begin{align}
\psi = e^{\mathrm{i}(\omega t + \phi_0)}
\end{align}$$




&lt;pre&gt;&lt;code class="language-python"&gt;import numpy as np
import matplotlib.pyplot as plt
from scipy.integrate import odeint


omega = 1


def dPsi_dt(Psi, t, omega=omega):
    re = 0
    im = omega
    m = [[re, -im], [im, re]]
    return np.dot(m, Psi)


ts = np.linspace(0, 10, 51)
phi0 = 1
Psi0 = [np.cos(phi0), np.sin(phi0)]
Psis = odeint(dPsi_dt, Psi0, ts)

plt.plot(ts, Psis[:, 0], 'o', label=r'numerical  $\mathrm{Re}\psi(t)$')
plt.plot(ts, Psis[:, 1], 'o', label=r'numerical  $\mathrm{Im}\psi(t)$')
plt.plot(ts, np.cos(omega*ts + phi0), '-',
         label=r'analytical  $\mathrm{Re}\psi(t)$')
plt.plot(ts, np.sin(omega*ts + phi0), '-',
         label=r'analytical  $\mathrm{Im}\psi(t)$')
plt.xlabel('t')
plt.legend()
plt.savefig('1d-complex.png')&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;a href='2021-12-09-coding-py_ode/1d-complex.py'&gt;2021-12-09-coding-py_ode/1d-complex.py&lt;/a&gt;
&lt;p&gt;&lt;img src='2021-12-09-coding-py_ode/1d-complex.png' alt='figalt' max-width:100%&gt;&lt;p&gt;&lt;/p&gt;


&lt;h2&gt;2D Real&lt;/h2&gt;

&lt;p&gt;A Van der Pol oscillator&lt;/p&gt;

$$\begin{align}
\frac{\mathrm{d}^2}{\mathrm{d}t^2}x(t)
  - \mu\left[1 - x(t)^2\right] \frac{\mathrm{d}}{\mathrm{d}t}x(t) + x(t) =0
\end{align}$$

&lt;p&gt;Can write as&lt;/p&gt;

$$\begin{align}
\frac{\mathrm{d}}{\mathrm{d}t}
   \begin{pmatrix}
    x(t) \\ x'(t)
   \end{pmatrix}
     =
   \begin{pmatrix}
    x'(t) \\
    \mu\left[1 - x(t)^2\right] x'(t) - x(t)
   \end{pmatrix}
\end{align}$$


&lt;pre&gt;&lt;code class="language-python"&gt;import numpy as np
from matplotlib import pyplot as plt
from matplotlib import animation
from scipy.integrate import odeint


def dX_dt(X, t, mu=5):
    return [X[1], mu*(1 - X[0]**2)*X[1] - X[0]]


ts = np.linspace(0, 30, 1000)
X0 = [0, 0.1]
Xs = odeint(dX_dt, X0, ts)


fig, ax = plt.subplots()
line1, = ax.plot(Xs[0, 0], Xs[0, 1], 'o')
line2, = ax.plot(Xs[0, 0], Xs[0, 1], '-')
time_tags = ax.text(-1.5, 4, r'$t = 0$', fontsize=20)


def ani(i):
    line1.set_data(Xs[i, 0], Xs[i, 1])
    line2.set_data(Xs[:i, 0], Xs[:i, 1])
    time_tags.set_text(r'$t=$' + f'{i:n}')
    return None


ax.set_xlim(min(Xs[:, 0]), max(Xs[:, 0]))
ax.set_ylim(min(Xs[:, 1]), max(Xs[:, 1]))
plt.xlabel(r'$x(t)$')
plt.ylabel(r'$x\prime(t)$')
anifig = animation.FuncAnimation(fig=fig, func=ani, frames=len(Xs),
                                 interval=.1)
ax.grid()
anifig.save('2d-real.gif', writer='imagemagick')&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;a href='2021-12-09-coding-py_ode/2d-real.py'&gt;2021-12-09-coding-py_ode/2d-real.py&lt;/a&gt;
&lt;p&gt;&lt;img src='2021-12-09-coding-py_ode/2d-real.gif' alt='figalt' max-width:100%&gt;&lt;p&gt;&lt;/p&gt;

&lt;h2&gt;2D Complex&lt;/h2&gt;

&lt;p&gt;Rabi oscillation(ref: another post)&lt;/p&gt;

$$\begin{align*}
  \mathrm{i}\hbar\dot{c}_1 =&amp;
       \gamma e^{\mathrm{i}(\omega-\omega_{21})t} c_2 \tag{1}\\
    \mathrm{i}\hbar\dot{c}_2 =&amp;\gamma e^{-\mathrm{i}(\omega-\omega_{21})t}  c_1\tag{2}
\end{align*}$$

&lt;p&gt;exact solution is&lt;/p&gt;

$$\begin{align}
  |c_2(t)|^2 = \frac{1}{1+\frac{\hbar^2(\omega-\omega_{21})^2}{4\gamma^2}}\sin^2\left(
  \Omega t \right)
\end{align}$$

&lt;p&gt;where&lt;/p&gt;

$$\begin{align}
  \Omega = \sqrt{\frac{(\omega-\omega_{21})^2}{4}+\frac{\gamma^2}{\hbar^2}}
\end{align}$$


&lt;p&gt;In numerical calculation, we set $\hbar = 1, \gamma = 1, \Delta\omega = \omega - \omega_{21}$ , then&lt;/p&gt;

$$\begin{align}
\frac{\mathrm{d}}{\mathrm{d}t}
   \begin{pmatrix}
     \mathrm{Re} c_1 \\  \mathrm{Im} c_1 \\ \mathrm{Re}c_2 \\ \mathrm{Im}c_2
   \end{pmatrix}
      =
   \begin{pmatrix}
      0 &amp; 0 &amp; \sin\Delta\omega t &amp; \cos\Delta\omega t \\
      0 &amp; 0 &amp; -\cos\Delta\omega t &amp; \sin\Delta\omega t \\
      -\sin\Delta\omega t &amp; \cos\Delta\omega t  &amp; 0 &amp; 0 \\
      -\cos\Delta\omega t &amp; -\sin\Delta\omega t &amp; 0 &amp; 0 \\
   \end{pmatrix}
   \begin{pmatrix}
     \mathrm{Re} c_1 \\  \mathrm{Im} c_1 \\ \mathrm{Re}c_2 \\ \mathrm{Im}c_2
   \end{pmatrix}
\end{align}$$


&lt;pre&gt;&lt;code class="language-python"&gt;import numpy as np
import matplotlib.pyplot as plt
from scipy.integrate import odeint


domega = 1


def dC_dt(C, t, domega=domega):
    '''C = [Re c1, Im c1, Re c2, Im c2]'''
    s = np.sin(domega*t)
    c = np.cos(domega*t)
    m = [[0, 0, s, c],
         [0, 0, -c, s],
         [-s, c, 0, 0],
         [-c, -s, 0, 0]]
    return np.dot(m, C)


ts = np.linspace(0, 5, 51)
C0 = [1, 0, 0, 0]
Cs = odeint(dC_dt, C0, ts)


plt.plot(ts, Cs[:, 0]**2+Cs[:, 1]**2, 'o', label=r'numerical $|c_1(t)|^2$')
plt.plot(ts, Cs[:, 2]**2+Cs[:, 3]**2, 'o', label=r'numerical $|c_2(t)|^2$')

plt.plot(ts, np.sin(np.sqrt(domega**2/4 + 1)*ts)**2 / (1 + domega**2/4),
         label=r'analytical $|c_2(t)|^2$')
plt.ylim(0, 1.3)
plt.legend()
plt.xlabel(r'$t$')
plt.savefig('2d-complex.png')&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;file:2021-12-09-coding-py_ode/2d-complex.py
&lt;p&gt;&lt;img src='2021-12-09-coding-py_ode/2d-complex.png' alt='figalt' max-width:100%&gt;&lt;p&gt;&lt;/p&gt;

&lt;h2&gt;Reference&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href='https://docs.scipy.org/doc/scipy/reference/generated/scipy.integrate.odeint.html'&gt;scipy.integrate.odeint&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href='https://en.wikipedia.org/wiki/Van_der_Pol_oscillator'&gt;wikipedia: Van der Pol oscillator&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</content><category term="软件使用"/><category term="python"/><category term="ode"/><category term="Rabi"/><category term="Van der Pol oscillator"/></entry><entry><title>Atomic and Optical Physics I, 05 Resonance V and Atoms I</title><link href="https://zqw.ink/2021-11-24-physics-mitamo05.html" rel="alternate"/><published>2021-11-24T00:00:00+08:00</published><updated>2021-11-24T00:00:00+08:00</updated><author><name>ZQW</name></author><id>tag:zqw.ink,2021-11-24:/2021-11-24-physics-mitamo05.html</id><summary type="html">
&lt;h2&gt;Information&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;官方介绍: https://ocw.mit.edu/courses/physics/8-421-atomic-and-optical-physics-i-spring-2014/&lt;/li&gt;
&lt;li&gt;视频列表地址: https://www.youtube.com/playlist?list=PLUl4u3cNGP62FPGcyFJkzhqq9c5cHCK32&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Need for Density Operator&lt;/h2&gt;

&lt;p&gt;Schrodinger Equations deals only with pure states, can not describe loss and
coherence.&lt;/p&gt;

&lt;p&gt;Exception:
&lt;p&gt;&lt;img src='2021-11-24-physics-MITAMO05/loss.png' alt='figalt' max-width:100%&gt;&lt;p&gt;&lt;/p&gt;

&lt;p&gt;can be still use a Hamiltonian with …&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;</summary><content type="html">
&lt;h2&gt;Information&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;官方介绍: https://ocw.mit.edu/courses/physics/8-421-atomic-and-optical-physics-i-spring-2014/&lt;/li&gt;
&lt;li&gt;视频列表地址: https://www.youtube.com/playlist?list=PLUl4u3cNGP62FPGcyFJkzhqq9c5cHCK32&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Need for Density Operator&lt;/h2&gt;

&lt;p&gt;Schrodinger Equations deals only with pure states, can not describe loss and
coherence.&lt;/p&gt;

&lt;p&gt;Exception:
&lt;p&gt;&lt;img src='2021-11-24-physics-MITAMO05/loss.png' alt='figalt' max-width:100%&gt;&lt;p&gt;&lt;/p&gt;

&lt;p&gt;can be still use a Hamiltonian with complex eigenvalues. 因为这种情况下我们只关
心 $|e\rangle, |g\rangle$ 两个态, 不关心 decay 到的态&lt;/p&gt;

$$\begin{align}
  E_g \rightarrow E_g + \frac{\mathrm{i}\Gamma_{gl}}{2}
\end{align}$$


&lt;p&gt;However, many other proceesses require density matrix, such as spontaneous
emission
&lt;p&gt;&lt;img src='2021-11-24-physics-MITAMO05/spontaneous.png' alt='figalt' max-width:100%&gt;&lt;p&gt;
因为此时我们对两个态都关心.&lt;/p&gt;

&lt;h2&gt;Density Operator&lt;/h2&gt;

&lt;p&gt;把态 $|\psi\rangle$ 在基底下展开&lt;/p&gt;

$$\begin{align}
|\psi(t)\rangle = \sum_n c_n(t) |\psi_n\rangle
\end{align}$$

&lt;p&gt;Operator $A$ 的期望为&lt;/p&gt;

$$\begin{align}
\langle A\rangle_t =&amp; \langle \psi(t) | A | \psi(t)\rangle = \sum_{m, n} c_m(t) c_n^{*}(t)A_{nm} \\
  =&amp; \sum_{m, n} \rho_{mn}(t) A_{nm} = \mathrm{Tr}(\rho(t) A)
\end{align}$$

&lt;p&gt;where&lt;/p&gt;

$$\begin{align}
A_{nm} =&amp; \langle \psi_n |A|\psi_m\rangle \\
\rho_{mn} =&amp; c_m(t) c_n^{*}(t) \\
\rho(t) =&amp; |\psi(t)\rangle \langle\psi(t)|
\end{align}$$

&lt;p&gt;$\rho_{mn}$ : populations, $\rho_{mm}$ : coherence.&lt;/p&gt;

&lt;p&gt;Now, 考虑一个混合态 $\sum_i P_i|\psi_i(t)\rangle = \sum_i\sum_n P_ic_n^i(t)|\psi_n\rangle$ , 相应的&lt;/p&gt;

$$\begin{align}
\rho(t) = \sum_i P_i |\psi_i(t)\rangle \langle\psi_i(t)|
\end{align}$$

&lt;p&gt;此时 $A$ 的期望为还可以写为&lt;/p&gt;

$$\begin{align}
\langle A\rangle_t = \mathrm{Tr}(\rho(t) A)
\end{align}$$

&lt;p&gt;不过此时 $\langle A\rangle$ 有 two averages: quantum average, ensemble average with $P_i$
. The advantage of the density matrix formalism is that two kinds of averages
can be done simultaneously in a very compact formalism!&lt;/p&gt;

&lt;p&gt;Apply Schrodinger equation to each $\psi_i$ , we get&lt;/p&gt;

$$\begin{align}
\mathrm{i}\hbar \dot{\rho} = [H, \rho]
\end{align}$$


&lt;p&gt;Properties&lt;/p&gt;

$$\begin{align}
\mathrm{Tr} \rho =&amp; \sum_iP_i = 1 \\
\mathrm{Tr} \rho^2 =&amp; \sum_i P_i^2 \le 1 \\
               =&amp; 1 \quad \mathrm{for\,pure\,state}
\end{align}$$


&lt;p&gt;So far, I've presented you the density matrix just as an elgent way of
integrating the two averages into one formalism. And in essence, this is what it
is. But you can now also use the density if the wholes system undergoes a time
evolution, which is no longer unitary, no longer described by Hermition
operator. Because you're interested in the time evolution or a small system,
which is a part of a bigger system. The bigger system is always described by
unitary time evolution, but smaller system is usually not described by unitary
time evolution. And that's when the density matrix becomes crucial.&lt;/p&gt;

&lt;p&gt;Next: use $\rho$ for no-unitary time evolution. Often open systems (small system,
but open to a bigger system. Like we are interested to describe an atom, but
the atom can spontaneously emit photons into other parts of Hilbert space, and
we're not interested in thoses other parts.) Where we limit our description to a
small part of larger system. An atom interacting with all the modes of the
electromagnetic field, but we are simply want to describe the atom. And then, we
cannot use a wave function anymore. We have to use the density matrix.&lt;/p&gt;

&lt;h2&gt;Density Matrix for Arbitrary Two-level System&lt;/h2&gt;

&lt;p&gt;General Hamiltonian for two-level System&lt;/p&gt;

$$\begin{align}
H = \frac{\hbar}{2}\left(\bar{\omega} I + \omega_{1}\sigma_{x} + \omega_2\sigma_y + \omega_3\sigma_z \right)
\end{align}$$

&lt;p&gt;By appropriately shifting what is the zero point of energy, we can set $\bar{\omega}
= 0$&lt;/p&gt;

$$\begin{align}
H = \frac{\hbar}{2}\left(\omega_{1}\sigma_{x} + \omega_2\sigma_y + \omega_3\sigma_z \right) = \frac{\hbar}{2} \vec{\omega} \cdot\vec{\sigma}
\end{align}$$

&lt;p&gt;General density matrix&lt;/p&gt;

$$\begin{align}
\rho = \frac{1}{2} \left( r_0 I + r_1\sigma_x + r_2\sigma_y +r_3\sigma_z \right)
\end{align}$$

&lt;p&gt;Of course, this time we cannot throw away the unity matrix, because otherwise
the density matrix would have no trace. 但是 $\mathrm{Tr}\rho = 1$ , 所以 $r_0 =
1$&lt;/p&gt;

$$\begin{align}
\rho = \frac{1}{2} \left( I + \vec{r}\cdot\vec{\sigma} \right)
\end{align}$$

&lt;p&gt;$\vec{r}$ is called &lt;em&gt;Bloch Vector&lt;/em&gt; . Use equation of motion $\mathrm{i}\hbar\dot{\rho}
= [H, \rho]$ we get (checked! Exercise)&lt;/p&gt;

$$\begin{align}
\dot{\vec{r}} = \vec{\omega}\times \vec{r}
\end{align}$$

&lt;p&gt;We see, the length of $\vec{r}$ is a constant. It is a precession! We
generalizes our previous result $\dot{\vec{S}} = \vec{\omega} \times \vec{S}$ .&lt;/p&gt;

&lt;blockquote&gt;Feynman, R. P., Vernon, F. L. &amp; Hellwarth, R. W. Geometrical Representation of
the Schrödinger Equation for Solving Maser Problems. Journal of Applied Physics
28, 49–52 (1957).

Theory by Feymman, Vernon and Hellwarth:

The time evolution of the density matrix for the most general two-level system
is isomorphic to the behavior of classical moment in a suitable time dependent
magnetic field.&lt;/blockquote&gt;

&lt;p&gt;Note: Pure state will stay pure forever. Because&lt;/p&gt;

$$\begin{align}
\mathrm{Tr}\rho^2 = \frac{1}{2}(r_0^2 + |\vec{r}|^2) = \mathrm{const.}
\end{align}$$

&lt;p&gt;Does not describe loss of coherence.&lt;/p&gt;

&lt;h2&gt;Bloch Equation (1946), Relaxation&lt;/h2&gt;

&lt;p&gt;Everything has to come to thermal equilibrium.&lt;/p&gt;

&lt;p&gt;The density matrix of thermal equilibrium, which has only diagonal matrix
elements, the populations follow the Boltzmann factor&lt;/p&gt;

$$\begin{align}
\rho^T = \frac{1}{z} e^{-\frac{H}{k_B T}}
\end{align}$$

&lt;p&gt;Relaxation will restore $\rho$ to $\rho^T$ .&lt;/p&gt;

&lt;p&gt;Phenomenological treatment of damping:&lt;/p&gt;

$$\begin{align}
 \dot{\rho} = \frac{1}{\mathrm{i}\hbar} [H, \rho] - \frac{\rho - \rho^T}{T_e}
\end{align}$$

&lt;p&gt;where $T_e$ is equilibrium time. The second term will damp the density matrix to
the thermal equilibrium density.&lt;/p&gt;

&lt;p&gt;In many cases, there are two relation times&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;$T_1$ : population different energy decay time, $\dot{r}_z = (\vec{\omega}\times \vec{r})_z - (r_z - r_z^T)/T_1$ .&lt;/li&gt;
&lt;li&gt;$T_2$ : coherence, dephasing time, $r_1, r_2$ .&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;whem quantum system lose its memory of phase, the $r_1, r_2$ components of the
Bloch vector goes to $0$ . $r_1, r_2$ only nonzero if you have two states populated with a
well-defined relative phase.&lt;/p&gt;

&lt;h2&gt;Atoms Sayllabus&lt;/h2&gt;

&lt;blockquote&gt;Kleppner, D. The Yin and Yang of Hydrogen. Physics Today 52, 11–13 (1999).&lt;/blockquote&gt;

&lt;p&gt;First: electronic structure:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;1 e, H&lt;/li&gt;
&lt;li&gt;2 e, He&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Then:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Fine structure&lt;/li&gt;
&lt;li&gt;Lamb shift&lt;/li&gt;
&lt;li&gt;HFS: nucleus&lt;/li&gt;
&lt;li&gt;External field, B, E, EM field.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Import physics system&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Harmonic oscillator&lt;/li&gt;
&lt;li&gt;Two-level system&lt;/li&gt;
&lt;li&gt;Hydrogen&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Hydrogen atoms&lt;/h2&gt;

&lt;p&gt;Rydberg formula follows from the simple Bohr model, also from Schrodinger
equation&lt;/p&gt;


$$\begin{align}
E_n = - \left(\frac{1}{2}\frac{me^4}{\hbar^2}\frac{M}{M+m} \right)\frac{1}{n^2}
\end{align}$$


&lt;p&gt;where Rydberg constant $R_{\infty} = \frac{1}{2}\frac{me^4}{\hbar^2}$ which describes the
spectrum of a hydrogen atom where the nucleus has infinite mass, reduced mass factor
$\frac{M}{M + m}$ . Rydberg constant with reduced mass factor call $R_{H}$
, which determines the spectrum of hydrogen.&lt;/p&gt;

&lt;blockquote&gt;小结:

\begin{align}
  E_n = - \frac{R}{n^2}
\end{align}
其中 $R = \frac{\mu e^4}{2\hbar^2}$ 有时也记作 $R_H = \frac{\mu e^4}{2\hbar^2}$, 其中 $\mu$ 是
reduced mass $\mu = \frac{m M}{m + M}$ . 如果 $M\to \infty$ 那么 $R_{\infty} =
\frac{me^4}{2\hbar^2}$&lt;/blockquote&gt;

&lt;p&gt;Solution of Schrodinger Equation&lt;/p&gt;

$$\begin{align}
\psi_{nlm} = R_nl(r)Y_{lm}(\theta, \phi)
\end{align}$$


&lt;p&gt;There are a number of noteworthy results.&lt;/p&gt;

$$\begin{align}
E_n = - \frac{R_H}{n^2}
\end{align}$$

&lt;p&gt;Intuition for the size of the hydrogen atom, the size of hydrogen-like
atoms. The radius or the expectation value of the position of the electron&lt;/p&gt;

$$\begin{align}
\langle r_{nl}\rangle = n^2 a_0 \left\{1 + \frac{1}{2}
            \left[ 1 - \frac{l(l + 1)}{n^{2}} \right] \right\}
\end{align}$$

&lt;p&gt;It's important to distinguish between the expectation value for the radius and
the inverse radius&lt;/p&gt;

$$\begin{align}
\langle \frac{1}{r_{nl}} \rangle = \frac{1}{n^2 a_0}
\end{align}$$

&lt;p&gt;where $a_0 = \frac{\hbar^2}{\mu e^2}$&lt;/p&gt;
&lt;blockquote&gt;Virial Theorem

\begin{align}
\langle T \rangle = \frac{1}{2} \langle \vec{r} \cdot \nabla V(\vec{r}) \rangle
\end{align}
for $V = r^n$ , $2\langle T \rangle = n\langle V\rangle$&lt;/blockquote&gt;
&lt;p&gt;$\langle \frac{1}{r_{nl}} \rangle$ 的形式这样简单, 可以从 virial theorem 来理解. 总的能量的
形式 $E_n\sim \frac{1}{n^2}$ , 库仑势能 $\langle V\rangle \sim \langle \frac{1}{r}\rangle$ , 而根据 virial
theorm 有 $\langle T\rangle = -\frac{1}{2}\langle V\rangle$ ,
因此 $\langle \frac{1}{r}\rangle \sim \frac{1}{n^2}$ . 精确来讲&lt;/p&gt;

$$\begin{align}
&amp; -\frac{R_H}{n^2} = E_n = \langle T\rangle + \langle V\rangle
 = \frac{1}{2}\langle V\rangle = - \frac{1}{2}e^2\langle \frac{1}{r}\rangle \\
\Rightarrow&amp; \langle \frac{1}{r_{nl}} \rangle = \frac{1}{n^2 a_0}
\end{align}$$

&lt;p&gt;In CGS units&lt;/p&gt;

$$\begin{align}
R_H = \frac{1}{2} \frac{e^2}{a_0}
\end{align}$$

&lt;p&gt;is one half of the Coulomb energy at the Bohr radius, which is called *one
Hartree* $\frac{\mu e^4}{\hbar^2} = \frac{e^2}{a_0}$&lt;/p&gt;

&lt;p&gt;The fundamental energy of the hydrogen atom, the fundamental unit of energy is
whatever energy you can construct using the electron mass, the electron charge
and $\hbar$ , and what you get is $1$ Hartree. If you ever wondered why the Rydberg
is $1/2$ Hartree, what happens is in the ground state of hydrogen, you have $1$
Hartree worth of Coulomb energy. But then because of the Virial theorem, you
have $-1/2$ of it as kinetic energy, and therefore, the binding energy in the
$n=1$ ground state, which is $1$ Rydberg, is $1/2$ Hartree. So this factor of
$1/2$ of the Virial theorem is responsible for this factor of $2$ for those two
energies.&lt;/p&gt;

&lt;p&gt;In SI units: $e^2 \to \frac{e^2}{4\pi\epsilon_0}$&lt;/p&gt;

&lt;h2&gt;Hydrogen-like atoms&lt;/h2&gt;

&lt;p&gt;How do things depend on the nuclear charge $Z$ ? Because of the stronger Coulomb
attraction, all the length scales are divided by $Z$ . So everything is smaller
by factor of $Z$ . So what does that now imply for the energy? Well, you have a
Coulomb field which is $Z$ times stronger, but you probe it now at a $Z$ times
smaller radius. So therefore, the energies scale with $Z^2$&lt;/p&gt;

$$\begin{align}
E_n = - \frac{R_H Z^2}{n^2}
\end{align}$$


&lt;p&gt;If you have a hydrogen-like atom, and the electron is in a state with principal
quantum number, no angular momentum. The probability for the electron to be at
the nucleus&lt;/p&gt;

$$\begin{align}
|\psi_{n00}(0)|^2
\end{align}$$

&lt;p&gt;This will be very important later on, when we discuss hyperfine structure
because what is responsible is the fact that the electron can overlap with
nucleus. So this factor will appear in our discussion of hyperfine structure,
and what I want to ask you is how does this quantity depend on the principal
quantum number $n$ and on $Z$ ?&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A. $\frac{Z^3}{a_0^3 n^6}$&lt;/li&gt;
&lt;li&gt;B. $\frac{Z}{a_0^3 n^2}$&lt;/li&gt;
&lt;li&gt;C. $\frac{Z^3}{a_0^3 n^3}$&lt;/li&gt;
&lt;li&gt;D. $\frac{Z^2}{a_0 n ^2}$&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The exact answer is $|\psi_{n00}(0)|^2 = \frac{Z^3}{\pi a_0^3 n^3}$&lt;/p&gt;

&lt;p&gt;Z scaling: $e^2 \to Ze^2$ , $a_0 = \frac{\hbar^2}{m e^2}\to \frac{a_0}{Z}$ .
So if all length scales go as $\frac{1}{Z}$ . So the density goes $Z^3$&lt;/p&gt;

&lt;p&gt;When we talk about the wave functions with principal quantum number $n$ , there
are two length scale. $\langle \frac{1}{r_{nl}}\rangle = \frac{Z}{a_0 n^2}$ scales with $n^2$
BUT, the characteristic length in the exponential decay of wave function is
$\frac{n a_0}{Z}$ scales with $n$ .&lt;/p&gt;

&lt;p&gt;That is important for quantum defect and hyperfine structure.&lt;/p&gt;

&lt;p&gt;For $l\neq 0$ , $\psi\propto r^l$ , $|\psi|\propto r^{2l}$ . For large $n$ , $|\psi|\propto
r^{2l}\frac{1}{n^3}$ .&lt;/p&gt;

&lt;h2&gt;Reference&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Feynman, R. P., Vernon, F. L. &amp; Hellwarth, R. W. Geometrical Representation of the Schrödinger Equation for Solving Maser Problems. Journal of Applied Physics 28, 49–52 (1957).&lt;/li&gt;
&lt;li&gt;Kleppner, D. The Yin and Yang of Hydrogen. Physics Today 52, 11–13 (1999).&lt;/li&gt;
&lt;li&gt;Friedrich, H. Theoretical Atomic Physics. (Springer International Publishing, 2017). Chap 2.1.1 The Hydrogen Atom&lt;/li&gt;
&lt;li&gt;&lt;a href='https://en.wikipedia.org/wiki/Virial_theorem'&gt;wikipedia: Virial theorem&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href='https://en.wikipedia.org/wiki/Hartree'&gt;wikipedia: Hartree&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</content><category term="专业笔记"/><category term="Rabi frequency"/><category term="adiabatic"/><category term="Atomic and Optical Physics"/><category term="density matrix"/><category term="density operator"/><category term="quantum defect"/></entry><entry><title>python matplotlib 画图小技巧: 自定义字体</title><link href="https://zqw.ink/2021-11-10-coding-matplot_fonts.html" rel="alternate"/><published>2021-11-10T00:00:00+08:00</published><updated>2021-11-10T00:00:00+08:00</updated><author><name>ZQW</name></author><id>tag:zqw.ink,2021-11-10:/2021-11-10-coding-matplot_fonts.html</id><summary type="html">
&lt;h2&gt;问题&lt;/h2&gt;

&lt;p&gt;在用 &lt;code&gt;matplotlib&lt;/code&gt; 画图时, 使用自定义字体. 比如从一个下载好的 &lt;code&gt;.ttf&lt;/code&gt; 字体文件加载,
或者在程序无法找到系统中的字体时, 指定字 …&lt;/p&gt;</summary><content type="html">
&lt;h2&gt;问题&lt;/h2&gt;

&lt;p&gt;在用 &lt;code&gt;matplotlib&lt;/code&gt; 画图时, 使用自定义字体. 比如从一个下载好的 &lt;code&gt;.ttf&lt;/code&gt; 字体文件加载,
或者在程序无法找到系统中的字体时, 指定字体文件的位置.&lt;/p&gt;

&lt;h2&gt;Method 1&lt;/h2&gt;

&lt;pre&gt;&lt;code class="language-python"&gt;import numpy as np
import matplotlib.pyplot as plt
from matplotlib import font_manager

fe = font_manager.FontEntry(fname='/usr/share/fonts/TTF/Times.TTF', name='tnr')
font_manager.fontManager.ttflist.append(fe)

plt.rcParams['font.family'] = fe.name
plt.rcParams['mathtext.fontset'] = 'cm'

x = np.linspace(0, 6, 51)
plt.plot(x, np.sin(x))
plt.title(r'Sin Function - Method 1')
plt.xlabel(r'$\theta$')
plt.ylabel(r'$\sin\theta$')
plt.savefig('method1.png')&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&lt;a href='2021-11-10-coding-matplot_fonts/method1.py'&gt;method1.py&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;Method 2&lt;/h2&gt;

&lt;pre&gt;&lt;code class="language-python"&gt;import numpy as np
import matplotlib.pyplot as plt
from matplotlib import font_manager

font_path = '/usr/share/fonts/TTF/Times.TTF'  # Your font path goes here
font_manager.fontManager.addfont(font_path)
prop = font_manager.FontProperties(fname=font_path)

plt.rcParams['font.family'] = prop.get_name()
plt.rcParams['mathtext.fontset'] = 'cm'  # 'cm' (Computer Modern)

x = np.linspace(0, 6, 51)
plt.plot(x, np.sin(x))
plt.title(r'Sin Function - Method 2')
plt.xlabel(r'$\theta$')
plt.ylabel(r'$\sin\theta$')
plt.savefig('method2.png')&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&lt;a href='2021-11-10-coding-matplot_fonts/method2.py'&gt;method2.py&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;Result&lt;/h2&gt;

&lt;p&gt;&lt;p&gt;&lt;img src='2021-11-10-coding-matplot_fonts/method1.png' alt='figalt' max-width:100%&gt;&lt;p&gt;&lt;/p&gt;


&lt;h2&gt;Reference&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href='https://stackoverflow.com/questions/35668219/how-to-set-up-a-custom-font-with-custom-path-to-matplotlib-global-font'&gt;https://stackoverflow.com/questions/35668219/how-to-set-up-a-custom-font-with-custom-path-to-matplotlib-global-font&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href='https://matplotlib.org/stable/tutorials/introductory/customizing.html#customizing-with-matplotlibrc-files'&gt;Matplotlib Documentation: A sample matplotlibrc file&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href='https://matplotlib.org/stable/users/dflt_style_changes.html?highlight=math%20font#math-text'&gt;Matplotlib Documentation: Math text&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</content><category term="软件使用"/><category term="python"/><category term="matplotlib"/><category term="font_manager"/><category term="mathtext"/></entry><entry><title>Atomic and Optical Physics I, 04 Resonance IV: Quantum Theory</title><link href="https://zqw.ink/2021-11-07-physics-mitamo04.html" rel="alternate"/><published>2021-11-07T00:00:00+08:00</published><updated>2021-11-07T00:00:00+08:00</updated><author><name>ZQW</name></author><id>tag:zqw.ink,2021-11-07:/2021-11-07-physics-mitamo04.html</id><summary type="html">
&lt;h2&gt;Information&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;官方介绍: https://ocw.mit.edu/courses/physics/8-421-atomic-and-optical-physics-i-spring-2014/&lt;/li&gt;
&lt;li&gt;视频列表地址: https://www.youtube.com/playlist?list=PLUl4u3cNGP62FPGcyFJkzhqq9c5cHCK32&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Adiabatic condition&lt;/h2&gt;

&lt;p&gt;下面推导绝热条件 (Rapid adiabatic passage 中的 adiabatic) 的具体表达式.&lt;/p&gt;

&lt;p&gt;Larmor frequency $\Omega_L …&lt;/p&gt;</summary><content type="html">
&lt;h2&gt;Information&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;官方介绍: https://ocw.mit.edu/courses/physics/8-421-atomic-and-optical-physics-i-spring-2014/&lt;/li&gt;
&lt;li&gt;视频列表地址: https://www.youtube.com/playlist?list=PLUl4u3cNGP62FPGcyFJkzhqq9c5cHCK32&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Adiabatic condition&lt;/h2&gt;

&lt;p&gt;下面推导绝热条件 (Rapid adiabatic passage 中的 adiabatic) 的具体表达式.&lt;/p&gt;

&lt;p&gt;Larmor frequency $\Omega_L = \gamma B_{\mathrm{eff}} \gg \dot{\theta}$ . $\theta$ 是
$B_{\mathrm{eff}}$ 与 $z$ 轴的夹角.&lt;/p&gt;

&lt;p&gt;相同的磁场变化速度, 在 $\theta = 2\pi$ 附近时, $\theta$ 变化最明显. 也就是说磁场匀速变化
时, 在 $\theta = \pi/2$ 时, $\dot{\theta}$ 达到最大值, 而 $B_{\mathrm{eff}}$ 达到最小值,
因此只要考虑在 $\theta = \pi/2$ 附近的情况即可.&lt;/p&gt;

&lt;p&gt;此时&lt;/p&gt;

$$\begin{align}
  B_{z, \mathrm{eff}} = B_0 - \frac{\omega(t)}{\gamma}
\end{align}$$


$$\begin{align}
\theta \approx \frac{\pi}{2} - \frac{B_{z, \mathrm{eff}}}{B_1}
\end{align}$$


$$\begin{align}
\dot{\theta} = \frac{\dot{\omega}}{\gamma B_1} = \frac{\dot{\omega}}{\omega_R} \ll \omega_R
\end{align}$$

&lt;p&gt;也就是说, the change $\Delta\omega$ in one Rabi period has to be samaller than Rabi
frequency.&lt;/p&gt;

$$\begin{align}
  |\dot{\omega}| \ll \omega_R^2
\end{align}$$


&lt;h2&gt;Quantized spin in a magnetic field&lt;/h2&gt;

&lt;p&gt;Hamiltonia&lt;/p&gt;

$$\begin{align}
H = - \vec{\mu}\cdot \vec{B}_0 = - \gamma \hat{L}_z B_0
\end{align}$$

&lt;p&gt;由 Heisenberg eq of motion 可得&lt;/p&gt;

$$\begin{align}
 \frac{\mathrm{d}}{\mathrm{d}t} \vec{\hat{\mu}}
     = \frac{i}{\hbar}[\hat{H}, \vec{\hat{\mu}}]
     = \frac{i}{\hbar}\gamma[\hat{H}, \vec{\hat{L}}]
     = \gamma \vec{\hat{\mu}} \times \vec{\hat{B}}
\end{align}$$

&lt;p&gt;这个结果是严格的! 与经典的结果是一致的.&lt;/p&gt;

&lt;p&gt;写成期望&lt;/p&gt;

$$\begin{align}
 \frac{\mathrm{d}}{\mathrm{d}t} \langle\vec{\hat{\mu}}\rangle
     = \gamma \langle\vec{\hat{\mu}}\rangle \times \vec{\hat{B}}
\end{align}$$


&lt;ul&gt;
&lt;li&gt;valid for any spin&lt;/li&gt;
&lt;li&gt;valid for spin $1/2$ $\Rightarrow$ any two level system&lt;/li&gt;
&lt;li&gt;composite angular momentum (比如原子的总角动量) (unless $B$ field is so strong that it breaks up the coupling of the angular momentum)&lt;/li&gt;
&lt;li&gt;valid for a system of $N$ two-level systems (e.g. Dicke superradiance).&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Two level system spin $1/2$&lt;/h2&gt;

&lt;p&gt;What is the level structure of the electron in magnetic field?&lt;/p&gt;

&lt;p&gt;Spin down is lowest state for the electron!&lt;/p&gt;

&lt;p&gt;The magnetic moment has to point in the pulse direction( $\vec{B}$ ), which up,
but the electron has negtive charge, the $\gamma$ factor is &lt;em&gt;negtive&lt;/em&gt; and that's why
for electron, the vector of spin and the vector of the magnetic momentum are
oppsite. (差一负号)&lt;/p&gt;

$$\begin{align}
  \langle \mu_z \rangle = \frac{\gamma\hbar}{2}(P_{\downarrow} - P_{\uparrow}) = - \frac{\gamma\hbar}{2}(2P_e - 1)
\end{align}$$


$$\begin{align}
P_e(t) = \frac{1}{2} - \frac{1}{\hbar\gamma} \langle\mu_z\rangle
    = \frac{1}{2} - \frac{1}{2}
     \left( 1 - 2 \frac{\omega_R^2}{\Omega_R^2}\sin^2 \frac{\Omega_Rt}{2} \right)
\end{align}$$

&lt;p&gt;最后一个等号利用了经典图像给出的结果. $P_e$ for $P$ excited.&lt;/p&gt;

&lt;p&gt;如果取 $P_g(t = 0) = 1$ , 那么 Rabi transition probability&lt;/p&gt;

$$\begin{align}
P_e(t) = \frac{\omega_R^2}{\Omega_R^2} \sin^2 \frac{\Omega_Rt}{2}
\end{align}$$


&lt;h2&gt;Spin $\frac{1}{2}$ Hamiltonian&lt;/h2&gt;


$$\begin{align}
H = \frac{\hbar}{2} \begin{pmatrix}
         \omega_0  &amp;  \omega_Re^{-\mathrm{i}\omega t}\\
         \omega_Re^{\mathrm{i}\omega t} &amp; -\omega_0
    \end{pmatrix}
\end{align}$$

&lt;p&gt;Question: Can be exactly realized in nature? Or it is an approximation?&lt;/p&gt;

&lt;p&gt;Can be exactly realized in nature!&lt;/p&gt;


$$\begin{align}
  H_0 =&amp; - \vec{\mu}\cdot \vec{B}_0 = - \gamma \hat{S}_z B_0 \\
      =&amp;\frac{\hbar}{2}\omega_0 \begin{pmatrix}
            1 &amp; 0\\
            0 &amp; -1
         \end{pmatrix}
      = \frac{\hbar\omega_0}{2}\sigma_z
\end{align}$$

&lt;p&gt;$|e\rangle, |g\rangle$ eigenstates with eigenvalues $\pm \frac{\hbar\omega_0}{2}$&lt;/p&gt;

&lt;p&gt;Now add rotating fields&lt;/p&gt;

$$\begin{align}
H_1 =&amp; -\vec{\mu} \cdot\vec{B}_1(t)
   = -\vec{\mu}\cdot \frac{\omega_R}{\gamma}(-\hat{e}_{x}\cos\omega t - \hat{e}_y\sin\omega t) \\
  =&amp; \omega_R (\hat{S}_x\cos\omega t + \hat{S}_y \sin\omega t)\\
  =&amp; \frac{\hbar\omega_R}{2}\begin{pmatrix}
             0   &amp; e^{-\mathrm{i}\omega t} \\
            e^{\mathrm{i}\omega t} &amp; 0
          \end{pmatrix}
\end{align}$$

&lt;p&gt;So $H = H_0 + H_1$ .&lt;/p&gt;

&lt;p&gt;We go complex in our Hamiltonian, not because we have approximated a real field
$\cos \omega t$ by $e^{\mathrm{i}\omega t}$ , but because when we have a rotating field
and we write down it in Pauli spin matrix, we get imaginary units for the $\sigma_y$
spin matrix.&lt;/p&gt;

&lt;p&gt;Famous dressed atom Hamiltonian describes two-level system &lt;em&gt;+&lt;/em&gt; one mode of the
EM field (with arbitrary amplitudes). (8.422 课程会细讲)&lt;/p&gt;

&lt;p&gt;Since dressed atom picture in the standard way assumes that the photon number
$N$ is large. There is a correspondance that in the limit of $N$ being large,
the Fock state descriptin and the coherent state description fully agree.&lt;/p&gt;

&lt;h2&gt;Solution of the Hamiltonian&lt;/h2&gt;

&lt;p&gt;Transform to rotating frame. Unitary transofrmation (Rotation operation around
$\hat{e}_z$ )&lt;/p&gt;

$$\begin{align}
U = \left.e^{\mathrm{i}\frac{S_z}{\hbar}\theta}\right|_{\theta = \omega t} =
\begin{pmatrix}
e^{\mathrm{i} \omega t/2} &amp; 0\\
0 &amp; e^{-\mathrm{i}\omega t/2}
\end{pmatrix}
\end{align}$$

&lt;p&gt;Then&lt;/p&gt;

$$\begin{align}
H' = \frac{\hbar}{2}
\begin{pmatrix}
\delta  &amp; \omega_R \\
\omega_R &amp; -\delta
\end{pmatrix}
\end{align}$$

&lt;p&gt;is time independent, where $\delta = \omega - \omega_0$ . Care about $U \mathrm{i}\hbar\partial_t
U^{\dagger}$ result a term $\sim \omega \sigma_z$ .&lt;/p&gt;

&lt;p&gt;Solve it (homework # 1). A special case amplitudes&lt;/p&gt;

$$\begin{align}
a_{g} (0) =&amp; 1 \\
|a_e(t)|^2 =&amp; \frac{\omega_R^2}{\Omega_R^2}\sin^2 \frac{\Omega_Rt}{2}
\end{align}$$

&lt;p&gt;as derived before.&lt;/p&gt;

&lt;h2&gt;Rapid adiabatic passage --- Quantum treatment&lt;/h2&gt;

&lt;p&gt;无旋转的磁场时&lt;/p&gt;

$$\begin{align}
H_0 = \frac{\hbar}{2}
\begin{pmatrix}
\delta  &amp; 0 \\
0  &amp; -\delta
\end{pmatrix}
\end{align}$$

&lt;p&gt;本征能量如图中虚线&lt;/p&gt;

&lt;p&gt;&lt;p&gt;&lt;img src='2021-11-07-physics-MITAMO04/energy-level.png' alt='figalt' max-width:100%&gt;&lt;p&gt;&lt;/p&gt;

&lt;p&gt;当加入旋转的磁场时&lt;/p&gt;

$$\begin{align}
H_0 = \frac{\hbar}{2}
\begin{pmatrix}
\delta  &amp; \omega_R \\
\omega_R  &amp; -\delta
\end{pmatrix}
\end{align}$$

&lt;p&gt;本征能量为 $\pm\sqrt{\omega_R^2 + \delta^2}$ , 为图中蓝线, avoid the crossing. 所以当我们慢
慢扫过 $\delta = 0$ 时,
会保持在蓝线上, spin 被翻转. Landau Zener problem, sweep the system through the
avoided crossing.&lt;/p&gt;

&lt;p&gt;但在 $\delta = 0$ 时会有一定概率从一条蓝线跃迁到另外一条蓝线, 我们不加证明地给出
probability to jump from one level to the another one&lt;/p&gt;

$$\begin{align}
P_{\mathrm{na}} = e^{- 2\pi \Gamma}
\end{align}$$

&lt;p&gt;where $\mathrm{na}$ means non-adiabatic, $\Gamma$ is landau-Zener parameter given as&lt;/p&gt;

$$\begin{align}
\Gamma = \left(\frac{\omega_R}{2}\right)^2 \left[ \frac{\mathrm{d}\omega}{\mathrm{d}t} \right]^{-1}
 = \frac{1}{4}\frac{\omega_R^2}{\dot{\omega}}
\end{align}$$

&lt;p&gt;因此在之前的 adiabatic 的条件下 $\omega_{R}^2/\dot{\omega} \gg 1$ , 使得 $P_{\mathrm{na}}$
很小.&lt;/p&gt;

&lt;h2&gt;Fast Sweep (没有完全理解)&lt;/h2&gt;

&lt;p&gt;另一种极限, if you go much faster than the Rabi frequency, the spin has no
opportunity to change its orientation.&lt;/p&gt;

&lt;p&gt;Let's estimate the result in perturbation. Should we calculate that transition
probability by using perturbation theory for an incoherent transition or for
coherent transition?&lt;/p&gt;

&lt;p&gt;Coherent!&lt;/p&gt;

&lt;p&gt;区别在于&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Coherent: population $\dot{a}_2 = -\mathrm{i}\frac{H_{12}}{\hbar}$ with $H_{12} = \frac{\hbar}{2}\omega_R$ , 那么短时的演化为 $a_2 = \frac{1}{2}\omega_R t$ , so $P_2\sim |a_2|^2 =\omega_R^2 t_{\mathrm{eff}}^2$ , effective time $t_{\mathrm{eff}}$ (when wave function really changes) of driving the system. Coherent process are always quadratic in time.&lt;/li&gt;
&lt;li&gt;Incoherent: Fermi's Golden Rule $P \sim \frac{\omega_R^2 t_{\mathrm{eff}}}{\mathrm{density\, of\, states}}$&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Q: What is $t_{\mathrm{eff}}$ in LZ?&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A. $t_{\mathrm{eff}} \sim \frac{\omega_R}{\dot{\omega}}$&lt;/li&gt;
&lt;li&gt;B. $t_{\mathrm{eff}} \sim \sqrt{\frac{1}{\dot{\omega}}}$&lt;/li&gt;
&lt;li&gt;C. $t_{\mathrm{eff}} \sim \frac{1}{\omega_R}$&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;the answer is B. $t_{\mathrm{eff}}$ is the "dephasing" time $\Delta t$ , the time
during which everything is coherent&lt;/p&gt;

$$\begin{align}
\Delta\omega \cdot \Delta t = \dot{\omega} \Delta t \cdot\Delta t \sim \pi \Rightarrow \Delta t \sim \sqrt{\frac{1}{\dot{\omega}}}
\end{align}$$


&lt;p&gt;Expand $e^{- 2\pi \Gamma}$ (small $\Gamma$ )&lt;/p&gt;

$$\begin{align}
1 - P_{\mathrm{na}} = 2\pi\Gamma \propto \frac{\omega_R^2}{\dot{\omega}}
\end{align}$$


&lt;h2&gt;Reference&lt;/h2&gt;
</content><category term="专业笔记"/><category term="Rabi frequency"/><category term="adiabatic"/><category term="Atomic and Optical Physics"/></entry><entry><title>Atomic and Optical Physics I, 03 ResonanceIII: Rapid adiabatic passage</title><link href="https://zqw.ink/2021-11-04-physics-mitamo03.html" rel="alternate"/><published>2021-11-04T00:00:00+08:00</published><updated>2021-11-04T00:00:00+08:00</updated><author><name>ZQW</name></author><id>tag:zqw.ink,2021-11-04:/2021-11-04-physics-mitamo03.html</id><summary type="html">
&lt;h2&gt;Information&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;官方介绍: https://ocw.mit.edu/courses/physics/8-421-atomic-and-optical-physics-i-spring-2014/&lt;/li&gt;
&lt;li&gt;视频列表地址: https://www.youtube.com/playlist?list=PLUl4u3cNGP62FPGcyFJkzhqq9c5cHCK32&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Atomic clocks&lt;/h2&gt;

&lt;h2&gt;Motion in a rotating magnetic field, Resonance, $\pi$ pulse&lt;/h2&gt;

&lt;p&gt;考虑 classical 的情况.&lt;/p&gt;

&lt;p&gt;假设磁矩 $\vec{\mu}$ 处于 …&lt;/p&gt;</summary><content type="html">
&lt;h2&gt;Information&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;官方介绍: https://ocw.mit.edu/courses/physics/8-421-atomic-and-optical-physics-i-spring-2014/&lt;/li&gt;
&lt;li&gt;视频列表地址: https://www.youtube.com/playlist?list=PLUl4u3cNGP62FPGcyFJkzhqq9c5cHCK32&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Atomic clocks&lt;/h2&gt;

&lt;h2&gt;Motion in a rotating magnetic field, Resonance, $\pi$ pulse&lt;/h2&gt;

&lt;p&gt;考虑 classical 的情况.&lt;/p&gt;

&lt;p&gt;假设磁矩 $\vec{\mu}$ 处于磁场中磁场为&lt;/p&gt;

$$\begin{align}
  \vec{B}(t) = B_0 \hat{e}_z + B_1(\hat{e}_x \cos \Omega_Lt - \hat{e}_y \sin\Omega_Lt)
\end{align}$$

&lt;p&gt;也就是说在 $z$ 方向有一个 static field, 在 $xoy$ 平面内有一个以 Lamor 频率 $\Omega_L
= -\gamma B_0$ 旋转的 rotating field.
在 rotating frame ( $x', y', z$ ) 中, 根据上一节的知识, 等效的磁场为&lt;/p&gt;

$$\begin{align}
B_{\mathrm{eff}} = (B_0 + \frac{\Omega_L}{\gamma})\hat{e}_z + B_1\hat{e}_x = B_1\hat{e}_{x'}
\end{align}$$

&lt;p&gt;也就是说 $z$ 方向的 static field 被抵消, 只剩下 $x'$ 方向的一个 static field. 因
此, $\vec{\mu}$ 会绕 $x'$ 轴以 Rabi 频率 $\omega_R = - \gamma B_{1}$ 进动. 因此总的效果是会
将 spin flip 一下. 比如&lt;/p&gt;

$$\begin{align}
  t =&amp; 0, \quad\vec{\mu} = \mu \hat{e}_z \\
  t =&amp; \frac{\pi}{\omega_R}, \quad\vec{\mu} = \mu \hat{e}_z
\end{align}$$

&lt;p&gt;也叫 $\pi$ pulse.&lt;/p&gt;

&lt;p&gt;&lt;p&gt;&lt;img src='2021-11-04-physics-MITAMO03/pi-pulse.png' alt='figalt' max-width:100%&gt;&lt;p&gt;&lt;/p&gt;

&lt;p&gt;如果磁场不是 rotating 的, 比如是沿某个方向线偏振的, 那么可以分解成两个方向相反的
rotating 的叠加. 在 rotating frame 中, 一个方向的 rotating 会变成 static, 而另一
个方向上的 rotating 会变成原来频率的 2 倍 rotating, 这个高频的 rotating 通常不会
有物理效果, 所以被忽略, 这就是 rotating wave approximation!&lt;/p&gt;

&lt;h2&gt;Generalized Rabi Frequency&lt;/h2&gt;

&lt;p&gt;如果 $B_{1}$ rotating 的 frequency $\omega \neq \Omega_L$ , 那么等效的磁场就不会完全抵消
$B_0$ , 那么&lt;/p&gt;

$$\begin{align}
  \vec{B}_{\mathrm{eff}} = B_1 \hat{e}_{x'}
           + \left(B_0 - \frac{\omega}{\gamma} \right) \hat{e}_z
\end{align}$$

&lt;p&gt;其大小为&lt;/p&gt;

$$\begin{align}
|B_{\mathrm{eff}}| = \sqrt{B_1^2 + (B_0 - \frac{\omega}{\gamma})^2}
\end{align}$$

&lt;p&gt;可以定义 generalized Rabi frequency (之后都取 $\gamma = |\gamma|$ ?)&lt;/p&gt;

$$\begin{align}
\Omega_{R} = \gamma B_{\mathrm{eff}} = \sqrt{(\omega_L - \omega)^2 + \omega_R^2}
  = \sqrt{\omega_R^2 + \delta^2}
\end{align}$$

&lt;p&gt;其中 detuning $\delta = \omega_L - \omega$&lt;/p&gt;

&lt;h2&gt;Compare with quantum result&lt;/h2&gt;

&lt;p&gt;如图, 对两个三角形用余弦定理&lt;/p&gt;

$$\begin{align}
A^2 =&amp; 2 \mu^2 (1 - \cos\alpha) \\
A^2 =&amp; 2 \mu^{2} \sin^2\theta (1 - \cos\phi)
\end{align}$$

&lt;p&gt;并利用&lt;/p&gt;

$$\begin{align}
 \sin \theta =&amp; \frac{B_1}{B_{\mathrm{eff}}} = \frac{\omega_R}{\Omega_R} \\
  \phi(t) =&amp; \Omega_R t
\end{align}$$

&lt;p&gt;可以严格地求得 $\mu$ 在 $z$ 方向上的投影&lt;/p&gt;

$$\begin{align}
  \mu_z(t) = \mu\sin\cos\alpha = \mu \left[ 1 -
   2 \frac{\omega_R^2}{\Omega_{R}^2}\sin^{2} \left( \frac{\Omega_R}{2}t \right) \right]
\end{align}$$


&lt;p&gt;&lt;p&gt;&lt;img src='2021-11-04-physics-MITAMO03/rabi-freq.png' alt='figalt' max-width:100%&gt;&lt;p&gt;&lt;/p&gt;

&lt;p&gt;如果我们定义&lt;/p&gt;

$$\begin{align}
P_{\uparrow \to \downarrow} \equiv \frac{\mu_z(0) - \mu_z(t)}{2 \mu_z(0)}
\end{align}$$

&lt;p&gt;那么&lt;/p&gt;

$$\begin{align}
P_{\uparrow \to \downarrow} = \frac{\omega_R^2}{\Omega_{R}^2}\sin^{2} \left( \frac{\Omega_R}{2}t \right)
\end{align}$$

&lt;p&gt;这正是量子的结果.&lt;/p&gt;

&lt;h2&gt;Rapid adiabatic passage (RAP) (classical counterpart of Landau-Zener transition)&lt;/h2&gt;

&lt;p&gt;现在 change the frequency of the rotating field. Sweeping the frequency *thtrough
the resoance*, we can invert the spin, we can tun over the magnetic moment in a
very robust way.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;em&gt;slow&lt;/em&gt;: compare to the Larmor frequency&lt;/li&gt;
&lt;li&gt;&lt;em&gt;rapid&lt;/em&gt;: compare to all the things mentioned here(decoherence and relaxition processes).&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;这里不做严格计算, 只给一个 intuitive picture&lt;/p&gt;

&lt;p&gt;$\vec{\mu}$ , static field $\vec{B}_0$ , $\vec{B}_1$ rotating at $\omega$ , $|B_{1}|
\ll |B_0|$ , start with $\omega &lt;&lt; \gamma B_{0}$&lt;/p&gt;

&lt;p&gt;&lt;p&gt;&lt;img src='2021-11-04-physics-MITAMO03/RAP.png' alt='figalt' max-width:100%&gt;&lt;p&gt;&lt;/p&gt;

&lt;p&gt;In adiabatic limit, the spin processes tightly ( $\theta$ is small) around
$\vec{B}_{\mathrm{eff}}$ , follows the direction of the effective magnetic
field.&lt;/p&gt;

&lt;p&gt;所以当扫到 detuning $\delta = 0$ 时, $\vec{\mu}$ 转到了 $x'$ 方向, 当继续扫到 $\omega
\gg \gamma B_0$ 时, spin 被 flip.&lt;/p&gt;

&lt;p&gt;无论是从高频向低频扫, 还是从低频向高频扫, 只要扫过共振频率, the rapid adiabatic
passage always swaps the spin state.&lt;/p&gt;

&lt;p&gt;这在实验上很有用, 因为像之前那样直接加到共振频率上, 如果频率稍有偏差, spin 就不
会完全被 flip. 但是 RAP 的话, 只要扫过共振频率, spin 就会被完美地 flip!&lt;/p&gt;

&lt;p&gt;同样的物理机制, 但是操作完全不一样, 就是让 spin 在 quadrapolar fields magnetic
trap 中同移动, 磁场也能从一个方向扫到相反的方向. 在中间可能发生 Majorana losses.&lt;/p&gt;

&lt;h2&gt;Reference&lt;/h2&gt;
</content><category term="专业笔记"/><category term="pi pulse"/><category term="Rabi frequency"/><category term="Lamor frequency"/><category term="Atomic and Optical Physics"/></entry><entry><title>python matplotlib 画图小技巧: 虚线的圆与虚线的五角星</title><link href="https://zqw.ink/2021-10-21-coding-dash_circle.html" rel="alternate"/><published>2021-10-21T00:00:00+08:00</published><updated>2021-10-21T00:00:00+08:00</updated><author><name>ZQW</name></author><id>tag:zqw.ink,2021-10-21:/2021-10-21-coding-dash_circle.html</id><summary type="html">
&lt;h2&gt;问题一:&lt;/h2&gt;

&lt;p&gt;在散点图上, 用一个虚线的圆圈标出某个数据点&lt;/p&gt;

&lt;pre&gt;&lt;code class="language-python"&gt;import numpy as np
import matplotlib.pyplot as plt
import matplotlib.path as mpath

x = np.linspace(0, 6, 20)
y = np.sin(x)
plt.plot(x …&lt;/code&gt;&lt;/pre&gt;</summary><content type="html">
&lt;h2&gt;问题一:&lt;/h2&gt;

&lt;p&gt;在散点图上, 用一个虚线的圆圈标出某个数据点&lt;/p&gt;

&lt;pre&gt;&lt;code class="language-python"&gt;import numpy as np
import matplotlib.pyplot as plt
import matplotlib.path as mpath

x = np.linspace(0, 6, 20)
y = np.sin(x)
plt.plot(x, y, ls='none', marker='o', mfc='none')

plt.plot(x[10], y[10], marker='o', mfc='none', ms=20)
plt.plot(x[10], y[10], marker=mpath.Path.unit_regular_star(20),
         ms=25, mfc='none', mec='white')
plt.savefig('./fig1.png')&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&lt;a href='2021-10-21-coding-dash_circle/code1.py'&gt;code&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;p&gt;&lt;img src='2021-10-21-coding-dash_circle/fig1.png' alt='figalt' max-width:100%&gt;&lt;p&gt;&lt;/p&gt;

&lt;h2&gt;问题二:&lt;/h2&gt;

&lt;p&gt;画一个金色的的虚线边框的五角星&lt;/p&gt;

&lt;pre&gt;&lt;code class="language-python"&gt;import matplotlib.pyplot as plt

plt.plot([1], [1], marker=(5, 1, 0), markersize=30, mfc='none', mec='k', mew=1)

for i in range(4):
    plt.plot([1], [1], marker='o', markersize=30-5*i,
             mfc='none', mec='w', mew=1)

plt.plot([1], [1], marker=(5, 1, 0), markersize=30, mfc='gold', mec='k', mew=0)
plt.savefig('fig2.png')&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&lt;a href='2021-10-21-coding-dash_circle/code2.py'&gt;code&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;p&gt;&lt;img src='2021-10-21-coding-dash_circle/fig2.png' alt='figalt' max-width:100%&gt;&lt;p&gt;&lt;/p&gt;

&lt;h2&gt;Reference&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;YK Yang 的讨论&lt;/li&gt;
&lt;li&gt;&lt;a href='https://stackoverflow.com/questions/38316746/how-to-draw-a-marker-with-dashed-dotted-edge-in-matplotlib/69658923#69658923'&gt;https://stackoverflow.com/questions/38316746/how-to-draw-a-marker-with-dashed-dotted-edge-in-matplotlib/69658923#69658923&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href='https://matplotlib.org/stable/gallery/shapes_and_collections/marker_path.html'&gt;Marker Path&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</content><category term="软件使用"/><category term="python"/><category term="matplotlib"/><category term="marker"/><category term="dashed"/></entry><entry><title>BEC 极限下的 Tc 的估计</title><link href="https://zqw.ink/2021-10-05-physics-bec_limit_tc.html" rel="alternate"/><published>2021-10-05T00:00:00+08:00</published><updated>2021-10-05T00:00:00+08:00</updated><author><name>ZQW</name></author><id>tag:zqw.ink,2021-10-05:/2021-10-05-physics-bec_limit_tc.html</id><summary type="html">
&lt;h2&gt;Theory&lt;/h2&gt;
&lt;p&gt;取单位 $\hbar = M = 1$ .&lt;/p&gt;

&lt;p&gt;在 BEC极限下, 原子两两配对, 形成的 dimmer 的粒子数密度为&lt;/p&gt;

$$\begin{align}
n_{\mathrm{dimmer}} = \frac{N}{V} \sum_{\vec{k}} n_B(\xi_q + E_b)
  = \frac{1}{2\pi^2}\int_0^{\infty} \mathrm{d}q …</summary><content type="html">
&lt;h2&gt;Theory&lt;/h2&gt;
&lt;p&gt;取单位 $\hbar = M = 1$ .&lt;/p&gt;

&lt;p&gt;在 BEC极限下, 原子两两配对, 形成的 dimmer 的粒子数密度为&lt;/p&gt;

$$\begin{align}
n_{\mathrm{dimmer}} = \frac{N}{V} \sum_{\vec{k}} n_B(\xi_q + E_b)
  = \frac{1}{2\pi^2}\int_0^{\infty} \mathrm{d}q \frac{q^2}{e^{\beta(q^2/4 - 2\mu + E_b)} - 1}
\end{align}$$

&lt;p&gt;因此, 忽略极少数没有配对的原子, 总的原子的粒子数密度就是&lt;/p&gt;

$$\begin{align}
n_{\mathrm{total}} = 2n_{\mathrm{dimmer}}
\end{align}$$


&lt;p&gt;如果原子是两分量的, 比如 Bose 原子通过 p 波相互作用配对, 或者费米子通过 s 波相互
作用配对, 那么能量单位可以取为
$E_{n, p} = \frac{k_{n, p}^2}{2} = \frac{(3 \pi^2 n_{\mathrm{total}})^{2/3}}{2}$&lt;/p&gt;

&lt;p&gt;如果原子是单分量的, 比如 Bose 原子通过 d 波相互作用配对, 那么能量单位可以取为
$E_{n, d} = \frac{k_{n, d}^2}{2} = \frac{(6 \pi^2 n_{\mathrm{total}})^{2/3}}{2}$&lt;/p&gt;

&lt;p&gt;在 BEC 极限下, 给定密度的情况下, 当 $2\mu$ 刚好能够形成束缚态, 也就是 $2\mu = E_b$
时, 处于临界状态. 如果 fix 粒子数密度 $n_{\mathrm{total}}$ , 那么可以算出
$n_{\mathrm{total}} /T_{BEC}$ , 也就是取能量单位 $E_n$ 时的临界温度.&lt;/p&gt;

&lt;p&gt;两分量费米子 s 波相互作用在 BEC 极限下的 BEC 临界温度为&lt;/p&gt;

$$\begin{align}
T_{\mathrm{BEC}} \approx 0.218 E_F
\end{align}$$


&lt;h2&gt;Numerical&lt;/h2&gt;

&lt;pre&gt;&lt;code class="language-python"&gt;import numpy as np
from scipy.integrate import quad


mu = -1
E_b = 2*mu


def density(q):
    volume = q**2 / (np.pi**2)
    a = q**2/4 - 2*mu + E_b
    return volume / (np.exp(a) - 1)


n = quad(density, 0, 100, points=[0])[0]
ef_p = (3*np.pi**2 * n)**(2/3) / 2
ef_d = (6*np.pi**2 * n)**(2/3) / 2
tcef_p = 1 / ef_p
tcef_d = 1 / ef_d

print(n)
print(tcef_p, tcef_d)&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;a href='2021-10-05-physics-BEC_limit_Tc/code.py'&gt;code&lt;/a&gt;&lt;/p&gt;

&lt;pre&gt;&lt;code class="language-shell"&gt;0.9382979415622876
0.2180329612206701 0.13735215870641743&lt;/code&gt;&lt;/pre&gt;

&lt;h2&gt;Reference&lt;/h2&gt;

&lt;p&gt;Zhai, H. Ultracold atomic physics. (Cambridge University Press, 2020).&lt;/p&gt;
</content><category term="专业笔记"/><category term="BEC"/></entry><entry><title>多变量数值定积分换元(质心系)</title><link href="https://zqw.ink/2021-09-17-physics-numerical_jacobian_center_of_mass.html" rel="alternate"/><published>2021-09-17T00:00:00+08:00</published><updated>2021-09-17T00:00:00+08:00</updated><author><name>ZQW</name></author><id>tag:zqw.ink,2021-09-17:/2021-09-17-physics-numerical_jacobian_center_of_mass.html</id><summary type="html">
&lt;h2&gt;&lt;code&gt;nuqad&lt;/code&gt; 的用法&lt;/h2&gt;


$$\begin{align}
\int_0^1\mathrm{d}y \int_y^1 \mathrm{d}x \cdot(x^2 + y) = \frac{5}{12}
\end{align}$$


&lt;p&gt;&lt;p&gt;&lt;img src='2021-09-17-physics-numerical_Jacobian_center_of_mass/nquad.png' alt='figalt' max-width:100%&gt;&lt;p&gt;&lt;/p&gt;

&lt;pre&gt;&lt;code class="language-python"&gt;from scipy.integrate import nquad


def func(x, y):
    return x**2 + y


def range_x(y):
    return [0, y]


# 先积 x (y, 1), 再 …&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;&lt;/p&gt;</summary><content type="html">
&lt;h2&gt;&lt;code&gt;nuqad&lt;/code&gt; 的用法&lt;/h2&gt;


$$\begin{align}
\int_0^1\mathrm{d}y \int_y^1 \mathrm{d}x \cdot(x^2 + y) = \frac{5}{12}
\end{align}$$


&lt;p&gt;&lt;p&gt;&lt;img src='2021-09-17-physics-numerical_Jacobian_center_of_mass/nquad.png' alt='figalt' max-width:100%&gt;&lt;p&gt;&lt;/p&gt;

&lt;pre&gt;&lt;code class="language-python"&gt;from scipy.integrate import nquad


def func(x, y):
    return x**2 + y


def range_x(y):
    return [0, y]


# 先积 x (y, 1), 再积 y(0, 1)
res = nquad(func, [range_x, [0, 1]])
print(res)
print(5/12)&lt;/code&gt;&lt;/pre&gt;

&lt;pre&gt;&lt;code class="language-shell"&gt;(0.41666666666666663, 1.473075555508962e-14)
0.4166666666666667&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;a href='2021-09-17-physics-numerical_Jacobian_center_of_mass/nquad.py'&gt;code&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;定积分换元到质心系&lt;/h2&gt;


$$\begin{align}
\int_0^{2\pi} \mathrm{d}\phi_k \int_0^{2\pi}\mathrm{d}\phi_q \cdot f(\phi_k - \phi_q)
= \frac{1}{2}\int_{-2\pi}^{2\pi} \mathrm{d}\phi_- \cdot l(\phi_-) f(\phi_-)
\end{align}$$

&lt;p&gt;where&lt;/p&gt;

$$\begin{align}
\phi_+ =&amp; \phi_k + \phi_q \\
\phi_- =&amp; \phi_k - \phi_q \\
l(\phi_-) =&amp; \left\{\matrix{4\pi - 2\phi_-, \quad \phi_-&gt;0\\
                      4\pi + 2\phi_-, \quad \phi_-&gt;0}\right.
\end{align}$$


&lt;p&gt;&lt;p&gt;&lt;img src='2021-09-17-physics-numerical_Jacobian_center_of_mass/center_of_mass.png' alt='figalt' max-width:100%&gt;&lt;p&gt;&lt;/p&gt;

&lt;pre&gt;&lt;code class="language-python"&gt;import numpy as np
from scipy.integrate import quad
from scipy.integrate import nquad


def l_bound(phi_minus):
    if phi_minus &amp;gt; 0:
        l_bound = 4*np.pi - 2*phi_minus
    else:
        l_bound = 4*np.pi + 2*phi_minus
    return l_bound


def f(phi_minus):
    res = phi_minus + 2*phi_minus**2 + 3*phi_minus**3 - 3**phi_minus
    return res


center = quad(lambda phi_minus: l_bound(phi_minus)*f(phi_minus)/2, -2*np.pi,
              2*np.pi)


normal = nquad(lambda phi_k, phi_q: f(phi_k-phi_q), [[0, 2*np.pi],
                                                     [0, 2*np.pi]])
print(center)
print(normal)&lt;/code&gt;&lt;/pre&gt;

&lt;pre&gt;&lt;code class="language-shell"&gt;(-303.255886295168, 2.462030579408747e-11)
(-303.2558862951685, 2.2693158156346615e-11)&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;a href='2021-09-17-physics-numerical_Jacobian_center_of_mass/center_of_mass.py'&gt;code&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;Reference&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href='https://docs.scipy.org/doc/scipy/reference/generated/scipy.integrate.nquad.html'&gt;https://docs.scipy.org/doc/scipy/reference/generated/scipy.integrate.nquad.html&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Stewart, J. Calculus. (Cengage Learning, 2016). Chap 15.9, Change of Variables in Multiple Integrals&lt;/li&gt;
&lt;/ul&gt;
</content><category term="专业笔记"/><category term="scipy"/><category term="center of mass"/></entry><entry><title>scipy.integrate.quad 是如何取点的, 以及记录所计算的点(update 4/April/2023)</title><link href="https://zqw.ink/2021-09-16-physics-scipy_integrate.html" rel="alternate"/><published>2021-09-16T00:00:00+08:00</published><updated>2021-09-16T00:00:00+08:00</updated><author><name>ZQW</name></author><id>tag:zqw.ink,2021-09-16:/2021-09-16-physics-scipy_integrate.html</id><summary type="html">
&lt;h2&gt;探究 &lt;code&gt;scipy.integrate.quad&lt;/code&gt; 取点的方式&lt;/h2&gt;

&lt;p&gt;&lt;a href='2021-09-16-physics-scipy_integrate/code.py'&gt;code.py&lt;/a&gt;&lt;/p&gt;

&lt;pre&gt;&lt;code class="language-python"&gt;import numpy as np
from scipy import integrate
import matplotlib.pyplot as plt

nodes = []


def foo(x):
    nodes.append(x)
    return np.exp(x) + np.sin(10*x)**2 + np.exp(x)**100


result = integrate.quad(foo, -1 …&lt;/code&gt;&lt;/pre&gt;</summary><content type="html">
&lt;h2&gt;探究 &lt;code&gt;scipy.integrate.quad&lt;/code&gt; 取点的方式&lt;/h2&gt;

&lt;p&gt;&lt;a href='2021-09-16-physics-scipy_integrate/code.py'&gt;code.py&lt;/a&gt;&lt;/p&gt;

&lt;pre&gt;&lt;code class="language-python"&gt;import numpy as np
from scipy import integrate
import matplotlib.pyplot as plt

nodes = []


def foo(x):
    nodes.append(x)
    return np.exp(x) + np.sin(10*x)**2 + np.exp(x)**100


result = integrate.quad(foo, -1, 1, epsrel=1e-125, limit=2, full_output=1)
n = np.linspace(1, len(nodes), len(nodes))
print(len(nodes))
print(len(nodes)/21)
print(result[2]['neval'])
plt.plot(n, nodes, '*')
plt.grid()
plt.title('limit = 2')
plt.xlabel(r"$i$")
plt.ylabel("position of $i$th node")
plt.savefig('fig.png')&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&lt;p&gt;&lt;img src='2021-09-16-physics-scipy_integrate/fig.png' alt='fig' max-width:100%&gt;&lt;p&gt;&lt;/p&gt;

&lt;h2&gt;记录所计算的值&lt;/h2&gt;

&lt;p&gt;利用列表的性质，实现记录积分的过程中所计算的函数值。&lt;/p&gt;

&lt;p&gt;&lt;a href='2021-09-16-physics-scipy_integrate/code.py'&gt;quad_recorded.py&lt;/a&gt;&lt;/p&gt;

&lt;pre&gt;&lt;code class="language-python"&gt;import matplotlib.pyplot as plt
import numpy as np
from scipy.integrate import quad


def quad_recorded(func, *args, **kwargs):
    """
    use scipy.integrate.quad, but return the results with additional
    information "nc" and "vc".

    Returns:
        inte_res: the return of scipy.integrate.quad
              nc: the points calculated
              vc: the calculated functiona values
    """
    def func_recorded(x, node_container, value_container):
        res = func(x)
        node_container.append(x)
        value_container.append(res)
        return res
    nc = []
    vc = []
    inte_res = quad(lambda x: func_recorded(x, node_container=nc,
                                            value_container=vc),
                    *args, **kwargs)
    idx = np.argsort(np.array(nc))
    nc = np.array(nc)[idx].tolist()
    vc = np.array(vc)[idx].tolist()
    return inte_res, nc, vc


res, nc, vc = quad_recorded(np.sin, 0, np.pi, points=[.5])
plt.plot(nc, vc, '*')
print(res)
plt.savefig('quad_recorded.png', transparent=True)&lt;/code&gt;&lt;/pre&gt;

&lt;pre&gt;&lt;code class="language-python"&gt;&amp;gt;&amp;gt;&amp;gt; (1.9999999999999998, 2.2204460492503128e-14)&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&lt;p&gt;&lt;img src='2021-09-16-physics-scipy_integrate/quad_recorded.png' alt='quad_recorded' max-width:100%&gt;&lt;p&gt;&lt;/p&gt;

&lt;p&gt;可以看出，正如所预期的，在 $0.5$ 处切开了。此函数可以用于保存计算较慢的积分，查
看被积函数是否光滑，是否真的收敛。&lt;/p&gt;

&lt;h2&gt;Reference&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href='https://docs.scipy.org/doc/scipy/reference/reference/generated/scipy.integrate.quad.html#scipy.integrate.quad'&gt;scipy.integrate.quad&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href='https://en.wikipedia.org/wiki/QUADPACK'&gt;wikipedia: QUADPACK&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href='https://en.wikipedia.org/wiki/Adaptive_quadrature'&gt;wikipedia: Adaptive quadrature&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</content><category term="软件使用"/><category term="python"/><category term="quadrature"/></entry><entry><title>Atomic and Optical Physics I, 02 ResonanceII: Larmor Procession Note</title><link href="https://zqw.ink/2021-09-11-physics-mitamo02.html" rel="alternate"/><published>2021-09-11T00:00:00+08:00</published><updated>2021-09-11T00:00:00+08:00</updated><author><name>ZQW</name></author><id>tag:zqw.ink,2021-09-11:/2021-09-11-physics-mitamo02.html</id><summary type="html">
&lt;h2&gt;Information&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;官方介绍: https://ocw.mit.edu/courses/physics/8-421-atomic-and-optical-physics-i-spring-2014/&lt;/li&gt;
&lt;li&gt;视频列表地址: https://www.youtube.com/playlist?list=PLUl4u3cNGP62FPGcyFJkzhqq9c5cHCK32&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Fourier limit?&lt;/h2&gt;

&lt;h2&gt;Lorentz model for an atom&lt;/h2&gt;

&lt;p&gt;见另一独立的&lt;/p&gt;

&lt;h2&gt;Larmor Procession&lt;/h2&gt;

&lt;p&gt;经典磁矩可以假想电流 …&lt;/p&gt;</summary><content type="html">
&lt;h2&gt;Information&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;官方介绍: https://ocw.mit.edu/courses/physics/8-421-atomic-and-optical-physics-i-spring-2014/&lt;/li&gt;
&lt;li&gt;视频列表地址: https://www.youtube.com/playlist?list=PLUl4u3cNGP62FPGcyFJkzhqq9c5cHCK32&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Fourier limit?&lt;/h2&gt;

&lt;h2&gt;Lorentz model for an atom&lt;/h2&gt;

&lt;p&gt;见另一独立的&lt;/p&gt;

&lt;h2&gt;Larmor Procession&lt;/h2&gt;

&lt;p&gt;经典磁矩可以假想电流得到&lt;/p&gt;

$$\begin{align}
  \vec{\mu} = I \vec{S}
\end{align}$$

&lt;p&gt;其中 $I$ 为环形电流, $\vec{S}$ 为环形电流围成的面积. 若是带电 $-e$ 电子, 则&lt;/p&gt;

$$\begin{align}
  \mu = \frac{-e}{2\pi r / v} \cdot \pi r^2 = \frac{-e}{2m} \cdot m v r = -\frac{e}{2m} L
\end{align}$$

&lt;p&gt;写成矢量形式, 并定义旋磁比 gyromagnetic ratio $\gamma = -\frac{e}{2m}$&lt;/p&gt;

$$\begin{align}
  \vec{\mu} = \gamma \vec{L}
\end{align}$$

&lt;p&gt;磁矩在磁场中受到的力矩为&lt;/p&gt;

$$\begin{align}
  \vec{\tau} = \vec{\mu} \times \vec{B}
\end{align}$$

&lt;p&gt;那么角动量的变化就是力矩&lt;/p&gt;

$$\begin{align}
  \dot{\vec{L}} = \vec{\mu}\times \vec{B} = -\gamma \vec{B} \times \vec{L}
\end{align}$$

&lt;p&gt;可知, $\vec{L}$ 变化的方向与 $\vec{B}$ 和 $\vec{L}$ 都垂直, 且大小不变, 也就是说
在绕 $B$ 进动. 而 $-\gamma \vec{B}$ 是频率的量纲, 是进动的频率, Larmor 频率&lt;/p&gt;

$$\begin{align}
  \Omega_L = \frac{e}{2m}B
\end{align}$$

&lt;p&gt;定义 Bohr magneton 为轨道角动量为 $L = - \hbar$ 时对应的磁矩&lt;/p&gt;

$$\begin{align}
  \mu_B = \gamma \cdot (-\hbar) =\frac{e\hbar}{2m_e} \approx 2\pi \times 1.4 \hbar \mathrm{MHz /G}
\end{align}$$

&lt;p&gt;但是电子自旋的 gyromagnetic ratio 是经典值的 $g_s = -g_e = 2$ 倍. 即
如, 电子的 gyromagnetic ratio is&lt;/p&gt;

$$\begin{align}
|\gamma_e| \approx 2 \times \frac{e}{2m_e} = 2\pi \times 2.8 \mathrm{MHz /G}
\end{align}$$


&lt;p&gt;如果自旋 $z$ 分量的
量子数为 $m_s$ , 那么对应的磁矩为&lt;/p&gt;

$$\begin{align}
\mu_z = g_s\cdot \frac{-e}{2 m_e}\cdot m_s\hbar  = - g_s \mu_B m_s
\end{align}$$

&lt;p&gt;总的来说, $L = \hbar, S = \frac{1}{2}\hbar$ 的电子, 对应的磁矩都是 $\mu_B$ , 但是磁矩的方
向与角动量的方向相反.&lt;/p&gt;

&lt;p&gt;The angular precession frequency has an important physical meaning: It is the
angular cyclotron frequency, the resonance frequency of an ionized plasma being
under the influence of a static finite magnetic field, when we superimpose a
high frequency electromagnetic field.&lt;/p&gt;

&lt;h2&gt;Rotating Coordinate Trans&lt;/h2&gt;


$$\begin{align}
\left.\frac{\mathrm{d}}{\mathrm{d}t}\right|_{\mathrm{rot}}
 = \left.\frac{\mathrm{d}}{\mathrm{d}t}\right|_{\mathrm{inertial}}
   - \vec{\Omega}\times
\end{align}$$

&lt;blockquote&gt;Exp:

\begin{align}
\dot{\mathrm{L}}_{\mathrm{rot}} = \dot{\mathrm{L}}_{\mathrm{inertial}}
  - \Omega\times \vec{L} = \gamma \vec{L} (\vec{B} + \frac{\vec{\Omega}}{\gamma})
\end{align}&lt;/blockquote&gt;
&lt;p&gt;If choose rotating frequency&lt;/p&gt;

$$\begin{align}
\vec{\Omega} = \Omega_L = - \gamma \vec{B}
\end{align}$$

&lt;p&gt;then&lt;/p&gt;

$$\begin{align}
 \vec{B}_{\mathrm{rot}} = 0
\end{align}$$

&lt;p&gt;so, you can transform away the effect of a magnetic field by going to rotating
fram at the Larmor frequency.&lt;/p&gt;

&lt;h2&gt;Reference&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;杨福家, 原子物理学, 第四版&lt;/li&gt;
&lt;li&gt;&lt;a href='https://en.wikipedia.org/wiki/Gyromagnetic_ratio'&gt;Wikipedia: Gyromagnetic ratio&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href='https://en.wikipedia.org/wiki/Spin_magnetic_moment'&gt;Spin magnetic moment&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href='https://en.wikipedia.org/wiki/G-factor_(physics)'&gt;G-factor&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Foot, C. J. Atomic physics. (Oxford University Press, 2005).&lt;/li&gt;
&lt;/ul&gt;
</content><category term="专业笔记"/><category term="Resonance"/><category term="Atomic and Optical Physics"/></entry><entry><title>Lorentz Model for an Atom</title><link href="https://zqw.ink/2021-09-10-physics-lorentzmodel.html" rel="alternate"/><published>2021-09-10T00:00:00+08:00</published><updated>2021-09-10T00:00:00+08:00</updated><author><name>ZQW</name></author><id>tag:zqw.ink,2021-09-10:/2021-09-10-physics-lorentzmodel.html</id><summary type="html">
&lt;h2&gt;Information&lt;/h2&gt;

&lt;p&gt;来自 Wolfgang Kettler 的 AMO 课中提到&lt;/p&gt;

&lt;h2&gt;Model&lt;/h2&gt;

&lt;p&gt;原子由一个固定不动正电荷, 和一个质量为 $m$ , 带电为 $q$ 的负电荷组成, 二者由一个劲度系数 …&lt;/p&gt;</summary><content type="html">
&lt;h2&gt;Information&lt;/h2&gt;

&lt;p&gt;来自 Wolfgang Kettler 的 AMO 课中提到&lt;/p&gt;

&lt;h2&gt;Model&lt;/h2&gt;

&lt;p&gt;原子由一个固定不动正电荷, 和一个质量为 $m$ , 带电为 $q$ 的负电荷组成, 二者由一个劲度系数 $C$
的弹簧连接. 原子处于外加驱动电场 $E(t) = e^{-\mathrm{i}\omega t}$ 中, 运动时受到与速度成正比的阻尼
$m\gamma \dot{x}$, 可列出牛顿第二定律的运动方程&lt;/p&gt;

$$\begin{align}
  qE(t) - Cx(t) - m\gamma \dot{x}(t) = m \ddot{x}(t)
\end{align}$$

&lt;p&gt;记&lt;/p&gt;

$$\begin{align}
  \omega_0 = \sqrt{\frac{C}{m}}
\end{align}$$

&lt;p&gt;上式解得&lt;/p&gt;

$$\begin{align}
  x(t) = \frac{q E(t)}{m} \frac{1}{\omega_0^2 - \omega^2 - \mathrm{i}\omega\gamma}
\end{align}$$

&lt;p&gt;是一个 Lorentz shape 的形式.&lt;/p&gt;

&lt;h2&gt;Dipole moment&lt;/h2&gt;


$$\begin{align}
  p = q x = \frac{q^{2} E(t)}{m} \frac{1}{\omega_0^2 - \omega^2 - \mathrm{i}\omega\gamma}
\end{align}$$


&lt;h2&gt;Polarization&lt;/h2&gt;
&lt;p&gt;n is the electrons per volume&lt;/p&gt;

$$\begin{align}
  P = np = \frac{n q^{2} E(t)}{m} \frac{1}{\omega_0^2 - \omega^2 - \mathrm{i}\omega\gamma}
\end{align}$$


&lt;h2&gt;Susceptibility&lt;/h2&gt;


$$\begin{align}
  \chi = \frac{P}{\epsilon_0E} = \frac{n q^{2} E}{\epsilon_0 m} \frac{1}{\omega_0^2 - \omega^2 - \mathrm{i}\omega\gamma}
\end{align}$$

&lt;p&gt;define plasma frequency&lt;/p&gt;

$$\begin{align}
\omega_p = \sqrt{\frac{n q^2}{m\epsilon_0}}
\end{align}$$

&lt;p&gt;so&lt;/p&gt;

$$\begin{align}
  \chi = \frac{\omega_p^2}{\omega_0^2 - \omega^2 - \mathrm{i}\omega\gamma}
\end{align}$$


&lt;h2&gt;Permittivity&lt;/h2&gt;


$$\begin{align}
\epsilon_r = 1 + \chi = 1 + \frac{\omega_p^2}{\omega_0^2 - \omega^2 - \mathrm{i}\omega\gamma}
\end{align}$$


&lt;h2&gt;Reference&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;https://physics.byu.edu/faculty/colton/docs/phy442-winter20/lecture-11-Lorentz-oscillator-model.pdf&lt;/li&gt;
&lt;/ul&gt;
</content><category term="专业笔记"/><category term="Lorentz"/></entry><entry><title>Atomic and Optical Physics I, 01 Resonance Note</title><link href="https://zqw.ink/2021-09-09-physics-mitamo01.html" rel="alternate"/><published>2021-09-09T00:00:00+08:00</published><updated>2021-09-09T00:00:00+08:00</updated><author><name>ZQW</name></author><id>tag:zqw.ink,2021-09-09:/2021-09-09-physics-mitamo01.html</id><summary type="html">
&lt;h2&gt;Information&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;官方介绍: https://ocw.mit.edu/courses/physics/8-421-atomic-and-optical-physics-i-spring-2014/&lt;/li&gt;
&lt;li&gt;视频列表地址: https://www.youtube.com/playlist?list=PLUl4u3cNGP62FPGcyFJkzhqq9c5cHCK32&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;整个课程的介绍&lt;/h2&gt;

&lt;p&gt;AMO continu redefine itself&lt;/p&gt;

&lt;h2&gt;Resonance&lt;/h2&gt;

&lt;p&gt;The phenomenon of resonance is that you have something which can periodically
vary …&lt;/p&gt;</summary><content type="html">
&lt;h2&gt;Information&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;官方介绍: https://ocw.mit.edu/courses/physics/8-421-atomic-and-optical-physics-i-spring-2014/&lt;/li&gt;
&lt;li&gt;视频列表地址: https://www.youtube.com/playlist?list=PLUl4u3cNGP62FPGcyFJkzhqq9c5cHCK32&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;整个课程的介绍&lt;/h2&gt;

&lt;p&gt;AMO continu redefine itself&lt;/p&gt;

&lt;h2&gt;Resonance&lt;/h2&gt;

&lt;p&gt;The phenomenon of resonance is that you have something which can periodically
vary, and when you drive it, you see peaked response.&lt;/p&gt;

&lt;h2&gt;Quality factor&lt;/h2&gt;


$$\begin{align}
  Q = \frac{f_0}{\Delta f}
\end{align}$$


&lt;p&gt;原子物理中, $Q$ 一般非常大.&lt;/p&gt;

&lt;p&gt;High quality Oscillator is the tool for discovery.&lt;/p&gt;

&lt;h2&gt;Whispering-gallery modes&lt;/h2&gt;

&lt;h2&gt;Lorentzian shape&lt;/h2&gt;


$$\begin{align}
  \propto \mathrm{Im} \frac{1}{\omega_0 - \omega - \mathrm{i}\frac{\gamma}{2}}
\end{align}$$


$$\begin{align}
  \gamma = \Delta\omega , \quad Q = \frac{\omega_0}{\gamma}
\end{align}$$


&lt;h2&gt;Unit&lt;/h2&gt;

&lt;p&gt;angular frequency $\omega$ units: rad/s or $\mathrm{s}^{-1}$&lt;/p&gt;


$$\begin{align}
  f = \frac{\omega_0}{2\pi}
\end{align}$$


&lt;blockquote&gt;Exp:

\begin{align}
\omega_0 = 2\pi \cdot 1 \mathrm{MHz} = 6.28 \times 10^6 \mathrm{s}^{-1}
\end{align}&lt;/blockquote&gt;

&lt;p&gt;$\gamma$ units: $\mathrm{s}^{-1}$, $e^{-\mathrm{i}\omega t - \gamma t}$&lt;/p&gt;
&lt;blockquote&gt;\begin{align}
\gamma = 10^4 \mathrm{s}^{-1}
\end{align}
not
\begin{align}
\gamma = 10^4 \mathrm{Hz} \\
\gamma = 2\pi\times 1.66 \mathrm{Hz}
\end{align}&lt;/blockquote&gt;

&lt;h2&gt;Q&lt;/h2&gt;

&lt;p&gt;Fourier trans of Lorentzian shpe?&lt;/p&gt;

&lt;h2&gt;Reference&lt;/h2&gt;
</content><category term="专业笔记"/><category term="Resonance"/><category term="Atomic and Optical Physics"/></entry><entry><title>Tan 的 Lambda function 中的积分</title><link href="https://zqw.ink/2021-09-08-physics-tan_lambda_function.html" rel="alternate"/><published>2021-09-08T00:00:00+08:00</published><updated>2021-09-08T00:00:00+08:00</updated><author><name>ZQW</name></author><id>tag:zqw.ink,2021-09-08:/2021-09-08-physics-tan_lambda_function.html</id><summary type="html">

$$\begin{align}
  I = \int \mathrm{d}^3k \left[ \frac{1}{(\vec{k} - \vec{k}_0)^{2}}
    + \frac{1}{(\vec{k} + \vec{k}_0)^{2}}
    - \frac{2}{k^2} \right]
   = 0
\end{align}$$


&lt;p&gt;Mahtematica 可以直接得到&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-mathematica"&gt;Integrate[k^2 (1/(k^2+k0^2- 2 k k0 …&lt;/code&gt;&lt;/pre&gt;</summary><content type="html">

$$\begin{align}
  I = \int \mathrm{d}^3k \left[ \frac{1}{(\vec{k} - \vec{k}_0)^{2}}
    + \frac{1}{(\vec{k} + \vec{k}_0)^{2}}
    - \frac{2}{k^2} \right]
   = 0
\end{align}$$


&lt;p&gt;Mahtematica 可以直接得到&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-mathematica"&gt;Integrate[k^2 (1/(k^2+k0^2- 2 k k0 x)-2/k^2+1/(k^2+k0^2+2 k k0 x)),{x,-1,1},{k,0, \[Infinity]}]&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;太失败了, 是一开始想复杂, 根本没有奇异性...&lt;/p&gt;

&lt;h2&gt;Reference&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Tan, S. Energetics of a strongly correlated Fermi gas. Annals of Physics 323, 2952–2970 (2008).&lt;/li&gt;
&lt;/ul&gt;
</content><category term="专业笔记"/><category term="Principal value"/></entry><entry><title>研四下学期总结</title><link href="https://zqw.ink/2021-09-07-thinking-summary_grade_4_2.html" rel="alternate"/><published>2021-09-07T00:00:00+08:00</published><updated>2021-09-07T00:00:00+08:00</updated><author><name>ZQW</name></author><id>tag:zqw.ink,2021-09-07:/2021-09-07-thinking-summary_grade_4_2.html</id><summary type="html">
&lt;h2&gt;序&lt;/h2&gt;

&lt;p&gt;前天返校, 昨天看了 Susskind 的三节视频.&lt;/p&gt;

&lt;h2&gt;课题&lt;/h2&gt;

&lt;p&gt;终于找到了动量分布的 tail 之前没有对上的原因. 原来大家的径向分布都没有带 …&lt;/p&gt;</summary><content type="html">
&lt;h2&gt;序&lt;/h2&gt;

&lt;p&gt;前天返校, 昨天看了 Susskind 的三节视频.&lt;/p&gt;

&lt;h2&gt;课题&lt;/h2&gt;

&lt;p&gt;终于找到了动量分布的 tail 之前没有对上的原因. 原来大家的径向分布都没有带上体积因
子 $r^2$ . 看起来非常简单的原因, 却找了一个学期的时间. 虽然不算浪费时间, 但是也有
点惋惜. 找原因的思路是没有问题的, 那就是把 tail 是如何得到的推导一遍, 用自己数值
计算用的方法推导一遍.&lt;/p&gt;

&lt;p&gt;找 tail 的原因, 又重复了一些经典的工作, 比如 s 波的 BEC-BCS crossover 的
$T_{\mathrm{C}}$ 随相互作用的曲线, 收获也很大.&lt;/p&gt;

&lt;p&gt;收获一是在于理论上的方法, 期间参考了 Strinati 的那篇综述, 学到了很多知识, 对留数
定理的应用, 分析 pole 的位置.&lt;/p&gt;

&lt;p&gt;收获二是在于数值方法上的, 为了探寻最有效的积分方法, 终于知道了 scipy.integrate
里面的 quad 方法是如何算的, 知道了它是上个世纪 80 年代就写成, 至今没有进一步更新
的 fortran 77 包 QUADPACK, 它综合了许多数值积分的方法, 可以用参数指定, 而最常用
的就是用两种 quadrature 方法点来计算, gsl 也有把 QUADPACK 的方法重新用 c++ 重写,
可以学习它的源码. 一般来讲, 给定函数计算低维的数值积分, 没有比这个更优化的方法,
关键就是针对特定的函数, 如何在一些发散的地方做一些处理. 所以用哪个语言都一样, 效
率都是这样, 因为 scipy 也是 fortran 写的. 了解了这些, 有种不惧任何数值积分的错觉...&lt;/p&gt;

&lt;h2&gt;读书&lt;/h2&gt;

&lt;p&gt;本学期组内读书会读的是 Ahtony Zee 的群论, 读了前三章, 回顾了一些知识.&lt;/p&gt;

&lt;p&gt;Carl Bender 微扰公开课的第七节.&lt;/p&gt;

&lt;p&gt;Athony Zee, Peskin &amp; Schroeder 的两本量子场论认真地看了开头, 后面也非常粗率地浏
览了一下, 大致了角了高能物理在研究什么.&lt;/p&gt;

&lt;p&gt;最令人振奋的是看了 Susskind 的一系列视频, 这才真的是宝藏! 即使之前学过的知识, 再
听他讲也非常有收获. 没学过的, 只要认真听, 都是了解大概的脉络. 看了他的课, 我才意
识到, 书本和讲课的本质区别. 讲课在于, 用最容易理解的语言, 最简单, 不求严谨的例子,
讲清最核心的概念, 激发出求知的欲望, 掌握整体的框架. 而书本在于, 在求知欲的引导下,
填满那些课堂上缺失的细节, 做习题熟悉概念. 只听课容易空旷, 只看书容易迷失. 这样明
显的道理, 我是悟到地有一点晚了. 目前看了 Susskind 的 quantum mechanics,
classical field theory, statistical mechanics, particl physic I, particle physic
II.&lt;/p&gt;

&lt;p&gt;还发现了 Wolfgang Ketterle 的 AMO 公开课, 由于时间关系, 只看了两节. 之后还会再看.&lt;/p&gt;

&lt;h2&gt;业余&lt;/h2&gt;

&lt;p&gt;在校期间没怎么发展爱好, 唯一的休闲是打邦邦, 直到暑假的时候, 我发现我最高都可以打
过 28 的曲子了, 之前从没想到的六兆年也部分可打, 真就是形成肌肉记忆了, 时间的力量
真是强大!&lt;/p&gt;

&lt;p&gt;在青岛开会学习也很开心!&lt;/p&gt;

&lt;p&gt;八月在暑假在家一个月, 完全没学物理. 买了一把吉他 Yamaha F310 练了一个月, 这一个
月练习算是比较多了, 成果也还满意. 吉他成为我心中最易初学的乐器, 有人初学音乐, 吉
他是首选:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;相比钢琴, 键盘等, 它体积小, 不用插电, 在哪都能弹, 方便 max!&lt;/li&gt;
&lt;li&gt;相比口琴, 弹吉他不用漱口, 可以吃着东西弹, 而且长时间弹也不会腮邦子疼!&lt;/li&gt;
&lt;li&gt;声音穿透没有口琴那么强, 不用担心扰民, 在家我可以深夜弹吉他, 口琴是绝对不能的!&lt;/li&gt;
&lt;li&gt;发声简单! 只要按对弦, 就和键盘一样, 哪个音都是一样简单. 不像十孔口琴, 能吹出干 净的单音就要一些练习, 许多曲子更是要压音, 超吹.&lt;/li&gt;
&lt;li&gt;便于学习一些乐理.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;在这个暑假里, 在旷野之息的世界里, 林克已经无所畏惧了, 爆头秒人马, 风弹満图飞.&lt;/p&gt;

&lt;h2&gt;总&lt;/h2&gt;

&lt;p&gt;一波总结下来, 这学期还真是充实. 但是, 课题还是没有做完! 这次奖学金我又要蝉联三等
了...&lt;/p&gt;

&lt;p&gt;新学期是真正的, 没有一门课要上的学期! 做了冷原子助教, 希望这次能花时间认认真真地
学一下.&lt;/p&gt;

&lt;p&gt;last but not least, 我都五年级了, 课题, 抓紧!&lt;/p&gt;
</content><category term="想说"/><category term="总结"/></entry><entry><title>Susskind's Particle Pyhsics II: Standard Model Note</title><link href="https://zqw.ink/2021-09-06-physics-susskindsparticlephysicsii.html" rel="alternate"/><published>2021-09-06T00:00:00+08:00</published><updated>2021-09-06T00:00:00+08:00</updated><author><name>ZQW</name></author><id>tag:zqw.ink,2021-09-06:/2021-09-06-physics-susskindsparticlephysicsii.html</id><summary type="html">
&lt;h2&gt;Information&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;官方介绍: https://theoreticalminimum.com/courses/particle-physics-2-standard-model/2010/winter&lt;/li&gt;
&lt;li&gt;视频列表地址: https://www.youtube.com/playlist?list=PL8BCB4981DD1A0108&lt;/li&gt;
&lt;li&gt;把主要内容整理一下.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;  开学在即, 不务正业, 火箭坐一发!&lt;/p&gt;

&lt;h2&gt;Lecture 1: Particles …&lt;/h2&gt;</summary><content type="html">
&lt;h2&gt;Information&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;官方介绍: https://theoreticalminimum.com/courses/particle-physics-2-standard-model/2010/winter&lt;/li&gt;
&lt;li&gt;视频列表地址: https://www.youtube.com/playlist?list=PL8BCB4981DD1A0108&lt;/li&gt;
&lt;li&gt;把主要内容整理一下.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;  开学在即, 不务正业, 火箭坐一发!&lt;/p&gt;

&lt;h2&gt;Lecture 1: Particles, Fields &amp; Forces&lt;/h2&gt;

&lt;p&gt;Any particle can be exchanged in some context or another. So every kind of
particle in one way or another produces a force.&lt;/p&gt;

&lt;blockquote&gt;Example:

Covalent bounds: sharing an electron

Coulomb: exchange photons&lt;/blockquote&gt;


&lt;table&gt;
&lt;tr&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt; Name     &lt;/td&gt;
&lt;td&gt; Symbol        &lt;/td&gt;
&lt;td&gt; Type    &lt;/td&gt;
&lt;td&gt; Charge         &lt;/td&gt;
&lt;td&gt; B number      &lt;/td&gt;
&lt;td&gt; Mass      &lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt; Photon   &lt;/td&gt;
&lt;td&gt; $\gamma, A$       &lt;/td&gt;
&lt;td&gt; Boson   &lt;/td&gt;
&lt;td&gt; $0$            &lt;/td&gt;
&lt;td&gt; $0$           &lt;/td&gt;
&lt;td&gt; $0$       &lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt; Electron &lt;/td&gt;
&lt;td&gt; $e^{\pm}, \psi_e$ &lt;/td&gt;
&lt;td&gt; Fermion &lt;/td&gt;
&lt;td&gt; $-1$           &lt;/td&gt;
&lt;td&gt; $0$           &lt;/td&gt;
&lt;td&gt; $.51$ MeV &lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt; Quark    &lt;/td&gt;
&lt;td&gt; $q, \psi_q$     &lt;/td&gt;
&lt;td&gt; F       &lt;/td&gt;
&lt;td&gt;                &lt;/td&gt;
&lt;td&gt; $\frac{1}{3}$ &lt;/td&gt;
&lt;td&gt;           &lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt; down     &lt;/td&gt;
&lt;td&gt;               &lt;/td&gt;
&lt;td&gt;         &lt;/td&gt;
&lt;td&gt; $-\frac{1}{3}$ &lt;/td&gt;
&lt;td&gt;               &lt;/td&gt;
&lt;td&gt; $10$ MeV  &lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt; up       &lt;/td&gt;
&lt;td&gt;               &lt;/td&gt;
&lt;td&gt;         &lt;/td&gt;
&lt;td&gt; $\frac{2}{3}$  &lt;/td&gt;
&lt;td&gt;               &lt;/td&gt;
&lt;td&gt; $5$ MeV   &lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt; strange  &lt;/td&gt;
&lt;td&gt;               &lt;/td&gt;
&lt;td&gt;         &lt;/td&gt;
&lt;td&gt; $-\frac{1}{3}$ &lt;/td&gt;
&lt;td&gt;               &lt;/td&gt;
&lt;td&gt; $100$ MeV &lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt; charm    &lt;/td&gt;
&lt;td&gt;               &lt;/td&gt;
&lt;td&gt;         &lt;/td&gt;
&lt;td&gt; $\frac{2}{3}$  &lt;/td&gt;
&lt;td&gt;               &lt;/td&gt;
&lt;td&gt; $1$ GeV   &lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt; bottom   &lt;/td&gt;
&lt;td&gt;               &lt;/td&gt;
&lt;td&gt;         &lt;/td&gt;
&lt;td&gt; $-\frac{1}{3}$ &lt;/td&gt;
&lt;td&gt;               &lt;/td&gt;
&lt;td&gt; $5$ GeV   &lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt; top      &lt;/td&gt;
&lt;td&gt;               &lt;/td&gt;
&lt;td&gt;         &lt;/td&gt;
&lt;td&gt; $\frac{2}{3}$  &lt;/td&gt;
&lt;td&gt;               &lt;/td&gt;
&lt;td&gt; $170$ GeV &lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;
&lt;h2&gt;Lecture 2: Quantum Chromodynamics&lt;/h2&gt;

&lt;p&gt;Gluons interact with each other forces between gluons.&lt;/p&gt;

&lt;h2&gt;Lecture 3: Group Theory - Part 1&lt;/h2&gt;

&lt;h2&gt;Lecture 4: Group Theory - Part 2&lt;/h2&gt;

&lt;h2&gt;Lecture 5: Gauge Fields and Symmetry&lt;/h2&gt;

&lt;p&gt;Anytime that has conserved quantity analogous to electric charge which functions
as the source of photon like field, that called a gague theory. Gauge theories
are always based on symmetries.&lt;/p&gt;

&lt;h2&gt;Lecture 6: The Weak Interaction&lt;/h2&gt;

&lt;p&gt;Why weak interactions give such slow decay rates?&lt;/p&gt;

&lt;h2&gt;Lecture 7: Spontaneous Symmetry Breaking &amp; Goldstone Bosons&lt;/h2&gt;

&lt;p&gt;How a particle like the photon can get a mass from something called spontaneous
symmetry breaking?&lt;/p&gt;

&lt;p&gt;How if the symmetry group associated with the photon were broken spontaneously
how it would give the photon of mass.&lt;/p&gt;

&lt;p&gt;How gauge bosons like the photon get a mass when spontaneous symmetry breaking?&lt;/p&gt;

&lt;p&gt;what is the symmetry incidentally when I say you associated with photon? There's
a conserved quantity which is the charge. Conserved quantities always go with
symmetries. What's the symmetry that's connected with the conservation of
electric charge? It's thing which multiplies the charged fields by a phase.&lt;/p&gt;

&lt;blockquote&gt;Example of the Higgs phenomenon: Superconductor

Photon get a mass and the $U(1)$ symmetry is spontaneously broken.&lt;/blockquote&gt;

&lt;p&gt;Not the same as photon in prism!&lt;/p&gt;


$$\begin{align}
E = \hbar \omega \\
p = \hbar k \\
\omega = c k
\end{align}$$


&lt;p&gt;if $\omega = 0$ , then $k = 0$ , we call massless.&lt;/p&gt;

&lt;p&gt;$E = \sqrt{p^{2} + m^2}$ , if $p = 0$ , the energy is not zero, that's the mass.&lt;/p&gt;

&lt;p&gt;Oscillations of a field when it is homogeneous when is has infinite wavelength
those are the things we call mass.&lt;/p&gt;

&lt;p&gt;&lt;p&gt;&lt;img src='2021-09-06-physics-SusskindsParticlePhysicsII/dispersion.png' alt='figalt' max-width:100%&gt;&lt;p&gt;&lt;/p&gt;

&lt;p&gt;The Goldstone boson got eaten by the gauge boson resulting in giving the Higgs
boson a mass.&lt;/p&gt;

&lt;p&gt;&lt;p&gt;&lt;img src='2021-09-06-physics-SusskindsParticlePhysicsII/mexico.png' alt='figalt' max-width:100%&gt;&lt;p&gt;&lt;/p&gt;


&lt;h2&gt;Lecture 8: The Higgs Field&lt;/h2&gt;

&lt;p&gt;Gauge invariance is a symmetry which prohibits the photon from having a mass.&lt;/p&gt;

&lt;h2&gt;Lecture 9: The Higgs Field &amp; Fermions&lt;/h2&gt;


&lt;table&gt;
&lt;tr&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt; massless photons          &lt;/td&gt;
&lt;td&gt;   &lt;/td&gt;
&lt;td&gt; Higgs      &lt;/td&gt;
&lt;td&gt;   &lt;/td&gt;
&lt;td&gt; massive photon       &lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt; massless Goldstone bosons &lt;/td&gt;
&lt;td&gt;   &lt;/td&gt;
&lt;td&gt; $\Longrightarrow$        &lt;/td&gt;
&lt;td&gt;   &lt;/td&gt;
&lt;td&gt; no Goldstone boson   &lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt; massive Higgs bosons      &lt;/td&gt;
&lt;td&gt;   &lt;/td&gt;
&lt;td&gt; phenomenon &lt;/td&gt;
&lt;td&gt;   &lt;/td&gt;
&lt;td&gt; massive Higgs bosons &lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;
&lt;p&gt;Mass stands for energy at rest, but it also stands for energy associated with
uniform homogeneous shifts of fields.&lt;/p&gt;

&lt;p&gt;Moving the plus charges relative to the minus charges -&gt; plasma. Plamas have
mass, phonons do not.&lt;/p&gt;

&lt;p&gt;$\beta$ decay: mirror, discreate, not a symmetry of weak interaction.&lt;/p&gt;

&lt;p&gt;Mass term is a thing which turns left handed to right handed.&lt;/p&gt;

&lt;p&gt;Mass is always for fermions, it always left hand, trun into the right hand,
right hand ...&lt;/p&gt;

&lt;h2&gt;Lecture 10: Running of Coupling Constant&lt;/h2&gt;

&lt;p&gt;Condense: which means the field for this field of particle gets shifted.&lt;/p&gt;

&lt;h2&gt;Self-Examination Questions&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;How to describe weak interaction? Which particles?&lt;/li&gt;
&lt;li&gt;How to describe strong interaction? Which particles?&lt;/li&gt;
&lt;li&gt;What is a gague theory?&lt;/li&gt;
&lt;li&gt;How strong interaction different from others?&lt;/li&gt;
&lt;li&gt;Why weak interactions give such slow decay rates?&lt;/li&gt;
&lt;li&gt;How a particle like the photon can get a mass from something called spontaneous symmetry breaking?&lt;/li&gt;
&lt;li&gt;How fermions get their mass?&lt;/li&gt;
&lt;li&gt;How to understanding the meaning of mass?&lt;/li&gt;
&lt;li&gt;What is Majorana fermion?&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Reference&lt;/h2&gt;
</content><category term="专业笔记"/><category term="physics"/><category term="Particle Physics"/><category term="Susskind"/><category term="Quantum Field Theory"/><category term="Higgs"/><category term="Goldstone"/><category term="Running of Coupling Constant"/></entry><entry><title>青岛青年冷原子</title><link href="https://zqw.ink/2021-08-31-thinking-tsingtao.html" rel="alternate"/><published>2021-08-31T00:00:00+08:00</published><updated>2021-08-31T00:00:00+08:00</updated><author><name>ZQW</name></author><id>tag:zqw.ink,2021-08-31:/2021-08-31-thinking-tsingtao.html</id><summary type="html">
&lt;h2&gt;还是最喜欢 poster 环节&lt;/h2&gt;

&lt;p&gt;第二次参加青年冷原子. 第一次是在两年前. 还是最喜欢 poster 环节, 与人交流的快感.&lt;/p&gt;

&lt;p&gt;这是第二次参加 poster. 还 …&lt;/p&gt;</summary><content type="html">
&lt;h2&gt;还是最喜欢 poster 环节&lt;/h2&gt;

&lt;p&gt;第二次参加青年冷原子. 第一次是在两年前. 还是最喜欢 poster 环节, 与人交流的快感.&lt;/p&gt;

&lt;p&gt;这是第二次参加 poster. 还是比较遗憾, 两年来, 我的课题并没有什么实质性的进展. 与
两年前不同的是, 参加 poster 时能够感觉自己的知识比之前充实, 能找到一个人, 把他的
工作从头到尾问清楚.&lt;/p&gt;

&lt;p&gt;也许我真的不适合做科研, 也许科研并不是要我想像的那样做. 但只要自己感觉到这两年是
充实的就够了. 一点一点, 按自己的标准来吧.&lt;/p&gt;

&lt;h2&gt;青岛&lt;/h2&gt;

&lt;h3&gt;啤酒与gala(蛤蜊)&lt;/h3&gt;

&lt;p&gt;什么时候能够喝醉一次?&lt;/p&gt;

&lt;p&gt;蛤蜊蘸着醋, 一会蛤蜊壳就可以堆成一坐小山.&lt;/p&gt;

&lt;p&gt;&lt;p&gt;&lt;img src='2021-08-31-thinking-tsingtao/gala.jpg' alt='figalt' max-width:100%&gt;&lt;p&gt;&lt;/p&gt;

&lt;h3&gt;恍惚回到烟大&lt;/h3&gt;

&lt;p&gt;晚上在海边的沙滩上, 有一种错觉, 回过头去就是烟大东门.&lt;/p&gt;

&lt;p&gt;&lt;p&gt;&lt;img src='2021-08-31-thinking-tsingtao/sea.jpg' alt='figalt' max-width:100%&gt;&lt;p&gt;&lt;/p&gt;

&lt;h3&gt;淋雨&lt;/h3&gt;

&lt;p&gt;专门跑去五四广场淋雨. 难得的契机.&lt;/p&gt;

&lt;p&gt;&lt;p&gt;&lt;img src='2021-08-31-thinking-tsingtao/rain.jpg' alt='figalt' max-width:100%&gt;&lt;p&gt;&lt;/p&gt;

&lt;h3&gt;没有追到的日落&lt;/h3&gt;

&lt;p&gt;下崂山, 最终没有追上日落. 在家里, 看到了日落.&lt;/p&gt;

&lt;p&gt;&lt;p&gt;&lt;img src='2021-08-31-thinking-tsingtao/sunset.jpg' alt='figalt' max-width:100%&gt;&lt;p&gt;&lt;/p&gt;

&lt;h2&gt;不要结束&lt;/h2&gt;

&lt;p&gt;总觉得现在的事, 应该发生在 16 岁身上. 多么希望青春不曾结束, 不要结束!&lt;/p&gt;

&lt;p&gt;&lt;p&gt;&lt;img src='2021-08-31-thinking-tsingtao/stop.jpg' alt='figalt' max-width:100%&gt;&lt;p&gt;&lt;/p&gt;
</content><category term="blog"/><category term="青岛"/><category term="青年冷原子"/></entry><entry><title>ipad2018 换屏</title><link href="https://zqw.ink/2021-07-24-thinking-ipad_sereen.html" rel="alternate"/><published>2021-07-24T00:00:00+08:00</published><updated>2021-07-24T00:00:00+08:00</updated><author><name>ZQW</name></author><id>tag:zqw.ink,2021-07-24:/2021-07-24-thinking-ipad_sereen.html</id><summary type="html">
&lt;h2&gt;引言&lt;/h2&gt;

&lt;p&gt;事情发生两次第三方维修失败之后.&lt;/p&gt;

&lt;p&gt;2020 年在家度过的那个学期, 把 ipad 的屏幕摔碎了, 如图&lt;/p&gt;

&lt;p&gt;file:2021-07-24-thinking-ipad_sereen/intro1.jpg&lt;/p&gt;

&lt;p&gt;同年 9 月份开学后 …&lt;/p&gt;</summary><content type="html">
&lt;h2&gt;引言&lt;/h2&gt;

&lt;p&gt;事情发生两次第三方维修失败之后.&lt;/p&gt;

&lt;p&gt;2020 年在家度过的那个学期, 把 ipad 的屏幕摔碎了, 如图&lt;/p&gt;

&lt;p&gt;file:2021-07-24-thinking-ipad_sereen/intro1.jpg&lt;/p&gt;

&lt;p&gt;同年 9 月份开学后, 由于疫情, 校外寄修, 280元修好.&lt;/p&gt;

&lt;p&gt;但是过了大约半年后, 又出现了新的问题: home 键无回弹, 屏幕右侧开裂, 进到屏幕里
边一些灰尘.&lt;/p&gt;

&lt;p&gt;此时我已经对此 ipad 无爱了, 已经买了 tab s7+ (体验超乎想像, 手写没有滴答滴答的声
音, 也有一定的阻尼, 定价还比同等定位的 ipad pro 便宜特别多).&lt;/p&gt;

&lt;p&gt;但是, ipad 也不能扔在那不要了, 还是要修一下. 遂到校内某地下维修店咨询维修. 报价:
清屏内的灰 + 粘缝 150块, 再要同时修好 home 键则要 400块. 我选择了 清屏内的灰 +
粘缝 150块.&lt;/p&gt;

&lt;p&gt;至此两次维修已经 430 块了.&lt;/p&gt;

&lt;p&gt;但是, 屏幕内的灰并没有清掉, 只是把侧面用胶粘了一下. 而且, 过了一段时间又开开裂了.
屏幕边缘又出现了一条小的裂缝.&lt;/p&gt;

&lt;p&gt;经对第三方维修彻底失望了!&lt;/p&gt;

&lt;p&gt;自己买了胶, 打算粘一边上的裂缝. 但一不小心, 裂缝又扩到了全屏(裂缝效果如图)&lt;/p&gt;

&lt;p&gt;&lt;p&gt;&lt;img src='2021-07-24-thinking-ipad_sereen/intro2.jpg' alt='figalt' max-width:100%&gt;&lt;p&gt;&lt;/p&gt;

&lt;p&gt;对第三方的维修很失望, 又有些生气! 所以要自己换.&lt;/p&gt;

&lt;h2&gt;工具及价格&lt;/h2&gt;

&lt;p&gt;工具非常重要, 工具不全, 很有可能对机器造成二次伤害. 因此我准备了充足的工具. 最终
用到的工具如下图&lt;/p&gt;

&lt;p&gt;&lt;p&gt;&lt;img src='2021-07-24-thinking-ipad_sereen/tools1.png' alt='figalt' max-width:100%&gt;&lt;p&gt;&lt;/p&gt;

&lt;p&gt;胶是单独买的, 清洗液, 螺丝刀也是好久之前买的. 刀片和撬片是买屏幕和 home 键送的. 刮
刀是之前买墙纸送的. 所以新买的物品及价格如下表&lt;/p&gt;


&lt;table&gt;
&lt;tr&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt; 物品       &lt;/td&gt;
&lt;td&gt; 价格/元 &lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt; 镊子       &lt;/td&gt;
&lt;td&gt;      15 &lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt; 迷你热风枪 &lt;/td&gt;
&lt;td&gt;      50 &lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt; 屏幕       &lt;/td&gt;
&lt;td&gt;      42 &lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt; 总计       &lt;/td&gt;
&lt;td&gt;     107 &lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;
&lt;p&gt;还有买了没用到的...&lt;/p&gt;

&lt;table&gt;
&lt;tr&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt; 物品                                    &lt;/td&gt;
&lt;td&gt; 价格/元 &lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt; 镊子(购物车里点了两件 ...)              &lt;/td&gt;
&lt;td&gt;      15 &lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt; home 键(屏幕带有一个, 而且原来的也没坏) &lt;/td&gt;
&lt;td&gt;      25 &lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt; 总计                                    &lt;/td&gt;
&lt;td&gt;      40 &lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;
&lt;p&gt;下图是买屏幕和 home 键送的一些工具, 但是没有用到&lt;/p&gt;

&lt;p&gt;&lt;p&gt;&lt;img src='2021-07-24-thinking-ipad_sereen/tools2.jpg' alt='figalt' max-width:100%&gt;&lt;p&gt;&lt;/p&gt;

&lt;h2&gt;过程&lt;/h2&gt;

&lt;p&gt;下面是整个过程记录, 括号中是照片的拍摄时间.&lt;/p&gt;

&lt;h3&gt;拆&lt;/h3&gt;

&lt;p&gt;准备开始(11:50)&lt;/p&gt;

&lt;p&gt;&lt;p&gt;&lt;img src='2021-07-24-thinking-ipad_sereen/prepare1.jpg' alt='figalt' max-width:100%&gt;&lt;p&gt;&lt;/p&gt;

&lt;p&gt;首先关机.&lt;/p&gt;

&lt;p&gt;沿着屏幕没有音量键的一侧(原因是有音量键的一侧有排线)用热风枪吹一下, 用刀
片划出缝隙, 插入撬片, 如下图(12:00)&lt;/p&gt;

&lt;p&gt;&lt;p&gt;&lt;img src='2021-07-24-thinking-ipad_sereen/disassemble1.jpg' alt='figalt' max-width:100%&gt;&lt;p&gt;&lt;/p&gt;

&lt;p&gt;同样吹一下上下两侧, 撬开(12:02)&lt;/p&gt;

&lt;p&gt;&lt;p&gt;&lt;img src='2021-07-24-thinking-ipad_sereen/disassemble2.jpg' alt='figalt' max-width:100%&gt;&lt;p&gt;&lt;/p&gt;

&lt;p&gt;撬的过程中又出现了新的裂缝, 但是没关系, 旧屏幕不要了.&lt;/p&gt;

&lt;p&gt;撬开三侧的屏幕后, 把剩下的一侧也用热风枪吹一下, 掀开屏幕, 并拧下内屏四个
角上的螺丝(图中红色圈出的) (12:03)&lt;/p&gt;

&lt;p&gt;&lt;p&gt;&lt;img src='2021-07-24-thinking-ipad_sereen/disassemble3.jpg' alt='figalt' max-width:100%&gt;&lt;p&gt;&lt;/p&gt;

&lt;p&gt;拧下内屏四个角上的螺丝后, 掀开内屏, 注意保护排线, 如下图, (第一次维修的标签还在)
(12:06)&lt;/p&gt;

&lt;p&gt;&lt;p&gt;&lt;img src='2021-07-24-thinking-ipad_sereen/disassemble4.jpg' alt='figalt' max-width:100%&gt;&lt;p&gt;&lt;/p&gt;

&lt;p&gt;拧开三颗螺丝(下图红圈)看见排线(12:11)&lt;/p&gt;

&lt;p&gt;file:2021-07-24-thinking-ipad_sereen/disassemble5.jpg&lt;/p&gt;

&lt;p&gt;下图中红色圈出三个排线, 都要小心拔下&lt;/p&gt;

&lt;p&gt;file:2021-07-24-thinking-ipad_sereen/disassemble6.jpg&lt;/p&gt;

&lt;p&gt;用镊子撬起左边两个(12:13)&lt;/p&gt;

&lt;p&gt;file:2021-07-24-thinking-ipad_sereen/disassemble7.jpg&lt;/p&gt;

&lt;p&gt;右边一个, 揭下上面的一块黑色胶布, 向下图中右侧方向拉出即可 (12:14)&lt;/p&gt;

&lt;p&gt;file:2021-07-24-thinking-ipad_sereen/disassemble8.jpg&lt;/p&gt;

&lt;p&gt;所有排线都已拆下, 此时内外屏可以一起拿下来了 (12:15)&lt;/p&gt;

&lt;p&gt;file:2021-07-24-thinking-ipad_sereen/disassemble9.jpg&lt;/p&gt;

&lt;p&gt;所以, 一个像我一样没有任何拆机经验的人, 在准备好工具, 看过一些教程后, 25分钟可以
拆下屏幕. 此过程没有任何难度, 只要注意排线即可.&lt;/p&gt;

&lt;h3&gt;Home 键&lt;/h3&gt;

&lt;p&gt;新屏幕上集成一个 home 键, 但是没有指纹功能. 所以要换原来的 home 键.&lt;/p&gt;

&lt;p&gt;用热风枪吹一下, 用镊子取下旧屏幕的原装的 home 键 (12:16)&lt;/p&gt;

&lt;p&gt;file:2021-07-24-thinking-ipad_sereen/homekey1.jpg&lt;/p&gt;


&lt;p&gt;把新屏幕上的也用热风枪吹一下, 用镊子取下. 因为粘的比较
结实, 所以一开始用力大了点, 听到一点响声, 还以为屏幕碎了, 好在不是. 之后拆的就比
较温柔了(12:26)&lt;/p&gt;

&lt;p&gt;file:2021-07-24-thinking-ipad_sereen/homekey2.jpg&lt;/p&gt;

&lt;p&gt;取下之后, 发现原来的 home 是有回弹的. 但是放进屏幕上的坑里又没有回弹了.&lt;/p&gt;

&lt;p&gt;我以为是上面残胶导致没有贴合好, 就用热风枪吹一下, 用镊子取下殘胶
(12:34)&lt;/p&gt;

&lt;p&gt;file:2021-07-24-thinking-ipad_sereen/homekey3.jpg&lt;/p&gt;

&lt;p&gt;残胶已经取下(12:36)&lt;/p&gt;

&lt;p&gt;file:2021-07-24-thinking-ipad_sereen/homekey4.jpg&lt;/p&gt;

&lt;p&gt;但是装到坑里还是没有回弹. 我也终于发现了原因!&lt;/p&gt;

&lt;p&gt;如下图, 回弹的装置是 B 处的微动开关. 如果 A, C 两处完全没有缝隙地粘合到屏幕上,
就会使 B 处的微动开关一直处于按下状态. 因此 A, C 两处应留有一定的缝隙!&lt;/p&gt;

&lt;p&gt;我的处理方法是, 在 C 处的屏幕上滴上几滴胶(A处有残留的双面胶, 就不滴胶了), 然后准
B 处, 使 B 处接触但微动开关处于不按下的状态, 静置, 等胶表面凝固&lt;/p&gt;

&lt;p&gt;file:2021-07-24-thinking-ipad_sereen/figure1.jpg&lt;/p&gt;

&lt;p&gt;在此附上三个 home 键的对比 (12:37)&lt;/p&gt;

&lt;p&gt;file:2021-07-24-thinking-ipad_sereen/homekey5.jpg&lt;/p&gt;

&lt;p&gt;可以发现, 原装的和第三方生产的 home 键结构不一样. 第三方的 home 键微动开关是一体
的, 因此比较好安装. 但是第三方的没有指纹功能.&lt;/p&gt;

&lt;p&gt;为了保险起见, 在 A处也上了一些胶 (12:47)&lt;/p&gt;

&lt;p&gt;file:2021-07-24-thinking-ipad_sereen/homekey6.jpg&lt;/p&gt;

&lt;h3&gt;清胶&lt;/h3&gt;

&lt;p&gt;home 键上的胶外表固化需要一些时间. 此时可以清理主机上的殘胶 (不得不说, 这项工作还有
点解压... 将整块的胶撕下...)  (12:54)&lt;/p&gt;

&lt;p&gt;file:2021-07-24-thinking-ipad_sereen/clean1.jpg&lt;/p&gt;

&lt;p&gt;意外地发现, 磁吸就是这几块磁铁的作用 (13:00)&lt;/p&gt;

&lt;p&gt;file:2021-07-24-thinking-ipad_sereen/clean2.jpg&lt;/p&gt;

&lt;p&gt;四周的残胶全部清理干净! (13:09)&lt;/p&gt;

&lt;p&gt;file:2021-07-24-thinking-ipad_sereen/clean3.jpg&lt;/p&gt;

&lt;h3&gt;装&lt;/h3&gt;

&lt;p&gt;清完残胶后, 试了一下粘合的 home 键, 但是貌似没有完全干好, 但是也没有关系, 直接安上
吧.&lt;/p&gt;

&lt;p&gt;接上新屏幕的排线 (13:17)&lt;/p&gt;

&lt;p&gt;file:2021-07-24-thinking-ipad_sereen/assemble1.jpg&lt;/p&gt;


&lt;p&gt;稍稍拧上内屏螺丝. 合上屏幕. 过程中发现需要把排线折一下, 才能把屏幕合上. 这样一来
这边的屏幕就会被顶着, 这边容易开胶的原因就在此!&lt;/p&gt;

&lt;p&gt;像其它教程中一样, 拖动一个图标四处划一下测试触屏. 顺便还测试了回弹和指纹, 都正常.
(13:29)&lt;/p&gt;

&lt;p&gt;file:2021-07-24-thinking-ipad_sereen/assemble2.jpg&lt;/p&gt;

&lt;p&gt;把内屏的四颗螺丝拧紧. 擦干净内屏. 擦内屏这个活, 我擦了 20 分钟, 但总不能完全擦干
净. 也许没有办法做到完全干净的, 但其实也没有大的影响.&lt;/p&gt;

&lt;p&gt;把外屏幕上的双面胶和内部的膜撕掉, 粘结实.&lt;/p&gt;

&lt;p&gt;再测试一下, 所有功能都没问题, 完美. 放个视频, 试一下声音也没问题(重影不是屏幕的
原因, 是因为西片受到了惊吓...) (13:50)&lt;/p&gt;

&lt;p&gt;file:2021-07-24-thinking-ipad_sereen/assemble3.jpg&lt;/p&gt;

&lt;h3&gt;完&lt;/h3&gt;

&lt;p&gt;顺便把送的膜也贴上了! 不太放心有排线的一侧, 然后又上了一下胶, 过后再清掉多余的.
找几本书压一下吧! ^ _ ^ (14:03)&lt;/p&gt;

&lt;p&gt;file:2021-07-24-thinking-ipad_sereen/complete1.jpg&lt;/p&gt;

&lt;p&gt;总共用时两小时十三分钟. 如果再来一次的话, 大概一个小时即可. 内屏的灰也没了, home
键也有回弹了!&lt;/p&gt;

&lt;h2&gt;Summary&lt;/h2&gt;

&lt;h3&gt;返厂和第三方的区别&lt;/h3&gt;

&lt;p&gt;返厂大概要 1000 多, 对于这个 ipad 确实已经不值这个价钱了. 经过这次自己换屏的经历,
我想返厂和第三方如此大的差价的原因是&lt;/p&gt;

&lt;p&gt;1. 官方维修工艺有保证, 不会出现后续的 home 键失灵, 翘边, 进灰这一系列的后续
   问题, 这真的很影响心情.
2. ipad 受众比较广, 屏幕的市场比较大, 这使得生产成本比较低, 在网上只要三四十块就
   可以买到.&lt;/p&gt;

&lt;p&gt;如果 ipad 本身有 4000 以上的话, 我觉得花 1000 多官方维修还是值得的! 但我这个只有本
身也只有 2000 多, 就算了.&lt;/p&gt;

&lt;h3&gt;对第三方维修的感想&lt;/h3&gt;

&lt;p&gt;我一开始想的是, 不用自己折腾, 省心, 省时间, 多花点钱找人修是不错的! 但是, 维修结
果非常之令人失望, 完全对不起它们的价格!&lt;/p&gt;

&lt;p&gt;第一次换屏 280, 如果能够工艺好一些, 之后不出问题, 我觉得是可以接受的, 实际后来出
了问题我觉得也还正常, 毕竟工艺水平有限, 人工劳力成本也很高. 后来裂了, 我不愿意再
去校外找他们售后了, 麻烦, 心累.&lt;/p&gt;

&lt;p&gt;令人恼火的是第二次在校内某地下的维修! 只收钱不办事, 还漫天要价!&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;只收钱不办事, 是说他们收了 150, 而所做的工作只是用胶沾了一下侧边, 他们几乎没有 任何的物料和人工成本, 两分钟就完事. 屏幕内的灰根本没有清理掉!&lt;/li&gt;
&lt;li&gt;漫天要价是说他们对于修 home 键的 400块的要价. 我自己换, 才知道第三方根本 没有带指纹的 home 键. 所以如果我给他们 400 块, 它们只有两种可能. 一, 像我一样 拆开屏幕重新安装; 二, 用不带指纹的 home 键. 就假设他们技术不行, 碎掉一块屏幕, 物料成本的上限就是 40 块. 我认为人工成本不值360.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;我尊重维修付出的劳动, 我愿意为劳动付费, 但是不可以太过份! 心情已经坏了, 我不愿意
再和他们吵, 宁愿自己动手.&lt;/p&gt;

&lt;p&gt;大四的时候, 我的笔记本不能亮屏了, 也过了保修期, 是找的校内维修, 200块修好了. 但过
了一段时间后, 开机有一半以上的概率各种报错, 虽然最终都能打开. 同时, 触摸板和
Trackpoint 也不能用了.&lt;/p&gt;

&lt;p&gt;之前爸爸的 Redmi K20 摔坏过两次屏幕, 都是 500 块官方维修, 之后没有任何问题.
xps13 去年在家屏幕有问题, 由于还在保, 售后派人从市里坐大巴到我们家上门免费换了新的屏幕.&lt;/p&gt;

&lt;p&gt;因此以我的经历总结一下就是, 第三方维修会给你修好, 但是之后会莫名出各种问题. 鉴于
与官方维修相比价格便宜许多, 工艺有限, 这是可以理解的. 但是如果像我一样碰到第二家
比较黑心的维修商, 那就又花钱多又修不好了. 官方维修过保后虽然贵, 但是省心!&lt;/p&gt;

&lt;p&gt;我又联想到大一时, 当时没钱, 我们宿舍几个人, 一人买了一辆 100 多块的自行车. 之后出了问题,
去修车, 每次去, 修车的大爷都告诉我哪个地方又快不行了... 掉入无限修车的恐惧! 最终,
我还是扔了不要的.&lt;/p&gt;

&lt;p&gt;而这两次修 ipad 的经历, 我终于又回想起了曾经被修车支配的恐惧, 以及一次次被修车大
爷指出新问题的耻辱...&lt;/p&gt;
</content><category term="想说"/><category term="ipad"/></entry><entry><title>beamer 笔记</title><link href="https://zqw.ink/2021-06-24-coding-beamer_note.html" rel="alternate"/><published>2021-06-24T00:00:00+08:00</published><updated>2021-06-24T00:00:00+08:00</updated><author><name>ZQW</name></author><id>tag:zqw.ink,2021-06-24:/2021-06-24-coding-beamer_note.html</id><content type="html">
&lt;p&gt;[[file:./2021-06-24-coding-beamer_note/beamer_note.pdf][PDF version]]
[[file:./2021-06-24-coding-beamer_note/beamer_note.tex][source file]]&lt;/p&gt;
</content><category term="软件使用"/><category term="latex"/><category term="beamer"/></entry><entry><title>从来没有一个安宁的夏天</title><link href="https://zqw.ink/2021-06-15-thinking-no_summer.html" rel="alternate"/><published>2021-06-15T00:00:00+08:00</published><updated>2021-06-15T00:00:00+08:00</updated><author><name>ZQW</name></author><id>tag:zqw.ink,2021-06-15:/2021-06-15-thinking-no_summer.html</id><summary type="html">
&lt;hr /&gt;
&lt;p&gt;命运,&lt;/p&gt;
&lt;p&gt;在毫无征兆时,&lt;/p&gt;
&lt;p&gt;就在一瞬间被别人改变.&lt;/p&gt;
&lt;p&gt;没有任何反应的时间.&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;夏天,&lt;/p&gt;
&lt;p&gt;被施加了诅咒.&lt;/p&gt;
&lt;p&gt;每当满怀期待地去迎接,&lt;/p&gt;
&lt;p&gt;就会迎来一 …&lt;/p&gt;</summary><content type="html">
&lt;hr /&gt;
&lt;p&gt;命运,&lt;/p&gt;
&lt;p&gt;在毫无征兆时,&lt;/p&gt;
&lt;p&gt;就在一瞬间被别人改变.&lt;/p&gt;
&lt;p&gt;没有任何反应的时间.&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;夏天,&lt;/p&gt;
&lt;p&gt;被施加了诅咒.&lt;/p&gt;
&lt;p&gt;每当满怀期待地去迎接,&lt;/p&gt;
&lt;p&gt;就会迎来一个糟糕的夏天.&lt;/p&gt;
&lt;p&gt;从来没有迎接到一个真正的夏天.&lt;/p&gt;
&lt;p&gt;安宁的夏天,&lt;/p&gt;
&lt;p&gt;大概只有在山田尚子笔下,&lt;/p&gt;
&lt;p&gt;才能看到.&lt;/p&gt;
&lt;p&gt;不喜欢看悬疑恐怖的原因,&lt;/p&gt;
&lt;p&gt;是人生就已经悬疑恐怖了,&lt;/p&gt;
&lt;p&gt;只能靠美好的剧情活下去.&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;温柔地人,&lt;/p&gt;
&lt;p&gt;总是不断地被伤害.&lt;/p&gt;
&lt;p&gt;至于原因,&lt;/p&gt;
&lt;p&gt;就是温柔.&lt;/p&gt;
&lt;p&gt;最怕爱的人受到伤害,&lt;/p&gt;
&lt;p&gt;更害怕爱的人被爱的人伤害.&lt;/p&gt;
&lt;p&gt;除了叹息,&lt;/p&gt;
&lt;p&gt;还是叹息.&lt;/p&gt;
&lt;p&gt;除了失望,&lt;/p&gt;
&lt;p&gt;还是失望,&lt;/p&gt;
&lt;p&gt;除了悲伤,&lt;/p&gt;
&lt;p&gt;还是悲伤.&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;厌倦了太多的人在喋喋不休的讲大道理.&lt;/p&gt;
&lt;p&gt;而更可笑的是,&lt;/p&gt;
&lt;p&gt;那些讲大道理的人,&lt;/p&gt;
&lt;p&gt;总有一天自己也因为讲过的大道理而被人耻笑.&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;努力,&lt;/p&gt;
&lt;p&gt;真的是一个骗人的东西.&lt;/p&gt;
&lt;p&gt;努力不过是和自己较劲而已.&lt;/p&gt;
&lt;p&gt;认真也是最没用的东西,&lt;/p&gt;
&lt;p&gt;没人会在乎,&lt;/p&gt;
&lt;p&gt;甚至都是嘲笑.&lt;/p&gt;
&lt;p&gt;而这些都是从小都刻在脑子里的东西,&lt;/p&gt;
&lt;p&gt;没用的东西,&lt;/p&gt;
&lt;p&gt;当一个个,&lt;/p&gt;
&lt;p&gt;都崩塌,&lt;/p&gt;
&lt;p&gt;都坏掉,&lt;/p&gt;
&lt;p&gt;童年就只剩下谎言,&lt;/p&gt;
&lt;p&gt;少年就只是一个异类.&lt;/p&gt;
&lt;p&gt;成年人就只是被掏空的躯壳而已了.&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;命运,&lt;/p&gt;
&lt;p&gt;也仿佛被施加了诅咒.&lt;/p&gt;
&lt;p&gt;每天的日常,&lt;/p&gt;
&lt;p&gt;都是接连不断的奇迹.&lt;/p&gt;
&lt;p&gt;不幸的是,&lt;/p&gt;
&lt;p&gt;只有当奇迹被打断的时候,&lt;/p&gt;
&lt;p&gt;才明白过来.&lt;/p&gt;
&lt;p&gt;原来各种各样的故事都会降临到自己的身上.&lt;/p&gt;
&lt;p&gt;降临之时,&lt;/p&gt;
&lt;p&gt;根本无法拒绝!&lt;/p&gt;
&lt;p&gt;也意想不到的木然.&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;夏天,&lt;/p&gt;
&lt;p&gt;想有一个夏天,&lt;/p&gt;
&lt;p&gt;一个简单的夏天,&lt;/p&gt;
&lt;p&gt;什么事都不发生,&lt;/p&gt;
&lt;p&gt;就那么安安静静的,&lt;/p&gt;
&lt;p&gt;平平静静的,&lt;/p&gt;
&lt;p&gt;没有痛苦,&lt;/p&gt;
&lt;p&gt;没有谎言,&lt;/p&gt;
&lt;p&gt;没有失望.&lt;/p&gt;
&lt;p&gt;蓝蓝的天空上有白白的云朵.&lt;/p&gt;
&lt;p&gt;微风吹动,&lt;/p&gt;
&lt;p&gt;就躺在那里,&lt;/p&gt;
&lt;p&gt;什么也不想.&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;可是,&lt;/p&gt;
&lt;p&gt;美好的夏天总是在别人的世界里.&lt;/p&gt;
&lt;p&gt;我的夏天是被诅咒的夏天,&lt;/p&gt;
&lt;p&gt;我不配拥有.&lt;/p&gt;
&lt;p&gt;好想爱别人,&lt;/p&gt;
&lt;p&gt;好想被别人爱,&lt;/p&gt;
&lt;p&gt;可是,&lt;/p&gt;
&lt;p&gt;还有勇气和力气吗?&lt;/p&gt;
&lt;hr /&gt;
</content><category term="blog"/><category term="夏天"/><category term="文学青年"/></entry><entry><title>一个神奇的积分与一个有意思的积分</title><link href="https://zqw.ink/2021-05-25-physics-pole_of_order_2.html" rel="alternate"/><published>2021-05-25T00:00:00+08:00</published><updated>2021-05-25T00:00:00+08:00</updated><author><name>ZQW</name></author><id>tag:zqw.ink,2021-05-25:/2021-05-25-physics-pole_of_order_2.html</id><summary type="html">

&lt;h2&gt;积分之一: 神奇的积分&lt;/h2&gt;

$$\begin{align}
  I_1(a) = \int_0 ^{\infty} \frac{1}{(x - a + \mathrm{i}0^+)^2} \mathrm{d}x, \quad, a &gt; 0
\end{align}$$

&lt;p&gt;看起来一定是发散的, 因为被积函数在 $x\to a …&lt;/p&gt;</summary><content type="html">

&lt;h2&gt;积分之一: 神奇的积分&lt;/h2&gt;

$$\begin{align}
  I_1(a) = \int_0 ^{\infty} \frac{1}{(x - a + \mathrm{i}0^+)^2} \mathrm{d}x, \quad, a &gt; 0
\end{align}$$

&lt;p&gt;看起来一定是发散的, 因为被积函数在 $x\to a$ 时是 $1/x^2$ 发散的( 图见 appendix).&lt;/p&gt;

&lt;p&gt;但真正的结果不但不发散, 还是小于零的! 关键就在于分母上的 $\mathrm{i}0^+$
. $\mathrm{i}0^+$ 的存在使得积分路径上没有了奇异性. 如果我们做变量代换 $z = x +
\mathrm{i}0^+$ , 并把从 $(-\infty, 0)$ 的积分也加进来, 那么积分就变为&lt;/p&gt;

$$\begin{align}
  I_{1C} = I_1(a) + \int_{-\infty}^0 \frac{1}{(x - a + \mathrm{i}0^+)^2} \mathrm{d}x
     = \int_{C_{10}} \frac{1}{(z - a)^2} \mathrm{d}z
\end{align}$$

&lt;p&gt;其中积分的路径 $C_{10}$ 是沿整个实轴上方无穷小的距离. 图见 appendix.&lt;/p&gt;

&lt;p&gt;由于 $I_{1C}$ 的被积函数在无穷远处是 $1/|z|^2\to 0$ 的, 贡献为 $0$ , 所以可以把上
半平面无穷远的大圆弧也加到积分路径上去, 此时路径变成 $C_1$ (图见 appendix).&lt;/p&gt;

&lt;p&gt;被积函数在整个复平面上的 singularity 只有在 $z = a$ 处有一个二阶 pole, 在闭合的
积分路径 $C_{1}$ 内是处处解析的, 所以积分 $I_{1C} = 0$ . 由此就可以求出我们想要的积
分 $I_{1}(a)$ 啦!&lt;/p&gt;

$$\begin{align}
  I_1(a) =&amp; I_{1C} - \int_{-\infty}^0 \frac{1}{(x - a + \mathrm{i}0^+)^2} \mathrm{d}x
       = - \int_{-\infty}^0 \frac{1}{(x - a + \mathrm{i}0^+)^2}\mathrm{d}x \\
       =&amp; - \int_{-\infty}^0 \frac{1}{(x - a)^2}\mathrm{d}x
       = - \left[ \frac{ - 1}{x-a} \right]_{-\infty}^0
       = - \frac{1}{a}
\end{align}$$


&lt;p&gt;除了像上面这样用留数定理计算外, 还可用一个求导的小 trick 直接利用
Sokhotski–Plemelj 公式计算 (积分与求导的交换, 本着如果交换给出收敛的结果, 那就可
以交换的原则 -_-!)&lt;/p&gt;

$$\begin{align}
 I_{1a} =&amp; \frac{\partial}{\partial a} \int_0^{\infty} \frac{1}{x - a + \mathrm{i}0^+} \mathrm{d}x
        = \frac{\partial}{\partial a} \left[ \mathcal{P}\int_0^{\infty} \frac{1}{x - a} \mathrm{d}x
            - \mathrm{i}\pi \int_0^{\infty}\delta(x - a)\mathrm{d}x \right] \\
        =&amp; \frac{\partial}{\partial a} \left[ \ln \left|x - a \right|_0^{\infty}
            - \mathrm{i}\pi  \right]
        = \frac{\partial}{\partial a} \left[ \ln \infty - \ln a\right] \\
        =&amp; -\frac{1}{a}
\end{align}$$

&lt;p&gt;这也是我如何遇到这个积分的. 我遇到的是一个无法解析的积分, 但求导可以计算, 因此我
想把求导解析地求掉, 结果未完导发现积分看似发散, 实则并不发散, 但数值上不好处理.&lt;/p&gt;

&lt;h2&gt;积分之二: 有意思的积分&lt;/h2&gt;


$$\begin{align}
  I_2(\mu) = \int_0^{\infty} \frac{k^2}{(k^2 - \mu)^2}\mathrm{d}k, \quad \mu &lt; 0
\end{align}$$

&lt;p&gt;此积分我也想到了两种方法.&lt;/p&gt;

&lt;h3&gt;法一: 留数定理&lt;/h3&gt;

&lt;p&gt;被积函数有两个二阶 pole, $k = \pm \sqrt{\mu}$ .
被积函数在无穷远处 $1/|k|^2\to 0$ , 所以无穷远处对积分贡献为零, 可以把无穷远的大圆
弧加上, 因此积分路径是 $C_{2}$ (沿上半平面的无穷大半圆逆时针, 图见 appendix)&lt;/p&gt;

$$\begin{align}
  I_2(\mu) =&amp; \frac{1}{2} \int_{-\infty}^{+\infty} \frac{k^2}{(k^2 - \mu)^2}\mathrm{d}k \\
        =&amp; \frac{1}{2}\oint_{C_2} \frac{k^2}{(k^2 - \mu)^2} \mathrm{d}k \\
        =&amp; \frac{1}{2}\oint_{C_2} \frac{k^2}{(k - \sqrt{\mu})^2
                           (k + \sqrt{\mu})^2} \mathrm{d}k \\
\end{align}$$

&lt;p&gt;包含二阶 pole 的积分可用公式(可以叫做高阶 pole 的留数定理?)(此处取 $n=1$ )&lt;/p&gt;

$$\begin{align}
  f^{(n)}(z)
    = \frac{n!}{2\pi \mathrm{i}}\oint \frac{f(\xi)}{(\xi - z)^{n+1}} \mathrm{d}\xi
\end{align}$$

&lt;p&gt;所以&lt;/p&gt;

$$\begin{align}
  I_2(\mu) =\frac{1}{2}\times 2\pi \mathrm{i} \frac{\mathrm{d}}{\mathrm{d}k}
     \left.\left(\frac{k^2}{(k + \sqrt{\mu})^2} \right)
          \right|_{k=\mathrm{i}\sqrt{|\mu|}} = \frac{\mathrm{i}\pi}{4\sqrt{\mu}}
\end{align}$$


&lt;h3&gt;法二: 直接算&lt;/h3&gt;

&lt;p&gt;在实数范围内做不定积分:&lt;/p&gt;

$$\begin{align}
  \int \frac{k^2}{(k^2 - \mu)^2}\mathrm{d}k
     =&amp; \frac{1}{2}\int\left[ \frac{k^2 + \mu}{(k^2 - \mu)^2}
                      +\frac{k^2 - \mu}{(k^2 - \mu)^2}  \right]\mathrm{d}k \\
     = &amp; \frac{1}{2}\left[ \int\frac{k^2 + \mu}{(k^2 - \mu)^2}
            +\int \frac{1}{k^2 - \mu}\mathrm{d}k \right] \\
     = &amp; \frac{1}{2}\left[\frac{-k}{k^2 - \mu}
            - \frac{1}{\sqrt{\mu}} \mathrm{arctanh}
           \left( \frac{k}{\sqrt{\mu}} \right)
                     \right] + C \\
\end{align}$$

&lt;p&gt;其中 $C$ 是积分常数.&lt;/p&gt;

&lt;p&gt;然后代入上限和下限算得定积分&lt;/p&gt;

$$\begin{align}
I_2(\mu) = \frac{1}{2}\left[ 0 - \frac{1}{\sqrt{\mu}}\left(-\mathrm{i}\frac{\pi}{2}
                        - 0\right) \right]
    = \frac{ \mathrm{i}\pi}{4\sqrt{\mu}}
\end{align}$$


&lt;h2&gt;总结&lt;/h2&gt;

&lt;p&gt;两个积分的共同特点是都有二阶 pole.&lt;/p&gt;

&lt;h2&gt;Appendix&lt;/h2&gt;

&lt;p&gt;$I_{1(a)}$ 的被积函数在 $x\to a$ 时看起来是 $1/x^2$ 发散的:
&lt;p&gt;&lt;img src='2021-05-25-physics-Pole_of_order_2/diverge.png' alt='figalt' max-width:100%&gt;&lt;p&gt;&lt;/p&gt;

&lt;p&gt;&lt;p&gt;&lt;img src='2021-05-25-physics-Pole_of_order_2/C10.png' alt='figalt' max-width:100%&gt;&lt;p&gt;&lt;/p&gt;

&lt;p&gt;&lt;p&gt;&lt;img src='2021-05-25-physics-Pole_of_order_2/C1.png' alt='figalt' max-width:100%&gt;&lt;p&gt;&lt;/p&gt;

&lt;p&gt;&lt;p&gt;&lt;img src='2021-05-25-physics-Pole_of_order_2/C2.png' alt='figalt' max-width:100%&gt;&lt;p&gt;&lt;/p&gt;

&lt;h2&gt;Acknowledge&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Fan Yang 的讨论&lt;/li&gt;
&lt;li&gt;Mathematica&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Reference&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href='https://mathworld.wolfram.com/InverseHyperbolicTangent.html'&gt;https://mathworld.wolfram.com/InverseHyperbolicTangent.html&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href='https://dlmf.nist.gov/4.37'&gt;https://dlmf.nist.gov/4.37&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</content><category term="专业笔记"/><category term="mathematics"/><category term="complex analysis"/><category term="integral"/><category term="residue theorem"/></entry><entry><title>round-off error, unstable method, mpmath(update 15/Mar/2022)</title><link href="https://zqw.ink/2021-05-15-coding-unstable_method.html" rel="alternate"/><published>2021-05-15T00:00:00+08:00</published><updated>2021-05-15T00:00:00+08:00</updated><author><name>ZQW</name></author><id>tag:zqw.ink,2021-05-15:/2021-05-15-coding-unstable_method.html</id><summary type="html">

&lt;h2&gt;Round-off error&lt;/h2&gt;

&lt;p&gt;Round-off error 的原因是数值计算的过程中, 机器的精度是有限的. &lt;a href='https://en.wikipedia.org/wiki/Round-off_error'&gt;wikipedia: Round-off error&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;Unstable method&lt;/h2&gt;

&lt;p&gt;计算 Goledn Mean&lt;/p&gt;

$$\begin{align}
\phi = \frac{\sqrt{5} - 1}{2} \approx 0.61803398
\end{align}$$

&lt;p&gt;的 $n$ 次 …&lt;/p&gt;</summary><content type="html">

&lt;h2&gt;Round-off error&lt;/h2&gt;

&lt;p&gt;Round-off error 的原因是数值计算的过程中, 机器的精度是有限的. &lt;a href='https://en.wikipedia.org/wiki/Round-off_error'&gt;wikipedia: Round-off error&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;Unstable method&lt;/h2&gt;

&lt;p&gt;计算 Goledn Mean&lt;/p&gt;

$$\begin{align}
\phi = \frac{\sqrt{5} - 1}{2} \approx 0.61803398
\end{align}$$

&lt;p&gt;的 $n$ 次幂 $\phi^n$ . 可以证明它满足递推关系&lt;/p&gt;

$$\begin{align}
\phi^{n + 1} = \phi^{n - 1} - \phi^n
\end{align}$$

&lt;p&gt;使用此递推关系, 可以由原来的乘法变成减法, 会节约计算资源. 但是此递推关系还有另一
个解&lt;/p&gt;

$$\begin{align}
- \frac{1}{2}(\sqrt{5} + 1)
\end{align}$$

&lt;p&gt;因为它的绝对值是大于 $1$ 的. 所以混入任何 round-off error 都会指数发散. 因此这个
递推算法是一个 unstable method.&lt;/p&gt;

&lt;pre&gt;&lt;code class="language-python"&gt;import numpy as np
import matplotlib.pyplot as plt


def unstable(n: int) -&amp;gt; float:
    p = []
    p.append(1)
    p.append((np.sqrt(5) - 1) / 2)
    for i in range(n-1):
        i += 1
        p.append(p[i-1] - p[i])
    return p[-1]


def stable(n: int) -&amp;gt; float:
    return ((np.sqrt(5) - 1) / 2)**n


n = 80
x = []
y_unstable = []
y_stable = []
for i in range(n):
    i += 1
    x.append(i)
    y_unstable.append(unstable(i))
    y_stable.append(stable(i))

plt.plot(x, y_unstable, '-x', label="unstable")
plt.plot(x, y_stable, label="stable")
plt.xlabel(r'$n$')
plt.ylabel(r'$\left(\frac{\sqrt{5} - 1}{2}\right)^n$')
plt.legend()
plt.savefig('unstable_method.png')&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&lt;a href='2021-05-15-coding-unstable_method/unstable_method.py'&gt;2021-05-15-coding-unstable_method/unstable_method.py&lt;/a&gt;
&lt;p&gt;&lt;img src='2021-05-15-coding-unstable_method/unstable_method.png' alt='figalt' max-width:100%&gt;&lt;p&gt;&lt;/p&gt;

&lt;h2&gt;解决方法&lt;/h2&gt;

&lt;p&gt;解决方法之一是使用更高精度的数值类型. 虽然此法在效率上的代价是巨大的.
Mathematica 中设置 WorkingPrecision 即为此方法.&lt;/p&gt;

&lt;p&gt;在 python, &lt;code&gt;mpmath&lt;/code&gt; 包提供了类似的处理方法&lt;/p&gt;

&lt;pre&gt;&lt;code class="language-python"&gt;  import numpy as np
  from mpmath import mp
  import matplotlib.pyplot as plt


  mp.dps = 20
  print(mp)


  def unstable(n: int) -&amp;gt; float:
      p = []
      p.append(1)
      p.append((mp.sqrt(5) - 1) / 2)
      for i in range(n-1):
          i += 1
          p.append(p[i-1] - p[i])
      return p[-1]


  def stable(n: int) -&amp;gt; float:
      return ((np.sqrt(5) - 1) / 2)**n


  n = 80
  x = []
  y_unstable = []
  y_stable = []
  for i in range(n):
      i += 1
      x.append(i)
      y_unstable.append(unstable(i))
      y_stable.append(stable(i))

  plt.plot(x, y_unstable, '-x', label="unstable method with mpmath")
  plt.plot(x, y_stable, label="stable")
  plt.xlabel(r'$n$')
  plt.ylabel(r'$\left(\frac{\sqrt{5} - 1}{2}\right)^n$')
  plt.legend()
  plt.savefig('unstable_method_with_mpmath.png')


    &amp;gt;&amp;gt;&amp;gt;
    Mpmath settings:
      mp.prec = 70                [default: 53]
      mp.dps = 20                 [default: 15]
      mp.trap_complex = False     [default: False]
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;file:2021-05-15-coding-unstable_method/unstable_method_with_mpmath.py
&lt;p&gt;&lt;img src='2021-05-15-coding-unstable_method/unstable_method_with_mpmath.png' alt='figalt' max-width:100%&gt;&lt;p&gt;&lt;/p&gt;

&lt;p&gt;可以看出, 将求根的计算精度由 &lt;code&gt;numpy.float64&lt;/code&gt; (53个二进制位表示一个浮点数) 提高到
70 个二进制位表示一个浮点数, 在 $n\le 80$ 的范围内, round-off error 被压住了.&lt;/p&gt;

&lt;p&gt;[[eww:https://mpmath.org/doc/1.2.0/basics.html][二进制位与十进制数有效数字个数的关系大致是 &lt;code&gt;prec = 3.33*dps&lt;/code&gt;]]&lt;/p&gt;

&lt;h2&gt;另一种出现 round-off error 的情况&lt;/h2&gt;


$$\begin{align}
\int_0^{\infty } \mathrm{d}k\cdot \left[\sqrt{5 k^4+4 \sqrt{k^4+1} k^2+4}-3 k^2\right]
  \approx 2.4720995697351625579
\end{align}$$

&lt;p&gt;从解析上可以得到, 被积函数在 $k\to \infty$ 时的行为是 $\sim 1/k^2$ . 根号中的第一项和第二
项 $-3k^2$ 在 $k\to \infty$ 时各自是发散的, 但是相加之后是收敛的.&lt;/p&gt;

&lt;p&gt;但是数值计算上, 当 $k$ 很大时, 在保留的有效数字个数有限的情况下, 相加得到的结果
可能在有效数字之外了, 因此相加的结果是 round-off error. 反映在结果上就是本来应该
$\sim 1/k^2\to 0$ 的, 却出现抖动.&lt;/p&gt;

&lt;p&gt;这时也可以用 mpmath 提高精度.&lt;/p&gt;

&lt;pre&gt;&lt;code class="language-python"&gt;  import numpy as np
  import matplotlib.pyplot as plt
  from mpmath import mp
  from scipy.integrate import quad


  mp.dps = 18
  print(mp)


  def func(k):
      res = np.sqrt(k**4 + 1)
      res *= 4*k**2
      res += 5*k**4 + 4
      res = np.sqrt(res)
      res += -3*k**2
      return res


  def mpmath_func(k_float):
      k_mpmath = mp.mpmathify(k_float)
      return func(k_mpmath)


  ks = np.linspace(1000, 1001, 100)
  fs = func(ks)
  mp_math_fs = [mpmath_func(k) for k in ks]

  plt.plot(ks, fs, '-x', label="numpy float64 type")
  plt.plot(ks, mp_math_fs, label="mpmath mpf type")
  plt.title('mpmath example')
  plt.xlabel(r'$x$')
  plt.ylabel(r'$f(x)$')
  plt.legend()
  plt.savefig('mpmath_example.png')

  print('result of numpy float64 type:', quad(mpmath_func, 0, np.inf))
  print('result of mpmath mpf type:', quad(func, 0, np.inf))


&amp;gt;&amp;gt;&amp;gt;
Mpmath settings:
  mp.prec = 63                [default: 53]
  mp.dps = 18                 [default: 15]
  mp.trap_complex = False     [default: False]
result of numpy float64 type: (2.472099569305563, 1.412300021975624e-10)
/..../mpmath_expample.py:38: IntegrationWarning: The algorithm does not converge.  Roundoff error is detected
  in the extrapolation table.  It is assumed that the requested tolerance
  cannot be achieved, and that the returned result (if full_output = 1) is
  the best which can be obtained.
  print('result of mpmath mpf type:', quad(func, 0, np.inf))
result of mpmath mpf type: (2.472099451021771, 7.496323446432029e-07)&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&lt;a href='2021-05-15-coding-unstable_method/mpmath_example.py'&gt;2021-05-15-coding-unstable_method/mpmath_example.py&lt;/a&gt;
&lt;p&gt;&lt;img src='2021-05-15-coding-unstable_method/mpmath_example.png' alt='figalt' max-width:100%&gt;&lt;p&gt;&lt;/p&gt;

&lt;p&gt;可以看出如果用 &lt;code&gt;numpy.float64&lt;/code&gt; 计算会提示 round-off error. &lt;/p&gt;


&lt;h2&gt;Reference&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href='https://en.wikipedia.org/wiki/Round-off_error'&gt;wikipedia: Round-off error&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Winkler, J. R. Numerical recipes in C: The art of scientific computing, second edition. Endeavour 17, 201 (1993). Chap 1.3&lt;/li&gt;
&lt;li&gt;&lt;a href='https://en.wikipedia.org/wiki/Numerical_stability'&gt;wikipedia: Numerical stability&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href='https://en.wikipedia.org/wiki/Double-precision_floating-point_format'&gt;wikipedia: Double-precision floating-point format&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href='https://mpmath.org/doc/1.2.0/index.html'&gt;mpmath's documentation&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href='https://scicomp.stackexchange.com/questions/21483/how-to-avoid-the-round-off-errors-in-the-larger-calculations'&gt;https://scicomp.stackexchange.com/questions/21483/how-to-avoid-the-round-off-errors-in-the-larger-calculations&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Fan Yang 的讨论&lt;/li&gt;
&lt;/ul&gt;
</content><category term="软件使用"/><category term="numerical stability"/><category term="unstable method"/><category term="round-off error"/><category term="mpmath"/><category term="integral"/></entry><entry><title>C 中的指针与动态内存分配</title><link href="https://zqw.ink/2021-05-14-coding-c_pointer_malloc.html" rel="alternate"/><published>2021-05-14T00:00:00+08:00</published><updated>2021-05-14T00:00:00+08:00</updated><author><name>ZQW</name></author><id>tag:zqw.ink,2021-05-14:/2021-05-14-coding-c_pointer_malloc.html</id><summary type="html">
&lt;p&gt;主要是为 Reference 存个书签.&lt;/p&gt;

&lt;h2&gt;Pointers&lt;/h2&gt;

&lt;p&gt;在写程序的过程中, array 是相当有用的. 但是 array 是静态的, 也就是它的大小不能改
变. 此时指针就派上 …&lt;/p&gt;</summary><content type="html">
&lt;p&gt;主要是为 Reference 存个书签.&lt;/p&gt;

&lt;h2&gt;Pointers&lt;/h2&gt;

&lt;p&gt;在写程序的过程中, array 是相当有用的. 但是 array 是静态的, 也就是它的大小不能改
变. 此时指针就派上用场.&lt;/p&gt;

&lt;p&gt;在 C 中, pointer 表示一个 data 的内存地址. 如果一个 pointer 为 0, 那它叫做 null
pointer, 也叫 NULL , "nil" .&lt;/p&gt;

&lt;h2&gt;Declarations&lt;/h2&gt;

&lt;p&gt;指针声明的方式是, 在一个已经存在的数据类型前加一个 &lt;code&gt;*&lt;/code&gt;. 如&lt;/p&gt;

&lt;pre&gt;&lt;code class="language-c"&gt;int *ip;&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;声明了一个名为 &lt;code&gt;ip&lt;/code&gt; 的 pointer 指向一个整数.&lt;/p&gt;

&lt;p&gt;创建一个指针的方法是用算符 &lt;code&gt;&amp;&lt;/code&gt; (address-of) . 顾名思义, 它作用到一个变量后, 得到它
的地址. 如&lt;/p&gt;

&lt;pre&gt;&lt;code class="language-c"&gt;int *ip;
int x;
x = 42;
ip = &amp;x;&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;将 &lt;code&gt;42&lt;/code&gt; 赋值给 &lt;code&gt;x&lt;/code&gt;, 将 &lt;code&gt;x&lt;/code&gt; 的地址赋值给 &lt;code&gt;ip&lt;/code&gt;.&lt;/p&gt;

&lt;h2&gt;Using a pointer&lt;/h2&gt;

&lt;p&gt;使用 pointer 的方法是使用算符 &lt;code&gt;*&lt;/code&gt; , 它叫做 dereference operator. 它作用在一个指针
上, 得到的结果是它指向的内存地址中的值.&lt;/p&gt;

&lt;pre&gt;&lt;code class="language-c"&gt;printf("%d %d\n", x, *ip);&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;会输出 &lt;code&gt;42 42&lt;/code&gt; .&lt;/p&gt;

&lt;p&gt;也可以&lt;/p&gt;

&lt;pre&gt;&lt;code class="language-c"&gt;*ip = 37;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;此时, 这块内存中的值就变成了 &lt;code&gt;37&lt;/code&gt; .&lt;/p&gt;

&lt;h2&gt;Memory allocation and deallocation&lt;/h2&gt;


&lt;p&gt;一般来讲, 把一个指针指向一个已经声明的变量, 没什么用. 真正有用的是用它来分配一块
没有使用的内存. 这使得程序能够处理大量的内存.&lt;/p&gt;

&lt;p&gt;基本的内存分配函数是&lt;/p&gt;

&lt;pre&gt;&lt;code class="language-c"&gt;(void *) malloc(size_t numbytes);&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;它的意思是分出一定数量的内存空间, 并返回一个指向它的指针. 由于  malloc 不知道你
想要什么类型的指针, 它返回的是 pointer to void, 也就是指向一块数据类型不明的区域.&lt;/p&gt;

&lt;p&gt;常用的是把它和内置算符 &lt;code&gt;sizeof()&lt;/code&gt; 放在一起用. &lt;code&gt;sizeof()&lt;/code&gt; 返回特定数据类型的比特
数. 如&lt;/p&gt;

&lt;pre&gt;&lt;code class="language-c"&gt;int *ip;
ip = (int *) malloc(sizeof(int));&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;这将分配出 1 个 &lt;code&gt;int&lt;/code&gt; 大小的内存, 将其指针给 &lt;code&gt;ip&lt;/code&gt; .&lt;/p&gt;

&lt;h2&gt;Pointers and arrays&lt;/h2&gt;

&lt;p&gt;分配单个整型大小的内存没什么用, 有用的是 allocate arrays. 实际上, 指针可以当作一
个 array 用. 如&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-c"&gt;int *ip;
ip = (int *) malloc( sizeof(int)*10 ); // allocate 10 ints
ip[6] = 42; // set the 7th element to 42
ip[10] = 99; // WRONG: array only has 10 elements
(this would corrupted memory!)&lt;/code&gt;&lt;/pre&gt;

&lt;h2&gt;Freeing memory, and memory leaks&lt;/h2&gt;

&lt;p&gt;如果有以下 code&lt;/p&gt;

&lt;pre&gt;&lt;code class="language-c"&gt;int *ip;
ip = (int *) malloc( sizeof(int)*10 ); // allocate 10 ints
... (use the array, etc.)
ip = (int *) malloc( sizeof(int)*100 ); // allocate 100 ints
...&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;它没有金鼓齐鸣. 可以给一个指针重新赋值. 但是重新赋值之后, 之前分出的那 10 ints
的内存呢? 答案是它永远地消失了, 直到程序结束. 这叫内存(memory leak). 虽然这 10
ints 内存是被分配的, 但程序再也无法使用这些内存了.&lt;/p&gt;

&lt;p&gt;解决方法是, 在 C 或者 C++ 中, 当被分配的内存用完后, 可以通过 &lt;code&gt;free()&lt;/code&gt; 来释放内存.
如&lt;/p&gt;

&lt;pre&gt;&lt;code class="language-c    int *ip;"&gt;ip = (int *) malloc( sizeof(int)*10 ); // allocate 10 ints
... (use the array, etc.)
free(ip); // de-allocate old array
ip = (int *) malloc( sizeof(int)*100 ); // allocate 100 ints
...&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;上面的 code 就不会发生内存泄漏. 有一些语言 (如 Java) 会自动清理分配的内存, 这叫
automatic garbage collection , 但是 C 和 C++ 没有这种机制. 所以你在用完后, 应该
负责释放掉它们.&lt;/p&gt;

&lt;h2&gt;Pointers and arrays&lt;/h2&gt;

&lt;p&gt;pointers 可以用 array 的指标, 或者说, 一个数组的名字本质上就是一个 constant
pointer.&lt;/p&gt;

&lt;pre&gt;&lt;code class="language-c"&gt;int *p;
int a[10];
p = (int*) malloc(sizeof(int)*20);
p[2] = 100; // set 3rd element in alloc'd array to 100
*(p+2) = 100; // same thing
a[2] = 200; // set 3rd element in regulary array to 200
*(a+2) = 200; // same thing&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;指针和数组是不同的, 但是当指针被用来 access 一块区域时, 用法是一样的. 但是&lt;/p&gt;

&lt;blockquote&gt;- the array declares a block of some datatype while a pointer only declares
  space for itself (the data area needs malloc'd)

  数组会声明一块特定数据类型的区域, 而指针只会声明这块空间本身.

- The address of the array (i.e., a pointer to it) is not stored anywhere; the
    compiler figures it out while it is compiling your program, so when you use
    the array name as a pointer, you are essentially using a constant number as
    an address.

  数组的地址没有存在任何地方, 编译器编译的时候才搞清它. 所以将数组的名字当作指针
  使用的时候, 本质上是将一个常数当作地址使用.&lt;/blockquote&gt;

&lt;h2&gt;Pointers and arrays as arguments&lt;/h2&gt;

&lt;p&gt;有一个地方,指针和数组几乎是完全相同的, 那就是 当它们作为一个函数的参数的时候. 这
是因为 agruments pass only the address of the array to the function. 也就是说数
组作为指针传递.&lt;/p&gt;

&lt;p&gt;在 C 中, 大部分值的传递方法是 call-by-value, 函数得到的是值的一个副本, 函数不会
改变原来的值. 但数组的传递方法是 call-by-reference, 传递的是指针, 而不是数组本
身.&lt;/p&gt;

&lt;p&gt;如果传递数组时, 传递一个副本的话, 当数组非常大时, 那是非常浪费的. 所以数值的传递
方法是 call-by-reference. 这也意味着函数中对数组的修改, 会直接修改原来的数组.&lt;/p&gt;

&lt;p&gt;因此, 下面的声明是等价的&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-c"&gt;int func(int A[]);
int func(int *A);&lt;/code&gt;&lt;/pre&gt;

&lt;h2&gt;How to dynamically allocate a 2D array in C?&lt;/h2&gt;

&lt;p&gt;有四种方法能够动态的给一个二维数组赋值. 比如&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-c"&gt;  1  2  3  4
  5  6  7  8
  9  10 11 12&lt;/code&gt;&lt;/pre&gt;

&lt;h3&gt;1. Using a single pointer&lt;/h3&gt;

&lt;pre&gt;&lt;code class="language-c"&gt;#include &amp;lt;stdio.h&amp;gt;
#include &amp;lt;stdlib.h&amp;gt;

int main()
{
    int r = 3, c = 4;
    int *arr = (int *)malloc(r * c * sizeof(int));

    int i, j, count = 0;
    for (i = 0; i &amp;lt;  r; i++)
      for (j = 0; j &amp;lt; c; j++)
         *(arr + i*c + j) = ++count;

    for (i = 0; i &amp;lt;  r; i++)
      for (j = 0; j &amp;lt; c; j++)
         printf("%d ", *(arr + i*c + j));

   /* Code for further processing and free the
      dynamically allocated memory */

   return 0;
}&lt;/code&gt;&lt;/pre&gt;

&lt;h3&gt;2. Using an array of pointers&lt;/h3&gt;

&lt;pre&gt;&lt;code class="language-c"&gt;#include &amp;lt;stdio.h&amp;gt;
#include &amp;lt;stdlib.h&amp;gt;

int main()
{
	int r = 3, c = 4, i, j, count;

	int *arr[r];
	for (i=0; i&amp;lt;r; i++)
		arr[i] = (int *)malloc(c * sizeof(int));

	// Note that arr[i][j] is same as *(*(arr+i)+j)
	count = 0;
	for (i = 0; i &amp;lt; r; i++)
	for (j = 0; j &amp;lt; c; j++)
		arr[i][j] = ++count; // Or *(*(arr+i)+j) = ++count

	for (i = 0; i &amp;lt; r; i++)
	for (j = 0; j &amp;lt; c; j++)
		printf("%d ", arr[i][j]);

	/* Code for further processing and free the
	dynamically allocated memory */

return 0;
}&lt;/code&gt;&lt;/pre&gt;

&lt;h3&gt;3. Using pointer to a pointer&lt;/h3&gt;

&lt;pre&gt;&lt;code class="language-c"&gt;#include &amp;lt;stdio.h&amp;gt;
#include &amp;lt;stdlib.h&amp;gt;

int main()
{
	int r = 3, c = 4, i, j, count;

	int **arr = (int **)malloc(r * sizeof(int *));
	for (i=0; i&amp;lt;r; i++)
		arr[i] = (int *)malloc(c * sizeof(int));

	// Note that arr[i][j] is same as *(*(arr+i)+j)
	count = 0;
	for (i = 0; i &amp;lt; r; i++)
	for (j = 0; j &amp;lt; c; j++)
		arr[i][j] = ++count; // OR *(*(arr+i)+j) = ++count

	for (i = 0; i &amp;lt; r; i++)
	for (j = 0; j &amp;lt; c; j++)
		printf("%d ", arr[i][j]);

/* Code for further processing and free the
	dynamically allocated memory */

return 0;
}&lt;/code&gt;&lt;/pre&gt;

&lt;h3&gt;4. Using double pointer and one malloc call&lt;/h3&gt;

&lt;pre&gt;&lt;code class="language-c"&gt;#include&amp;lt;stdio.h&amp;gt;
#include&amp;lt;stdlib.h&amp;gt;

int main()
{
	int r=3, c=4, len=0;
	int *ptr, **arr;
	int count = 0,i,j;

	len = sizeof(int *) * r + sizeof(int) * c * r;
	arr = (int **)malloc(len);

	// ptr is now pointing to the first element in of 2D array
	ptr = (int *)(arr + r);

	// for loop to point rows pointer to appropriate location in 2D array
	for(i = 0; i &amp;lt; r; i++)
		arr[i] = (ptr + c * i);

	for (i = 0; i &amp;lt; r; i++)
		for (j = 0; j &amp;lt; c; j++)
			arr[i][j] = ++count; // OR *(*(arr+i)+j) = ++count

	for (i = 0; i &amp;lt; r; i++)
		for (j = 0; j &amp;lt; c; j++)
			printf("%d ", arr[i][j]);

	return 0;
}&lt;/code&gt;&lt;/pre&gt;

&lt;h2&gt;Memory leak&lt;/h2&gt;

&lt;p&gt;下面的 code 可以演示内存泄漏&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-c"&gt;include &amp;lt;stdio.h&amp;gt;
 #include &amp;lt;stdlib.h&amp;gt;

 void f(void)
 {
     void* s;
     s = malloc(50); /* 申请内存空间 */
     return;  /* 内在泄漏 - 参见以下资料 */
     /*
      * s 指向新分配的堆空间。
      * 当此函数返回，离开局部变量s的作用域后将无法得知s的值，
      * 分配的内存空间不能被释放。
      *
      * 如要「修复」这个问题，必须想办法释放分配的堆空间，
      * 也可以用alloca(3)代替malloc(3)。
      * （注意：alloca(3)既不是ANSI函数也不是POSIX函数）
      */
 }
 int main(void)
 {
     /* 该函数是一个死循环函数 */
     while (1) f(); /* Malloc函数迟早会由于内存泄漏而返回NULL*/
     return 0;
 }&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;结果是几秒后内存就满了. 但是系统会有保护机制? 直接杀掉了进程([[file:2021-05-14-coding-C_pointer_malloc/memory_leak.c][memory_leak.c]] [[file:2021-05-14-coding-C_pointer_malloc/makefile][makefile]]):&lt;/p&gt;

&lt;p&gt;&lt;p&gt;&lt;img src='2021-05-14-coding-C_pointer_malloc/memory_leak_res.png' alt='figalt' max-width:100%&gt;&lt;p&gt;&lt;/p&gt;

&lt;h2&gt;Reference&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;https://www.cs.nmsu.edu/~rth/cs/cs271/notes/Pointers.html&lt;/li&gt;
&lt;li&gt;https://www.geeksforgeeks.org/dynamically-allocate-2d-array-c/&lt;/li&gt;
&lt;li&gt;&lt;a href='https://zh.wikipedia.org/zh-cn/%E5%86%85%E5%AD%98%E6%B3%84%E6%BC%8F'&gt;wikipedia: 内存泄漏&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href='https://en.wikipedia.org/wiki/Dereference_operator'&gt;wikipeida: Dereference operator&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</content><category term="软件使用"/><category term="C"/><category term="array"/><category term="malloc"/><category term="memory leak"/></entry><entry><title>Symmetry Factor of φ-4 Scaler Field</title><link href="https://zqw.ink/2021-04-27-physics-symmetry_factor_scaler_field.html" rel="alternate"/><published>2021-04-27T00:00:00+08:00</published><updated>2021-04-27T00:00:00+08:00</updated><author><name>ZQW</name></author><id>tag:zqw.ink,2021-04-27:/2021-04-27-physics-symmetry_factor_scaler_field.html</id><summary type="html">
&lt;h2&gt;Intro&lt;/h2&gt;

&lt;p&gt;Zee, A. Quantum field theory in a nutshell. (Princeton University Press,
  2010). I.7 Feynman Diagrams 书中 23 页 $(23)$ 式中的 symmetry factor
  $\frac{1}{2}$ , 自己算出的却是 $\frac{3}{2}$ , 引发了 2021.4.9-2021.4.10 一天 …&lt;/p&gt;</summary><content type="html">
&lt;h2&gt;Intro&lt;/h2&gt;

&lt;p&gt;Zee, A. Quantum field theory in a nutshell. (Princeton University Press,
  2010). I.7 Feynman Diagrams 书中 23 页 $(23)$ 式中的 symmetry factor
  $\frac{1}{2}$ , 自己算出的却是 $\frac{3}{2}$ , 引发了 2021.4.9-2021.4.10 一天
  半的计算. 还联系请教了本科毕业就没再联系的小浪底同学.&lt;/p&gt;

&lt;p&gt;期间忙于科研和组会, 直到今日才得空整理!&lt;/p&gt;

&lt;h2&gt;Symmetry Factor&lt;/h2&gt;

&lt;p&gt;其实本来是很简单的问题. 但是要确信, 或者说保证计算的 symmetry factor
一定是对的, 那就只有把所有的 $J^4, \lambda^2$ (二阶四点格林函数)阶的所有的图都画出来,
才能保证不重不漏.
因为总的图的个数是确定的, 因为根据 wick 定理, $8$ 个算符 contract, 总共有 $11!!$
种 contraction, 也就是有 $11!!$ 个图. 把这些图分类, 再计算每一类在 $11!!$ 中占的比
重, 就能不重不漏, 准确无误地确定 symmetry factor 了.&lt;/p&gt;

&lt;p&gt;下图就是一步一步地连, 每连一步, 都验证图的总个数是  $11!!$ . 最终的结果都归为第二
张图中 a-n 中的某一类. 而 a-n 中些类是一样的, 所以最终结果就是第三张图中 a-l 十
一类.&lt;/p&gt;

&lt;p&gt;手工做好分类, 可以用一个程序来保证复杂数值计算的正确性, 最终 a-n 每一类中图的个
数为&lt;/p&gt;

&lt;pre&gt;&lt;code class="language-python"&gt;('a_', 180)
('b_', 720)
('c_', 1728)
('d_', 1152)
('e_', 216)
('f_', 432)
('g_', 432)
('h_', 864)
('i_', 432)
('j_', 576)
('k_', 288)
('o_', 576)
('p_', 288)
('l_', 576)
('m_', 72)
('n_', 288)&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;并验证总的个数为  $11!! = 10395$ . 至此分类完成!&lt;/p&gt;


&lt;p&gt;&lt;p&gt;&lt;img src='2021-04-27-physics-Symmetry_Factor_Scaler_Field/note1.jpg' alt='figalt' max-width:100%&gt;&lt;p&gt;&lt;/p&gt;

&lt;p&gt;file:2021-04-27-physics-Symmetry_Factor_Scaler_Field/note2.jpg&lt;/p&gt;

&lt;p&gt;file:2021-04-27-physics-Symmetry_Factor_Scaler_Field/diagrams.png&lt;/p&gt;

&lt;p&gt;最终 a-n 归类到 a-l 的结果为(第一列有点乱了,仅参考, 重要的结果是第二, 三列)&lt;/p&gt;


&lt;table&gt;
&lt;tr&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt; a-n        &lt;/td&gt;
&lt;td&gt; a-l                     &lt;/td&gt;
&lt;td&gt; number &lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt; h, j, n    &lt;/td&gt;
&lt;td&gt; a                       &lt;/td&gt;
&lt;td&gt;   1728 &lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt; 2c/3, k, p &lt;/td&gt;
&lt;td&gt; b                       &lt;/td&gt;
&lt;td&gt;   2304 &lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt; f, g       &lt;/td&gt;
&lt;td&gt; c                       &lt;/td&gt;
&lt;td&gt;    864 &lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt; c/3, d     &lt;/td&gt;
&lt;td&gt; d                       &lt;/td&gt;
&lt;td&gt;   1728 &lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt; i, m       &lt;/td&gt;
&lt;td&gt; e                       &lt;/td&gt;
&lt;td&gt;   1728 &lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt; 12*148, l  &lt;/td&gt;
&lt;td&gt; f                       &lt;/td&gt;
&lt;td&gt;   1152 &lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt; 72, 72     &lt;/td&gt;
&lt;td&gt; g                       &lt;/td&gt;
&lt;td&gt;    144 &lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt; 27         &lt;/td&gt;
&lt;td&gt; h                       &lt;/td&gt;
&lt;td&gt;     27 &lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt; 12*6       &lt;/td&gt;
&lt;td&gt; i                       &lt;/td&gt;
&lt;td&gt;     72 &lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt; a, 12*3    &lt;/td&gt;
&lt;td&gt; j                       &lt;/td&gt;
&lt;td&gt;    216 &lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;            &lt;/td&gt;
&lt;td&gt; i(编号时把 i 给漏了...) &lt;/td&gt;
&lt;td&gt;        &lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt; e, 3*72    &lt;/td&gt;
&lt;td&gt; l                       &lt;/td&gt;
&lt;td&gt;    432 &lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt; sum        &lt;/td&gt;
&lt;td&gt;                         &lt;/td&gt;
&lt;td&gt;  10395 &lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;
&lt;p&gt;所以 a 图的 symmetry factor 为 $\frac{1728}{2! (4!)^2} = \frac{3}{2}$ . 但应该是
$\frac{1}{2}$ . 这可能是由于需要给固定入射的两个粒子? 或许看到后面会明白吧!&lt;/p&gt;

&lt;h2&gt;Code&lt;/h2&gt;

&lt;p&gt;&lt;a href='2021-04-27-physics-Symmetry_Factor_Scaler_Field/symmetry_factors.py'&gt;code&lt;/a&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-python"&gt;import numpy as np

a = 3
b = 4
c = 4
# ---------------------------------------------
aa = 1 * a
ab = 4 * a
ac = 4 * a

ba = 2 * b
bb = 3 * b
bc = 4 * b

ca = 2 * c
cb = 4 * c
cc = 3 * c
# ---------------------------------------------7
ab += ba
ac += ca
bc += cb

aaa = aa * 7 * 5 * 3
order11 = aaa

aba = ab * 3
abb = ab * 4

aca = ac * 4
acb = ac * 3

bba = bb * 7 * 5 * 3
order12 = bba

bca = bc * 1
bcb = bc * 3
bcc = bc * 3

cca = cc * 4
ccb = cc * 1
ccc = cc * 2
# -----------------------------------------------
abb += aca
abb += bca
bcb += cca
acb += ccb

abaa = aba * 1 * 3
a_ = abaa
abab = aba * 4 * 3
b_ = abab

abba = abb * 3 * 3
c_ = abba
abbb = abb * 2 * 3
d_ = abbb

acba = acb * 3
acbb = acb * 2 * 3
g_ = acbb

bcba = bcb * 3
bcbb = bcb * 2

bcca = bcc * 2 * 3
l_ = bcca
bccb = bcc * 3

ccca = ccc * 1 * 3
o_ = ccca
cccb = ccc * 4 * 3
p_ = cccb
# --------------------------------
acbaa = acba * 1
e_ = acbaa
acbab = acba * 2
f_ = acbab

bcbaa = bcba * 2
h_ = bcbaa
bcbab = bcba * 1
i_ = bcbab

bcbba = bcbb * 2
j_ = bcbba
bcbbb = bcbb * 1
k_ = bcbbb

bccba = bccb * 1
m_ = bccba
bccbb = bccb * 2
n_ = bccbb
# --------------------------------

di = np.array(['a_', 'b_', 'c_', 'd_',
               'e_', 'f_', 'g_',
               'h_', 'i_', 'j_', 'k_',
               'o_', 'p_',
               'l_', 'm_', 'n_',
               'order11', 'order12'])
sum_all = np.array([a_, b_, c_, d_,
                    e_, f_, g_,
                    h_, i_, j_, k_,
                    l_, m_, n_,
                    o_, p_,
                    order11, order12])

print(sum_all.sum())
print(11 * 9 * 105)
for i in zip(di, sum_all):
    print(i)
print(h_ + j_ + n_ + 12 * 24)
print(12*(24 + 72 + 9))&lt;/code&gt;&lt;/pre&gt;

&lt;h2&gt;Reference&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Zee, A. Quantum field theory in a nutshell. (Princeton University Press, 2010). I.7 Feynman Diagrams&lt;/li&gt;
&lt;li&gt;https://physics.stackexchange.com/questions/73382/symmetry-factor-of-a-second-order-four-point-function-term-of-the-phi4-theor&lt;/li&gt;
&lt;/ul&gt;
</content><category term="专业笔记"/><category term="physics"/><category term="Feynman Diagram"/><category term="Quantum Field Theory"/><category term="Scaler Field"/><category term="Phi-4 Theory"/></entry><entry><title>记一次折腾上头经历: lsp-pyright vs. flycheck &amp; flake8</title><link href="https://zqw.ink/2021-03-19-coding-lsp_flycheck.html" rel="alternate"/><published>2021-03-19T00:00:00+08:00</published><updated>2021-03-19T00:00:00+08:00</updated><author><name>ZQW</name></author><id>tag:zqw.ink,2021-03-19:/2021-03-19-coding-lsp_flycheck.html</id><summary type="html">
&lt;p&gt;起因于昨天下午.&lt;/p&gt;

&lt;p&gt;在科研课题久久没有进展之后, 突然有了一些想法. 遂写程序.&lt;/p&gt;

&lt;p&gt;在寒假配置的 Emacs 个人新版配置终于有了用 …&lt;/p&gt;</summary><content type="html">
&lt;p&gt;起因于昨天下午.&lt;/p&gt;

&lt;p&gt;在科研课题久久没有进展之后, 突然有了一些想法. 遂写程序.&lt;/p&gt;

&lt;p&gt;在寒假配置的 Emacs 个人新版配置终于有了用武之地, 甚是高兴.&lt;/p&gt;

&lt;p&gt;可随后而来的却是一次折腾上头.&lt;/p&gt;

&lt;p&gt;之前在 Emacs 里加了 lsp-pyright, 可以提示程序中一些不规范的细节. 比如给一行注释
的话要在 &lt;code&gt;#&lt;/code&gt; 后面加至少两个空格, 诸如此类的根据 PEP8 给出的提示.&lt;/p&gt;

&lt;p&gt;可是很奇怪, 它在笔记本上可以, 在台式上不行. 开始以为是设置工程前可以显示, 设置工
程路径后就不显示了. 这也很奇怪. 搞来搞去不行, emacs 的插件删了又重下, 好多次, 就
是不行. 基本断定不是 emacs 配置的原因. 想着放弃吧, 现在没那么多多余的时间搞这些
了. 于是昨天搞了一晚上后回宿舍睡觉了.&lt;/p&gt;

&lt;p&gt;第二天上自习, 还是忍不住, 又搞了起来, 发现并不是设置工程路径的原因. 各种查 lsp,
原理, 配置...&lt;/p&gt;

&lt;p&gt;未果.&lt;/p&gt;

&lt;p&gt;越来越上头了. 今天下午为了做对照, 新建了用户, 发现和用户也没关系, 看来也不是 lsp
设置的原因.&lt;/p&gt;

&lt;p&gt;最后, 尝试安装 KDE 版本的 manjaro. 一开始想试一下直接 arch, 但想想还是算了. 没想
到装 manjaro 也是出了问题, 第一次装完, 莫名其妙地少了 libc.so , 连 pacman 都打不
开了. 想了个笨方法 chroot 直接复制 libc.so 文件直接过去, 结果连 kernel 也进不去
了.&lt;/p&gt;

&lt;p&gt;那就再装一次吧, 我已经无法回头了. 期间还出现了少见的办公室断网, 这运气...&lt;/p&gt;

&lt;p&gt;第二次终于好了, 验证了没有显示 PEP8 提示的原因是少装了什么软件.&lt;/p&gt;

&lt;p&gt;最后终于发现是 flycheck 调用 pylint 给的提示, 和 lsp 没一点关系! 安上 flake8 就
好了.&lt;/p&gt;

&lt;p&gt;太上头了. 自己本来就是外行程序员, 还这么喜欢搞这些, 下场就是一天半的时间没了...&lt;/p&gt;

&lt;p&gt;不过也有收获. 那就是现在台式上以前丢失的引导在装了 KED manjaro 之后全部都找回来
了. 现在开机有五个系统可选.&lt;/p&gt;

&lt;p&gt;本来想尝试 KDE 的, 可以就这一下午就出了致命和不致命的问题, 还是算了吧! 等我真正
闲的时候再尝试吧.&lt;/p&gt;

&lt;p&gt;不过这次折腾有一个好的结果, 不是放弃了, 而是解决了. 问题解决了, 心情是真的舒畅,
真的爽!!!&lt;/p&gt;

&lt;p&gt;这一切都不是因为问题有多复杂, 只是看问题缺乏知识, 流于表面. 或许科研也是这样, 大
家都这样, 就习以为常了.&lt;/p&gt;
</content><category term="软件使用"/><category term="emacs"/><category term="lsp"/><category term="pyright"/><category term="flycheck"/><category term="flake8"/></entry><entry><title>Susskind's Particle Pyhsics I: Basic Concepts Note</title><link href="https://zqw.ink/2021-03-19-physics-susskindsparticlephysicsi.html" rel="alternate"/><published>2021-03-19T00:00:00+08:00</published><updated>2021-03-19T00:00:00+08:00</updated><author><name>ZQW</name></author><id>tag:zqw.ink,2021-03-19:/2021-03-19-physics-susskindsparticlephysicsi.html</id><summary type="html">
&lt;h2&gt;Information&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;官方介绍: https://theoreticalminimum.com/courses/particle-physics-1-basic-concepts/2009/fall&lt;/li&gt;
&lt;li&gt;视频列表地址: https://www.youtube.com/watch?v&lt;code&gt;2eFvVzNF24g&amp;list&lt;/code&gt;PLaTmJYdn8i5zI1To7uSg75eNA_AKXGUl0&lt;/li&gt;
&lt;li&gt;把主要内容整理一下.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Lecture 1: Particles and Light&lt;/h2&gt;

&lt;h3&gt;Wave Properties&lt;/h3&gt;


$$\begin{align}
\boxed{\frac{\lambda}{T} = c}
\end …</summary><content type="html">
&lt;h2&gt;Information&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;官方介绍: https://theoreticalminimum.com/courses/particle-physics-1-basic-concepts/2009/fall&lt;/li&gt;
&lt;li&gt;视频列表地址: https://www.youtube.com/watch?v&lt;code&gt;2eFvVzNF24g&amp;list&lt;/code&gt;PLaTmJYdn8i5zI1To7uSg75eNA_AKXGUl0&lt;/li&gt;
&lt;li&gt;把主要内容整理一下.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Lecture 1: Particles and Light&lt;/h2&gt;

&lt;h3&gt;Wave Properties&lt;/h3&gt;


$$\begin{align}
\boxed{\frac{\lambda}{T} = c}
\end{align}$$


$$\begin{align}
f = \frac{1}{T} \quad \boxed{\lambda f = c}
\end{align}$$


$$\begin{align}
\omega = 2\pi f = \boxed{2\pi \frac{c}{\lambda} = \omega}
\end{align}$$


&lt;h3&gt;Photon Properties&lt;/h3&gt;


$$\begin{align}
\boxed{E_{\mathrm{phton}} = \hbar\omega}
\end{align}$$


$$\begin{align}
E_{\mathrm{ray}} = n \hbar \omega
\end{align}$$


$$\begin{align}
p = \frac{E}{c}
\end{align}$$


&lt;h2&gt;Lecture 2: Review of Quantum Mechanics &amp; Harmonic Oscillator&lt;/h2&gt;

&lt;h3&gt;Periodic Boundary Condition&lt;/h3&gt;

&lt;p&gt;In order to make momentum conseved, we need periodic boundary condition, so&lt;/p&gt;

$$\begin{align}
\lambda = \frac{L}{N}
\end{align}$$

&lt;p&gt;$\lambda$ is discrete.&lt;/p&gt;

$$\begin{align}
p = \frac{h}{\lambda} = \frac{h}{L}N
\end{align}$$


&lt;h3&gt;Harmonic Oscillator&lt;/h3&gt;


$$\begin{align}
  E &amp;= n \hbar\omega\\
  a^{+ }|n \rangle &amp;= \sqrt{n + 1} | n+ 1 \rangle \\
  a^{- }|n \rangle &amp;= \sqrt{n } | n - 1\rangle \\
  a^{+ }a^{- } &amp;\sim n \\
  a^{- }a^{+ } &amp;\sim n + 1
\end{align}$$


&lt;h2&gt;Lecture 3: Field Operators&lt;/h2&gt;

&lt;h3&gt;Field operator&lt;/h3&gt;

&lt;p&gt;In periodic boundary conditions, a plane wave&lt;/p&gt;

$$\begin{align}
  e^{\mathrm{i}kL}, \quad, k = n\frac{2\pi}{L}
\end{align}$$

&lt;p&gt;One particle with momentum $k_7$&lt;/p&gt;

$$\begin{align}
  |0, 0, 0, 0, 0, 0, 1, 0, 0, \cdots \rangle
\end{align}$$

&lt;p&gt;Classical version of Fourier coefficient of field&lt;/p&gt;

$$\begin{align}
  \psi(x) &amp;= \sum_k \alpha(k) e^{\mathrm{i} kx} \\
  \psi^{ * }(x) = \sum_k \alpha^{ * }(k) e^{- \mathrm{i}k x}
\end{align}$$

&lt;p&gt;quantum version&lt;/p&gt;

$$\begin{align}
  \psi^{ -}(x) &amp;= \sum_k \alpha^{- }(k) e^{\mathrm{i} kx} \\
  \psi^{ + }(x) &amp;= \sum_k \alpha^{ + }(k) e^{- \mathrm{i}k x}
\end{align}$$

&lt;p&gt;Let&lt;/p&gt;

$$\begin{align}
  |0\rangle \equiv&amp; |0, 0, 0, 0, 0, 0\cdots \rangle\\
  |k_i\rangle \equiv&amp; |0, 0, 0, \cdots , 1, 0, 0\cdots \rangle ,
    \quad\mathrm{one} \quad \mathrm{in}\quad i \mathrm{th}
\end{align}$$

&lt;p&gt;Create a particle at position $x$&lt;/p&gt;

$$\begin{align}
  \psi^{+ }(x) |0\rangle = \sum_k e^{-\mathrm{i} k x} a^{+ }(k)| 0 \rangle
   = \sum_k e^{-\mathrm{i} k x} | k \rangle
\end{align}$$


&lt;h3&gt;Possible  Reaction &amp; Stimulated Emission&lt;/h3&gt;

&lt;p&gt;&lt;p&gt;&lt;img src='2021-03-19-physics-SusskindsParticlePhysicsI/reaction.png' alt='figalt' max-width:100%&gt;&lt;p&gt;&lt;/p&gt;

&lt;p&gt;A particle comes in, and when it hits the target. The target happens to be
localized at position $x$ . That particle disappears. And then two particles
emitted from the same spot. How would we describe this reaction?&lt;/p&gt;

$$\begin{align}
  \Psi^{\dagger}(x) \Psi^{\dagger}(x) \Psi(x)|\rangle
\end{align}$$

&lt;p&gt;If that a particle with momentum $k_i$ is absorbed at position $x$ . What is the
final state? What is the various probabilities for this final state to have this
or that momentum?&lt;/p&gt;

&lt;p&gt;A photon comes in, hits an atom localized at a point and from that point two
photons go off&lt;/p&gt;

$$\begin{align}
  \Psi^{\dagger}(x) \Psi^{\dagger}(x) \Psi(x)|k_{\mathrm{i}}\rangle
  =&amp; \sum_{l,m} a^{\dagger}(l) e^{-\mathrm{i}lx} a^{\dagger}(m) e^{-\mathrm{i}mx}
    \sum_k a(k) e^{\mathrm{i}kx} |k_{\mathrm{i}}\rangle \\
  =&amp; \sum_{l,m} a^{\dagger}(l) e^{-\mathrm{i}lx} a^{\dagger}(m) e^{-\mathrm{i}mx}
      e^{\mathrm{i}k_{\mathrm{i}}x} |0\rangle \\
  =&amp; \sum_{l,m} e^{\mathrm{i}(k_{\mathrm{i}} - l - m)}|l, m\rangle
\end{align}$$

&lt;p&gt;本来想用这个说明 stimulated emission, 因为 $l = m$ 时会有 factor $\sqrt{2}$ ,
产生相同动量的两个粒子的概率会增加. 但是翻车了, 因为 $l \neq m$ 时, 同样也会有一个
$2$ , 因为 $l = 1, m = 2$ 和 $l = 2, m = 1$ 都会有贡献.&lt;/p&gt;

&lt;p&gt;然后用另一个例子说明 stimulated emission. Supposing we have a particle which can
decay and emit a photon.&lt;/p&gt;

$$\begin{align}
  \Psi^{\dagger}(x) |0\rangle = \sum_k e^{-\mathrm{i} kx}|k\rangle
\end{align}$$

&lt;p&gt;equal probability for all $k$ .&lt;/p&gt;

&lt;p&gt;If there pre-exist a particle&lt;/p&gt;

$$\begin{align}
  \Psi^{\dagger}(x) |l\rangle = \sum_k e^{-\mathrm{i} kx} a^+(k)|l\rangle
\end{align}$$

&lt;p&gt;if $k\neq l$&lt;/p&gt;

$$\begin{align}
  \Psi^{\dagger}(x) |l\rangle = \sum_k e^{-\mathrm{i} kx} |k, l\rangle
\end{align}$$

&lt;p&gt;equal probability. But if $k = l$&lt;/p&gt;

$$\begin{align}
  e^{-\mathrm{i} kx} \sqrt{2}|k, k\rangle
\end{align}$$

&lt;p&gt;There are no photons present then just decays with coefficient $1$ , that's
spontaneous emission. The presence of particles of a give type will increase the
probability that out decay takes places with the final momentum being the same
as the momentum already there. This is stimulated emission. Bosons!&lt;/p&gt;

&lt;h3&gt;Density of $x$&lt;/h3&gt;


$$\begin{align}
  \Psi^{\dagger}(x) \Psi(x)
\end{align}$$


$$\begin{align}
  \frac{1}{L}\int  \Psi^{\dagger}(x) \Psi(x) \cdot\mathrm{d}x = \frac{1}{L} = \mathrm{Number}
  \quad \mathrm{of} \quad \mathrm{particles}
\end{align}$$


&lt;h2&gt;Lecture 4: Scattering Process&lt;/h2&gt;

&lt;h3&gt;Simplest Quantum Field&lt;/h3&gt;

&lt;p&gt;The simplest quantum field, be a function of only one coordinate namely $x$ .&lt;/p&gt;

$$\begin{align}
  \Psi (x, t) =&amp; \sum_k a^-(k) e^{\mathrm{i}kx} e^{\mathrm{i}\omega(k)t}
   \quad \mathrm{(Definition)} \\
  \Psi^{\dagger} (x, t) =&amp; \sum_k a^-(k) e^{-\mathrm{i}kx} e^{\mathrm{i}\omega(k)t}
\end{align}$$

&lt;p&gt;Find the wave equation for $\Psi$ .&lt;/p&gt;

$$\begin{align}
  \frac{\partial}{\partial t} \Psi &amp;= \mathrm{i} \omega(k) \Psi \\
  \frac{\partial}{\partial x} \Psi &amp;= \mathrm{i} k \Psi \\
  \frac{\partial^2}{\partial x^2} \Psi &amp;= - k^2 \Psi \\
\end{align}$$

&lt;p&gt;so&lt;/p&gt;

$$\begin{align}
  \mathrm{i}\frac{\partial}{\partial t} \Psi = \frac{\omega}{k}\frac{\partial^2}{\partial x^2} \Psi
\end{align}$$

&lt;p&gt;if $\omega = \frac{k^2}{2m}$ , a non-relativitic particle&lt;/p&gt;

$$\begin{align}
  \mathrm{i}\frac{\partial}{\partial t} \Psi = \frac{1}{2m}\frac{\partial^2}{\partial x^2} \Psi
\end{align}$$

&lt;p&gt;$\Psi$ is an operator.&lt;/p&gt;

&lt;h3&gt;A Model: Scattering&lt;/h3&gt;

&lt;p&gt;&lt;p&gt;&lt;img src='2021-03-19-physics-SusskindsParticlePhysicsI/scattering.png' alt='figalt' max-width:100%&gt;&lt;p&gt;&lt;/p&gt;

&lt;p&gt;A particle absorbed by a fixed target and emitted by the target instantly. This
process is energy conserved but momentum not conserved. Averaging or integrating
over all possiable time (set $x_0 = 0$)&lt;/p&gt;

$$\begin{align}
 \langle k_f | g \int \mathrm{d}t\cdot \Psi^{\dagger}(0, t) \Psi(0, t) | k_i \rangle
  = 2 \pi g \delta (\omega_f - \omega_i)
\end{align}$$

&lt;p&gt;where $g$ is coupling constant. There is connection between the fact that
conservation of eneryg and the fact there's no preference of any specified time.&lt;/p&gt;

&lt;h2&gt;Lecture 5: Fermion&lt;/h2&gt;

&lt;h3&gt;Phase Velocity &amp; Group Velocity&lt;/h3&gt;


$$\begin{align}
\omega = \sqrt{k^2 + m^2}
\end{align}$$

&lt;p&gt;for massless $m = 0$&lt;/p&gt;

$$\begin{align}
 v_{\mathrm{p}} &amp;= \frac{\omega}{k} = 1 \\
 v_{\mathrm{g}} &amp;= \frac{\mathrm{d}\omega}{\mathrm{d}k} = 1
\end{align}$$

&lt;p&gt;but if $m \neq 0$&lt;/p&gt;

$$\begin{align}
 v_{\mathrm{p}} &amp;= \frac{\omega}{k} = \sqrt{1 + \frac{m^2}{k^2}} &gt; 1\\
 v_{\mathrm{g}} &amp;= \frac{\mathrm{d}\omega}{\mathrm{d}k}
      = \sqrt{\frac{k^2}{k^2 + m^2}} &lt; 1
\end{align}$$

&lt;p&gt;$1$ is the speed of light. So phase velocity carries nothing.&lt;/p&gt;

&lt;h3&gt;Fermion&lt;/h3&gt;


$$\begin{align}
  c^{+ } |0 \rangle &amp;= |1\rangle\\
  c^{+ } |1 \rangle &amp;= 0\\
  c^{- } |0 \rangle &amp;= 0\\
  c^{0 } |1 \rangle &amp;= |0\rangle\\
\end{align}$$


$$\begin{align}
  \boxed{c^{+ } c^{ -} |0 \rangle  = 0 } \\
  \boxed{c^{- } c^{ +} |0 \rangle  = |0\rangle }
\end{align}$$


&lt;h3&gt;Ground state&lt;/h3&gt;

&lt;p&gt;Boson: Bose condensate.&lt;/p&gt;

&lt;p&gt;Fermion: Fermi sphere&lt;/p&gt;

&lt;h3&gt;Dirac Equation&lt;/h3&gt;

&lt;p&gt;move speed of light( $\omega = k$ , $c = 1$ ), carry electric charge, only move to
one direction
filed $\Psi$&lt;/p&gt;

$$\begin{align}
  \Psi = e^{\mathrm{i}(k x - \omega t)} = e^{\mathrm{i} k (x - t)}
\end{align}$$

&lt;p&gt;so&lt;/p&gt;

$$\begin{align}
  \frac{\partial \Psi}{\partial t} = - \frac{\partial \Psi}{\partial x}, \quad (\mathrm{i}\omega = \mathrm{i}k)
\end{align}$$

&lt;p&gt;describe both positive and negative energy. Negative is filled.&lt;/p&gt;

&lt;h2&gt;Lecture 6: Dirac Equation &amp; Higgs Boson&lt;/h2&gt;

&lt;p&gt;Move right field&lt;/p&gt;

$$\begin{align}
   \frac{\partial \Psi}{\partial t} = - \frac{\partial \Psi}{\partial x}
\end{align}$$

&lt;p&gt;Move left field&lt;/p&gt;

$$\begin{align}
  \frac{\partial \Psi}{\partial t} =  \frac{\partial \Psi}{\partial x} ,\quad (\omega = -k)
\end{align}$$


$$\begin{align}
  \dot{\Psi} \equiv \begin{pmatrix} \dot{\Psi}_R \\ \dot{\Psi}_L \end{pmatrix}
   = - \begin{pmatrix} 1 &amp;0 \\0 &amp; -1 \end{pmatrix}
    \begin{pmatrix} \frac{\partial \Psi_R}{\partial x} \\\frac{\partial \Psi_L}{\partial x} \end{pmatrix}
  \equiv - \alpha \frac{\partial}{\partial x} \Psi
\end{align}$$


$$\begin{align}
  \omega = \alpha k
\end{align}$$

&lt;p&gt;we want (not massless) $\omega = \sqrt{k^2 + m^2}$ , so let $\omega = \alpha k + \beta m$&lt;/p&gt;

$$\begin{align}
  \omega^2 = k^2 + m^2 = (\alpha k + \beta m)^2 \Rightarrow \alpha^2 = 1, \beta^2 = 1, \alpha\beta + \beta\alpha = 0
\end{align}$$

&lt;p&gt;so $\beta$ can be&lt;/p&gt;

$$\begin{align}
  \beta = \begin{pmatrix} 0 &amp; 1 \\ 1 &amp; 0 \end{pmatrix}
\end{align}$$

&lt;p&gt;so&lt;/p&gt;

$$\begin{align}
  \mathrm{i} \begin{pmatrix} \dot{\Psi}_R \\ \dot{\Psi}_L \end{pmatrix}
  = - \mathrm{i} \alpha \frac{\partial}{\partial x}\Psi + \beta m \Psi
\end{align}$$


$$\begin{align}
  \mathrm{i}\dot{\Psi}_R =&amp; -\mathrm{i}\partial_x \Psi_R + m\Psi_L \\
  \mathrm{i}\dot{\Psi}_L =&amp; \mathrm{i}\partial_x \Psi_L + m\Psi_R
\end{align}$$

&lt;p&gt;For a particle at rest ( $k = 0$ )&lt;/p&gt;

$$\begin{align}
  \mathrm{i} \frac{\partial}{\partial t} \Psi
   \equiv \mathrm{i} \begin{pmatrix} \dot{\Psi}_R \\\dot{\Psi}_L \end{pmatrix}= \beta m \Psi
   \equiv m \begin{pmatrix} \Psi_L \\ \Psi_R \end{pmatrix}
\end{align}$$


&lt;p&gt;$\Psi_L$ and $\Psi_R$ are coupled. We can decouple them by $\Psi_+ = \Psi_L + \Psi_R$ ,
$\Psi_- = \Psi_L - \Psi_R$&lt;/p&gt;

$$\begin{align}
  \mathrm{i}\dot{\Psi}_+ &amp;= m\Psi_+ \\
  \mathrm{i}\dot{\Psi}_- &amp;= -m\Psi_-
\end{align}$$


&lt;h3&gt;Dirac Equation in 3 Dimensions&lt;/h3&gt;

&lt;p&gt;Let&lt;/p&gt;

$$\begin{align}
  \omega =&amp; \sqrt{k_1^2 + k_2^2 + k_3^2 + m^2} \\
  \omega =&amp; \alpha k + \beta m = \alpha_1 k_1 + \alpha_2k_2 + \alpha_3 k_3 + \beta m
\end{align}$$

&lt;p&gt;so&lt;/p&gt;

$$\begin{align}
\beta = \begin{pmatrix} I &amp; 0 \\ 0 &amp; -I \end{pmatrix}, \quad
\alpha_i   = \begin{pmatrix} 0 &amp; \sigma_i \\ \sigma_i &amp; 0 \end{pmatrix}
\end{align}$$

&lt;p&gt;where $I$ is $2\times 2$ identity matrix, $\sigma_i$ is Pauli matrix.&lt;/p&gt;

$$\begin{align}
  \mathrm{i}\frac{\partial }{\partial t} \Psi_p = - i (\alpha_i)_{pq} \frac{\partial}{\partial x^i}\Psi_q
    + \beta_q m \Psi_q
\end{align}$$


&lt;h2&gt;Lecture 7: Angular Momentum&lt;/h2&gt;

&lt;p&gt;Angular momentum&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Orbital&lt;/li&gt;
&lt;li&gt;Spin&lt;/li&gt;
&lt;/ul&gt;

$$\begin{align}
  [x_i , x_j] &amp;= 0 \\
  [p_i , p_j] &amp;= 0 \\
  [x, p_x] &amp;= \mathrm{i}\hbar \\
  [x_i, p_j] &amp;= \mathrm{i}\hbar\delta_{ij} \\
  [L_x, L_y] &amp;= \mathrm{i}\hbar L_z
\end{align}$$


$$\begin{align}
  L_+ &amp;= L_x + \mathrm{i} L_y \\
  L_- &amp;= L_x - \mathrm{i} L_y \\
\end{align}$$


$$\begin{align}
  [L_{+} , L_z] &amp;= - L_{ +} \\
  [L_{- }, L_z] &amp;= + L_-
\end{align}$$


&lt;h2&gt;Lecture 8: Spin&lt;/h2&gt;

&lt;p&gt;Review spin.&lt;/p&gt;

&lt;h2&gt;Lecture 9: Interaction&lt;/h2&gt;

&lt;p&gt;Diagrams but abstract.&lt;/p&gt;

&lt;h2&gt;Lecture 10: Path Integral&lt;/h2&gt;

&lt;p&gt;Abstract.&lt;/p&gt;

&lt;h2&gt;Reference&lt;/h2&gt;
</content><category term="专业笔记"/><category term="physics"/><category term="Particle Physics"/><category term="Susskind"/><category term="Quantum Field Theory"/><category term="Stimulated Emission"/><category term="Group Velocity"/><category term="Phase Velocity"/></entry><entry><title>Second Order Rubik's Cube Fun</title><link href="https://zqw.ink/2021-03-13-thinking-2nd_rubiks_cube.html" rel="alternate"/><published>2021-03-13T00:00:00+08:00</published><updated>2021-03-13T00:00:00+08:00</updated><author><name>ZQW</name></author><id>tag:zqw.ink,2021-03-13:/2021-03-13-thinking-2nd_rubiks_cube.html</id><content type="html">
&lt;p&gt;&lt;p&gt;&lt;img src='2021-03-13-thinking-2nd_rubiks_cube/2nd_cube.png' alt='figalt' max-width:100%&gt;&lt;p&gt;&lt;/p&gt;

&lt;p&gt;Draw by &lt;a href='https://www.geogebra.org/'&gt;Geogebra&lt;/a&gt; : [[file:2021-03-13-thinking-2nd_rubiks_cube/2nd_cube.ggb]]&lt;/p&gt;
</content><category term="想说"/><category term="Rubik's Cube"/></entry><entry><title>Susskind's Statistical Mechanics</title><link href="https://zqw.ink/2021-03-11-physics-susskindsstatisticalmechanics.html" rel="alternate"/><published>2021-03-11T00:00:00+08:00</published><updated>2021-03-11T00:00:00+08:00</updated><author><name>ZQW</name></author><id>tag:zqw.ink,2021-03-11:/2021-03-11-physics-susskindsstatisticalmechanics.html</id><summary type="html">
&lt;h2&gt;Information&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;官方介绍: https://theoreticalminimum.com/courses/statistical-mechanics/2013/spring&lt;/li&gt;
&lt;li&gt;视频列表地址: https://www.youtube.com/watch?v&lt;code&gt;D1RzvXDXyqA&amp;list&lt;/code&gt;PL_IkS0viawhr3HcKH607rXbVqy28W_gB7&lt;/li&gt;
&lt;li&gt;参考 Note: https://www.lapasserelle.com/statistical_mechanics/index.html&lt;/li&gt;
&lt;li&gt;把主要内容整理一下.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Lecture 1: Entropy and conservation …&lt;/h2&gt;</summary><content type="html">
&lt;h2&gt;Information&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;官方介绍: https://theoreticalminimum.com/courses/statistical-mechanics/2013/spring&lt;/li&gt;
&lt;li&gt;视频列表地址: https://www.youtube.com/watch?v&lt;code&gt;D1RzvXDXyqA&amp;list&lt;/code&gt;PL_IkS0viawhr3HcKH607rXbVqy28W_gB7&lt;/li&gt;
&lt;li&gt;参考 Note: https://www.lapasserelle.com/statistical_mechanics/index.html&lt;/li&gt;
&lt;li&gt;把主要内容整理一下.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Lecture 1: Entropy and conservation of information&lt;/h2&gt;

&lt;h3&gt;Conservation of Information&lt;/h3&gt;

&lt;p&gt;一个六面 die, 六个面有不同的颜色 blue, red, green, purple, yellow, orange, 如图
&lt;p&gt;&lt;img src='2021-03-11-physics-SusskindsStatisticalMechanics/die.png' alt='figalt' max-width:100%&gt;&lt;p&gt;
如果它以某种规律运动, 比如下图中红色的箭头
&lt;p&gt;&lt;img src='2021-03-11-physics-SusskindsStatisticalMechanics/ring1.png' alt='figalt' max-width:100%&gt;&lt;p&gt;
那么无论何时, 发现它处于某一面的概率都是相等的&lt;/p&gt;

$$\begin{align}
P(i) = \frac{1}{6}
\end{align}$$

&lt;p&gt;$i$ 代表第 $i$ 面朝上的事件.
如果它按蓝色箭头, 结果是一样的, $P(i) = \frac{1}{6}$ . 又比如, 它按下面的方式运
动
&lt;p&gt;&lt;img src='2021-03-11-physics-SusskindsStatisticalMechanics/ring2.png' alt='figalt' max-width:100%&gt;&lt;p&gt;
它会有两种状态. 就是说, 它可以处于上面的循环中, 记这个状态为 $+1$ , 那么在这个状
态中, 某个面向上的概率是 $P(+1) = \frac{1}{3}$ , 它永远不会跳到下面的态.&lt;/p&gt;

&lt;p&gt;它也可以处下面的态, 记为 $+1$ , 同样的 $P(+1) = \frac{1}{3}$ .&lt;/p&gt;

&lt;p&gt;上面的例子都是一些好的运动规律, good laws, 因为它的 infromation conserved. 也就是说, 不论过了多
久, 我们知道系统的信息一样的.&lt;/p&gt;

&lt;p&gt;但是也有一些不好的例子, bad laws, 比如下图
&lt;p&gt;&lt;img src='2021-03-11-physics-SusskindsStatisticalMechanics/ring_bad.png' alt='figalt' max-width:100%&gt;&lt;p&gt;
它在演化的过程中会 lose information , 这个 information 指初态的 infromation. 比
如一开始处于 orange, 过了一会, 它一定会到 red. 它是不可逆的.&lt;/p&gt;

&lt;p&gt;这种 bad laws 在实际的运动中可以对应比如&lt;/p&gt;

$$\begin{align}
  \frac{\mathrm{d}^2x_n}{\mathrm{d}t^2} = -\gamma \frac{\mathrm{d}x_n}{\mathrm{d}t}
\end{align}$$

&lt;p&gt;它最终的结果是 erery particles come to rest.&lt;/p&gt;

&lt;p&gt;conservation of information , minus first law.&lt;/p&gt;

&lt;h3&gt;Entropy&lt;/h3&gt;

&lt;p&gt;$N$ is TOTAL number of STATES. 其中 $M &lt; N$ 个态上的占据概率相等, 为
$P=\frac{1}{M}$ , 其它态上的占据概率是 $0$ . 那么定义 entropy&lt;/p&gt;

$$\begin{align}
  S = \log M
\end{align}$$

&lt;p&gt;Entropy: Measures approximately the number of states which have non-zero
probability. The bigger it, the less you know.&lt;/p&gt;

&lt;p&gt;In space of states(phase space) of real mechanics, the volume of phase space
will stay the same.(Liouville's theorem) i.e. the same number of states.&lt;/p&gt;

&lt;h3&gt;How to define entropy for a complex probability distribution?&lt;/h3&gt;


$$\begin{align}
  S = - \sum_iP(i) \log P(i)
\end{align}$$

&lt;p&gt;它可以回到简单的情况. 对于 $P(i) = \frac{1}{M}$ , others zero&lt;/p&gt;

$$\begin{align}
  S = -\sum_i \frac{1}{M}\log \frac{1}{M} = \log M
\end{align}$$

&lt;p&gt;特例, $M = 1$ , $S = 0$ , Complete knowledge, Entropy zero.&lt;/p&gt;

&lt;h3&gt;Definition of Entropy in Phase Space&lt;/h3&gt;

&lt;p&gt;&lt;p&gt;&lt;img src='2021-03-11-physics-SusskindsStatisticalMechanics/entropy_phase_space.png' alt='figalt' max-width:100%&gt;&lt;p&gt;
如果像上图一样, 概率是均匀的, 那么&lt;/p&gt;

$$\begin{align}
  S = \log V_{PH}
\end{align}$$

&lt;p&gt;$V_{PH}$ is volume of phase space.&lt;/p&gt;

&lt;p&gt;如果概率不均匀, 那么也可以扩展成&lt;/p&gt;

$$\begin{align}
 S = - \int \mathrm{d}p\mathrm{d}x P(p, x) \log P(p, x)
\end{align}$$

&lt;p&gt;它满足&lt;/p&gt;

$$\begin{align}
  \int P(p, x)\mathrm{d}p \mathrm{d}x = 1
\end{align}$$


&lt;h2&gt;Lecture 2: Units &amp; Temperature&lt;/h2&gt;

&lt;h3&gt;Units declaration&lt;/h3&gt;

&lt;p&gt;$c = \hbar = G = k_{\mathrm{B}} = 1$ . Temperature change is a human construct that
was invented for convenience.&lt;/p&gt;

$$\begin{align}
  T = k_{\mathrm{B}}t_{\mathrm{K}}
\end{align}$$

&lt;p&gt;$t_{\mathrm{K}}$ is temperature in Kelvin.&lt;/p&gt;

&lt;h3&gt;What temperature is?&lt;/h3&gt;

&lt;p&gt;The average energy in state $i$ which average energy is $E$ is&lt;/p&gt;

$$\begin{align}
  \sum_iP(i, E) E_i = \langle E\rangle
\end{align}$$

&lt;p&gt;the entropy is&lt;/p&gt;

$$\begin{align}
  S(E) = -\sum_i P(i, E)\log P(i, E)
\end{align}$$

&lt;p&gt;由于&lt;/p&gt;

$$\begin{align}
  \sum_iP(i, E) = 1
\end{align}$$

&lt;p&gt;所以当比较大的 $E(i)$ 概率变大的化, 整个概率分布看起来会更平. 如下图
&lt;p&gt;&lt;img src='2021-03-11-physics-SusskindsStatisticalMechanics/P_i_E.png' alt='figalt' max-width:100%&gt;&lt;p&gt;
蓝线到橙线到时红线它们的平均能量 $E$ 是变大的, 同时概率分布变得理平, 意味着
entropy 也增大.&lt;/p&gt;

&lt;p&gt;Consider: How much do you have to change the average energy in order to change
the entropy by $1$ bit( $\log 2$ )? We define temperature like this&lt;/p&gt;

$$\begin{align}
\Delta E = \frac{\partial E}{\partial S} \Delta S
\end{align}$$



$$\begin{align}
\mathrm{d}E = T \mathrm{d}S
\end{align}$$


&lt;h3&gt;It is temperature&lt;/h3&gt;

&lt;p&gt;下面证明它就是温度, 也就是说两个系统达到热平衡时, 上面定义的温度是相同的.&lt;/p&gt;

&lt;p&gt;考虑两个系统 $A, B$ , 初始时它们的温度分别为 $T_A, T_B$ 并且 $T_B &gt; T_A$ . First
law says&lt;/p&gt;

$$\begin{align}
  \mathrm{d}E_A + \mathrm{d}E_B =0
\end{align}$$

&lt;p&gt;second law says&lt;/p&gt;

$$\begin{align}
  \mathrm{d}S_A + \mathrm{d}S_B &gt; 0
\end{align}$$

&lt;p&gt;combine them and use our definition of temperature we get&lt;/p&gt;

$$\begin{align}
 \mathrm{d}S_B =&amp; \frac{\mathrm{d}E_B}{T_B} = - \frac{T_A}{T_B}\mathrm{d}S_A \\
          \Downarrow &amp;\\
 0 &lt; &amp; \mathrm{d}S_A + \mathrm{d}S_B = \left(1 - \frac{T_A}{T_B}\right) \mathrm{d}S_A
\end{align}$$

&lt;p&gt;because $T_B &gt; T_A$ , so&lt;/p&gt;

$$\begin{align}
 \mathrm{d}S_A &gt; &amp; 0\\
          \Downarrow &amp;\\
 T_A \mathrm{d} S_A &gt; &amp; 0 \\
          \Downarrow &amp;\\
 \mathrm{d}E_A &gt; &amp; 0
\end{align}$$

&lt;p&gt;so energy flowed from B to A.&lt;/p&gt;

&lt;p&gt;也就是说能量会从温度高的地方向温度低的地方流动, 也就是说只有温度相同的, 才没有能
量流动, 也就是说达到了热平衡.&lt;/p&gt;

&lt;h2&gt;Lecture 3: Maximizing entropy&lt;/h2&gt;

&lt;p&gt;Zeroth law: there is a notion of temperature which way energy flows. Ultimately
equilibrium.&lt;/p&gt;

&lt;h3&gt;A Trick (Canonical Ensemble)&lt;/h3&gt;

&lt;p&gt;Imagine that the system in question is one of a very large number of identical
systems which are connected together by little pipes that allow heat to flow
back and forth. One of them is the system we're studying. The rest of them
simply provide the heat bath.
&lt;p&gt;&lt;img src='2021-03-11-physics-SusskindsStatisticalMechanics/ensemble.png' alt='figalt' max-width:100%&gt;&lt;p&gt;
We're going to let them get a large number $N$ of them. Large enough that we can
think of the heat bath is very big.&lt;/p&gt;

&lt;p&gt;Each one of the systems is in a state. Call the number of systems in the
$i\mathrm{th}$ state $n_i = (n_1, n_2, n_3, \cdots)$
Constrains&lt;/p&gt;

$$\begin{align}
\sum_in_i =&amp; N \\
\sum_in_i E_i =&amp; N E
\end{align}$$


&lt;h3&gt;Maximizing entropy&lt;/h3&gt;

&lt;p&gt;What is the probability that a given one of these systems is in the
$i\mathrm{th}$ state? It is&lt;/p&gt;

$$\begin{align}
P(i) = \frac{n_i}{N}
\end{align}$$

&lt;p&gt;use this to rewrite the constrains&lt;/p&gt;

$$\begin{align}
  \sum_iP(i) =&amp; 1 \\
  \sum_iP(i) E_i =&amp; E
\end{align}$$

&lt;p&gt;Given the occupation numbers, how many ways of redistributing
the states?(most of occupation number is zero) That is&lt;/p&gt;

$$\begin{align}
  \mathrm{Number}\quad \mathrm{of} \quad\mathrm{arrangements}
    =\frac{N!}{\Pi _in_i!}
\end{align}$$

&lt;p&gt;use Stirling's Approximation $N! \sim N^Ne^{- N}$ as $N\to\infty$&lt;/p&gt;

$$\begin{align}
\log\frac{N!}{\Pi _in_i!} \approx&amp; \log \frac{N^N}{\sum_in_i^{n_i}}
  = N\log N - \sum_in_i\log n_i \\
  =&amp; N\log N - \sum_iN P(i)\log [NP(i)] \\
  =&amp; - N \sum_i P(i) \log P(i)
\end{align}$$

&lt;p&gt;It's entropy. If we want to find out the occupation numbers which maximize the
number of ways that you can rearrange the system keep the occupation numbers
fixed. It simply corresponds to maximizing the entropy.&lt;/p&gt;

&lt;p&gt;The most probable distribution of occupation numbers corresponds to
probabilities which maximize the entropy.&lt;/p&gt;

&lt;h2&gt;Lecture 4: The Boltzmann distribution&lt;/h2&gt;

&lt;h3&gt;Partition function&lt;/h3&gt;

&lt;p&gt;Use Lagrange Multiplier to maximize the entropy&lt;/p&gt;

$$\begin{align}
  F'(P) = - \sum_iP_i \log P_i  - \alpha \left[\sum_i P_i - 1 \right] - \beta\left[\sum_iE_iP_i - E\right]
\end{align}$$

&lt;p&gt;let $\frac{\partial F'}{\partial P_i} = 0$, we get&lt;/p&gt;

$$\begin{align}
  P_i = e^{-(1 + \alpha)} e^{- \beta E_i}
\end{align}$$

&lt;p&gt;call $e^{-(1 + \alpha)} = Z$ partition function, then&lt;/p&gt;

$$\begin{align}
  P_i = \frac{1}{Z} e^{- \beta E_i}
\end{align}$$

&lt;p&gt;这个分布是在给定平均能量下最有可能的分布.&lt;/p&gt;

&lt;p&gt;so partition function is&lt;/p&gt;

$$\begin{align}
  Z = \sum_i e^{- \beta E_i}
\end{align}$$

&lt;p&gt;Tuning $\beta$ , tuning average energy. 限制温度相当于限制平均能量.&lt;/p&gt;

&lt;p&gt;$E_{i}$ 是系统给定的.&lt;/p&gt;

&lt;p&gt;关于 $E, \alpha, \beta$ 之间的关系. $\alpha, \beta$ 是拉氏乘子, 它对应两个约束, 一个是概率归一,
一个是能量给定. 结果就是, 由概率归一和能量给定, 就可以得出 $\alpha, \beta$ . 而概率归一
是永远知道的, 所以剩下的三个量 $E, \alpha, \beta$ 之中给定任何一个, 就可以结合概率归一
得出任剩下的两个, 也就是 $E(\alpha), E(\beta), \alpha(E), \alpha(\beta), \beta(E), \beta(\alpha)$ . 而 $\beta$
是一个我们非常关心的物理量, 下面将会说明它是温度的倒数, 所以常用的关系就是
$E(\beta)$ 和 $\alpha(\beta)$ , 也就是 $Z(\beta)$ , 因为 $Z$ 和 $\alpha$ 只是做了一个变量替换而已.
得到了 $Z(\beta)$ 就得到了系统所有的其它热力学量.&lt;/p&gt;

&lt;h3&gt;Average Energy $E$&lt;/h3&gt;

&lt;p&gt;如果我们知道了 $Z(\beta)$ , 当然可以得到 $E$ , 因为 $E(Z) = E(Z(\beta)) = E(\beta)$ . 也
就是说利用关系 $E(Z)$ , $Z(\beta)$ 得到 $E(\beta)$&lt;/p&gt;

$$\begin{align}
  E = \sum_i P_iE_i = \sum_i \frac{1}{Z(\beta)} e^{-\beta E_i}E_i
        = - \frac{1}{Z(\beta)}\frac{\partial Z(\beta)}{\partial\beta}
        = - \frac{\partial}{\partial\beta}\log Z(\beta)
\end{align}$$


&lt;h3&gt;Entropy&lt;/h3&gt;


$$\begin{align}
S = -\sum_i P_i\log P_i
\end{align}$$

&lt;p&gt;而&lt;/p&gt;

$$\begin{align}
 P_i = \frac{1}{Z(\beta)}e^{-\beta E_i}
\end{align}$$

&lt;p&gt;so&lt;/p&gt;

$$\begin{align}
S =&amp; -\sum_i P_i\left[ -\beta E_i - \log Z \right] \\
  =&amp; \beta \sum_i P_iE_i + \sum_iP_i\log Z \\
  =&amp; \beta E(\beta) +\log Z(\beta)
\end{align}$$


&lt;h3&gt;Temperature&lt;/h3&gt;


$$\begin{align}
\mathrm{d}S = \beta \mathrm{d}E + E \mathrm{d}\beta +\frac{\partial \log Z}{\partial \beta}\mathrm{d}\beta
    = \beta \mathrm{d}E + E \mathrm{d}\beta -E \mathrm{d}\beta = \beta \mathrm{d}E
\end{align}$$

&lt;p&gt;so&lt;/p&gt;

$$\begin{align}
 T = \frac{\mathrm{d}E}{\mathrm{d}S} = \frac{1}{\beta}
\end{align}$$


&lt;h3&gt;Summary&lt;/h3&gt;


$$\begin{align}
P_i =&amp; \frac{1}{Z} e^{-\beta E_i} \\
Z =&amp; \sum_i e^{- \beta E_i} \\
E =&amp; - \frac{\partial}{\partial\beta} \log Z \\
T =&amp; \frac{1}{\beta} \\
S =&amp; \beta E + \log Z
\end{align}$$


&lt;h3&gt;Example: the Ideal Gas&lt;/h3&gt;

&lt;p&gt;在体积 $V$ 内的 $N$ 个粒子. States: collection $x_1, \cdots, x_{3N}, p_1, p_{3N}$
. $6N$ 维的相空间中的每个点对应一个 state. 每个 state 的能量为 $\sum_{n=1}^{3N}
\frac{p^2_n}{2m}$ .&lt;/p&gt;

$$\begin{align}
 Z =&amp; \frac{1}{N!} \int \mathrm{d}^{3N}x \int \mathrm{d}^{3N}p\cdot e^{- \beta\sum_{n=1}^{3N}
          \frac{p^2_n}{2m}} \\
   =&amp; \frac{V^N}{N!} \left(\frac{2\pi m}{\beta} \right)^{3N/2}
\end{align}$$

&lt;p&gt;(因子 $\frac{1}{N!}$ 是因为假设粒子不可分辨, 但对结果无影响)&lt;/p&gt;

$$\begin{align}
\log Z = - \frac{3N}{2} \log\beta + \mathrm{const.}
\end{align}$$


$$\begin{align}
E = - \frac{\partial}{\partial\beta}\log Z = \frac{3}{2}NT
\end{align}$$


&lt;h2&gt;Lecture 5: Pressure of an Ideal Gas &amp; Fluctuations&lt;/h2&gt;

&lt;h3&gt;Helmholtz free energy&lt;/h3&gt;


$$\begin{align}
S =&amp; \frac{1}{T} E + \log Z
\end{align}$$

&lt;p&gt;First define a very useful variable Helmholtz free energy&lt;/p&gt;

$$\begin{align}
  A = E - TS = -T \log Z
\end{align}$$


&lt;h3&gt;Maxwell' Relation&lt;/h3&gt;

&lt;p&gt;它是一个纯数学的关系. 假设 $E, S$ 和 $T, V$ 是两组独立的变量, 那么&lt;/p&gt;

$$\begin{align}
\label{eq:maxwell_relation}
\left.\frac{\partial E}{\partial V}\right|_S = \left.\frac{\partial E}{\partial V}\right|_T
    - \left.\frac{\partial E}{\partial S}\right|_V \left.\frac{\partial S}{\partial V}\right|_T
\end{align}$$


&lt;p&gt;如何理解, 或者说如何证明它?&lt;/p&gt;

&lt;p&gt;便于直观地看出它的意义, 我们以独立变量 $T, V$ 为坐标, 画出一条$S$ 的等高线. 也就
是说在这条线上的 $A, B$ 两点, 它的 $S$ 是相等的.
&lt;p&gt;&lt;img src='2021-03-11-physics-SusskindsStatisticalMechanics/adiabatic.png' alt='figalt' max-width:100%&gt;&lt;p&gt;
让我们从一个常规的式子出发&lt;/p&gt;

$$\begin{align}
  \Delta E  = \left.\frac{\partial E}{\partial V}\right|_T \Delta V
              +\left.\frac{\partial E}{\partial T}\right|_V \Delta T
\end{align}$$

&lt;p&gt;上式的第一项和 $(\ref{eq:maxwell_relation})$ 的第一项是相同的. 我们限定它是在 $S$
不变的这条线上走的, 看它会发生什么. 让两边除以 $\Delta V$ 那么&lt;/p&gt;


$$\begin{align}
\label{eq:dedv}
  \frac{\Delta E}{\Delta V}  = \left.\frac{\partial E}{\partial V}\right|_T
              +\left.\frac{\partial E}{\partial T}\right|_V \frac{\Delta T}{\Delta V}
\end{align}$$

&lt;p&gt;在 $S$ 不变的线上&lt;/p&gt;

$$\begin{align}
  \Delta S  = \left.\frac{\partial S}{\partial V}\right|_T \Delta V
              +\left.\frac{\partial S}{\partial T}\right|_V \Delta T = 0
\end{align}$$

&lt;p&gt;那么就可以得到这条线的斜率&lt;/p&gt;

$$\begin{align}
\frac{\Delta T}{\Delta V} = - \left.\frac{\partial S}{\partial V}\right|_{T}
                    \left/\frac{\partial S}{\partial T}\right|_{V}
\end{align}$$

&lt;p&gt;把它带到 $(\ref{eq:dedv})$ 里面就得到&lt;/p&gt;

$$\begin{align}
  \frac{\Delta E}{\Delta V}  =&amp; \left.\frac{\partial E}{\partial V}\right|_T
              -\left.\frac{\partial E}{\partial T}\right|_V \cdot
                    \left.\frac{\partial S}{\partial V}\right|_{T}
                    \left/\frac{\partial S}{\partial T}\right|_{V} \\
             =&amp; \left.\frac{\partial E}{\partial V}\right|_T
    - \left.\frac{\partial E}{\partial S}\right|_V \left.\frac{\partial S}{\partial V}\right|_T
\end{align}$$

&lt;p&gt;在 $S$ 不变的线上, $\frac{\Delta E}{\Delta V}$ 就是 $\left.\frac{\partial E}{\partial V}\right|_S$
. 所以问题得证.&lt;/p&gt;

&lt;h3&gt;Pressure &amp; Adiabatic&lt;/h3&gt;

&lt;p&gt;考虑一个系统体积可变, 如下图, 加一个活塞
&lt;p&gt;&lt;img src='2021-03-11-physics-SusskindsStatisticalMechanics/piston.png' alt='figalt' max-width:100%&gt;&lt;p&gt;
此时系统有了两个可以控制的参量, $T$ 和 $V$ . 然后考虑一个 adiabatic 的过程.
adiabatic 的意思有两个&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;slow. 比如活塞右移, 如果移动的很慢, 那么气体的压强会有对外界的做功, 但是如果突 然右移, 气体还没来得及充满整个容器, 所以就没有对外界做功. adiabatic 意味着很慢, 整个过程中, 系统都始终处于平衡态.&lt;/li&gt;
&lt;li&gt;no energy comes into the system from outside. 也就是说它是绝热的. 活塞右移的过程中, 没有能量注入, 也就是说能量的改变就是压强对外做的功&lt;/li&gt;
&lt;/ul&gt;

$$\begin{align}
  \mathrm{d}E = -P A\mathrm{d}x = - P\mathrm{d}V
\end{align}$$

&lt;p&gt;因此压强可以由上式定义出&lt;/p&gt;

$$\begin{align}
 P = - \frac{\partial E}{\partial V}
\end{align}$$

&lt;p&gt;但是, 如何体现 adiabatic 这个过程. 其实等熵的过程就是一个 adiabatic 的过程.
second law 说熵会增加或者不变. 其中不变的过程就是一个 adiabatic 的过程. 这可以从
量子力学的角度来理解. 整个系统是被限制在一个 box 中, 那么它的能级将会是分立的.
而我们绝热地右移活塞, 它们的能级会改变, 但是不会交叉, 还是各自保持独立, 如下图
file:2021-03-11-physics-SusskindsStatisticalMechanics/adiabatic_quantum.png
也就是说如果系统原来处在某个能级上, 它还是在某个能级上. 进一步说, 就是它的处在某
个能级上的概率不会改变, 它的概率分布不会改变. 而 熵就是概率分布的函数, 所以熵不
会改变.&lt;/p&gt;

&lt;p&gt;所以压强的定义就可以写为&lt;/p&gt;

$$\begin{align}
 P = - \left.\frac{\partial E}{\partial V}\right|_S
\end{align}$$

&lt;p&gt;但是控制 entropy 不是那么容易, 我们容易控制的是温度. 所以根据之前的
$(\ref{eq:maxwell_relation})$ , 它可以写为&lt;/p&gt;

$$\begin{align}
 P = - \left.\frac{\partial E}{\partial V}\right|_S
  =  - \left( \left.\frac{\partial E}{\partial V}\right|_T
    - \left.\frac{\partial E}{\partial S}\right|_V \left.\frac{\partial S}{\partial V}\right|_T\right)
\end{align}$$

&lt;p&gt;根据温度的定义, 上式中的 $\left.\frac{\partial E}{\partial S}\right|_V$ 就是温度. 之前我们定义
温度的时候, 是一个 closed system, 它的体积给定, 正好这是里的定义.&lt;/p&gt;

&lt;p&gt;因此&lt;/p&gt;

$$\begin{align}
 P  =  -  \left.\frac{\partial (E - TS)}{\partial V}\right|_T
\end{align}$$

&lt;p&gt;而 $E - TS$ 就是之前定义的 Helmholtz free energy, 这里就可以看出它是很有用的, 它
可以用来求压强.&lt;/p&gt;

$$\begin{align}
 P  =&amp;  -  \left.\frac{\partial A}{\partial V}
    \right|_T \\
   =&amp; \left. T \frac{\partial}{\partial V}\log Z\right|_T
\end{align}$$

&lt;p&gt;这个定义里的偏导数是给定温度的. 而之前的一节课的热力学量公式中的偏导数实际上就是
导数, 因为那时只有一个独立变量, 我们常取的就是 $\beta$ . 而此时的系统, 多了另外一个
独立变量, 也就是体积. 因此这里对体积求偏导时, 就要注明温度不变.&lt;/p&gt;

&lt;h3&gt;Example: Ideal Gas&lt;/h3&gt;

&lt;p&gt;现在就用它来计算一下理想气体的压强! 我们甚至都不需要完全计算出配分函数.&lt;/p&gt;

$$\begin{align}
  Z = \frac{1}{N!}\int \mathrm{d}^{3N}x \mathrm{d}^{3N}p e^{- \beta \frac{p^2}{2m}}
    = \frac{V^N}{N!} f(\beta)
\end{align}$$

&lt;p&gt;因为压强是给定 $\beta$ 后, 对 $V$ 的导数, 所以我们不关心 $f(\beta)$ 的形式, 只要知道
$Z\propto V^N$ 就足够了&lt;/p&gt;

$$\begin{align}
  P = T \left.\frac{\partial \log Z}{\partial V}\right|_T = T \frac{N}{V}
\end{align}$$

&lt;p&gt;这就是理想气体的 equation of state&lt;/p&gt;

$$\begin{align}
 PV = NT
\end{align}$$


&lt;h3&gt;Fluctuation &amp; Heat Capacity&lt;/h3&gt;

&lt;p&gt;fluctuation is defined as&lt;/p&gt;

$$\begin{align}
  \Delta x  \equiv \sqrt{\langle(x - \langle x\rangle)^2\rangle} = \sqrt{\langle x^2\rangle-\langle x\rangle^2}
\end{align}$$

&lt;p&gt;fluctuation of energy is&lt;/p&gt;

$$\begin{align}
 (\Delta E)^2 = \langle E^2\rangle - \langle E\rangle^2
\end{align}$$

&lt;p&gt;其中 $\langle E\rangle$ 就是之前的 $E$ , 可以从 partition function 得到&lt;/p&gt;

$$\begin{align}
  \langle E\rangle = - \frac{\partial \log Z}{\partial \beta}
\end{align}$$

&lt;p&gt;而 $\langle E^2\rangle$ 可以根据定义来求&lt;/p&gt;

$$\begin{align}
   \langle E^2\rangle = \sum_iP_iE_i^2 = \frac{1}{Z(\beta)}\sum_ie^{- \beta E_i} E_i^2
     = \frac{1}{Z}\frac{\partial^2 Z}{\partial\beta^2}
\end{align}$$

&lt;p&gt;so&lt;/p&gt;

$$\begin{align}
 (\Delta E)^2 = \frac{1}{Z}\frac{\partial^2 Z}{\partial\beta^2}
        - \frac{1}{Z^2}\left(\frac{\partial Z}{\partial \beta} \right)^2
        = \frac{\partial}{\partial\beta}\left( \frac{1}{Z} \frac{\partial Z}{\partial \beta} \right)
\end{align}$$

&lt;p&gt;而括号中的恰好就是 $- E$ , 那么&lt;/p&gt;

$$\begin{align}
 (\Delta E)^2 = - \frac{\partial E}{\partial\beta} = - \frac{\partial T}{\partial\beta} \frac{\partial E}{\partial T}
         = T^2 \frac{\partial E}{\partial T} = T^2C_V(T)
\end{align}$$

&lt;p&gt;where&lt;/p&gt;

$$\begin{align}
  C_V(T) \equiv \left.\frac{\partial E}{\partial T}\right|_V
\end{align}$$

&lt;p&gt;is heat capacity.&lt;/p&gt;

&lt;h2&gt;Lecture 6: Weakly interacting gases, heat, and work&lt;/h2&gt;

&lt;p&gt;考虑分子之间有两体相互作用能&lt;/p&gt;

$$\begin{align}
  E = \sum_n \frac{p_n^2}{2M} + \sum_{n&gt;m}U(|x_n - x_m|)
\end{align}$$

&lt;p&gt;先考虑两个粒子之间的相互作用能&lt;/p&gt;

$$\begin{align}
  \int \mathrm{d}^3x_1 \mathrm{d}^3x_2 \cdot U(|x_2 - x_1|)
  = \int \mathrm{d}^3x_1 \mathrm{d}^3(x_1 + x')\cdot  U(|x'|)
  = \int \mathrm{d}^3x_1 \mathrm{d}^3(x') \cdot U(|x'|)
  = V U_0
\end{align}$$

&lt;p&gt;where $\int \mathrm{d}^3x_1 = V$ , $\int\mathrm{d}^3(x')  U(|x'|) = U_0$ . 记
$\sum_{n&gt;m}U(|x_n - x_m|) \equiv U(x)$ 那么&lt;/p&gt;

$$\begin{align}
  E = \sum_n \frac{p_n^2}{2M} + \frac{N(N - 1)}{2}VU_0
\end{align}$$

&lt;p&gt;计算配分函数&lt;/p&gt;

$$\begin{align}
  Z &amp;= \frac{1}{N!} \int \mathrm{d}^{3N}x\int \mathrm{d}^{3N}p\cdot
         e^{-\beta\sum_n \frac{p_n^2}{2M}} e^{- \beta U(x)}\\
   &amp;= \left(\frac{V^N}{N!}\int \mathrm{d}^{3N}p\cdot
         e^{-\beta\sum_n \frac{p_n^2}{2M}}\right)
         \frac{1}{V^N}\int \mathrm{d}^{3N}x \cdot e^{- \beta U(x)} \\
   &amp;= Z_0(\beta) \frac{1}{V^N}\int \mathrm{d}^{3N}x \cdot e^{- \beta U(x)} \\
\end{align}$$

&lt;p&gt;其中 $Z_0$ 是 ideal gas 的配分函数. 如果相互作用很小, 那么我们可以对它展开, 只取
到一阶项&lt;/p&gt;

$$\begin{align}
  e^{- \beta U(x)} \approx 1 - \beta U(x)
\end{align}$$

&lt;p&gt;那么&lt;/p&gt;

$$\begin{align}
  \frac{1}{V^N}\int \mathrm{d}^{3N}x \cdot e^{- \beta U(x)}
  &amp;\approx \frac{1}{V^N}\int \mathrm{d}^{3N}x \cdot [1 -  \beta U(x)] \\
  &amp;= 1 - \frac{\beta}{V^N} \frac{N(N - 1)}{2} \int \mathrm{d}x_1\mathrm{d}x_2\cdot U(x_1 - x_2)
      \int \mathrm{d}^3x_{3}\cdots \mathrm{d}^{3}x_N \\
  &amp;\approx 1 - \frac{N^2}{2}\frac{\beta}{V^{N - (N - 2)}} U_0 V\\
  &amp;= 1 - \frac{\beta N^2}{2V}U_0
\end{align}$$

&lt;p&gt;配分函数的对数为&lt;/p&gt;

$$\begin{align}
  \log Z \approx \log Z_0 + \log\left[1 -\frac{\beta N^2}{2V}U_0 \right]
        \approx \log Z_0 - \frac{\beta N^2}{2V}U_0
\end{align}$$

&lt;p&gt;其中利用了 $\log(1 - x) = - x + \cdots$&lt;/p&gt;

&lt;p&gt;之后我们可以计算一些热力学量的修正. 比如能量&lt;/p&gt;

$$\begin{align}
  E = -\frac{\partial \log Z}{\partial\beta} = \frac{3}{2}NT + \frac{N^2}{2V}U_0
        = \left( \frac{3}{2}T + \frac{\rho}{2}U_0 \right)N
\end{align}$$

&lt;p&gt;压强&lt;/p&gt;

$$\begin{align}
P = - \left. \frac{\partial A}{\partial V}\right|_V = T \frac{\partial \log Z}{\partial V}
  = \rho T + \frac{1}{2}\rho^2U_0
\end{align}$$


&lt;h2&gt;Lecture 7: Harmonic Oscillators ( &amp; Entropy vs. reversibility)&lt;/h2&gt;

&lt;h3&gt;Single Classical Harmonic Oscillators&lt;/h3&gt;

&lt;p&gt;考虑如图的单个弹簧
&lt;p&gt;&lt;img src='2021-03-11-physics-SusskindsStatisticalMechanics/spring.png' alt='figalt' max-width:100%&gt;&lt;p&gt;
它的 partition function 是&lt;/p&gt;

$$\begin{align}
  Z = \int \mathrm{d}p \mathrm{d}x\cdot e^{-\beta \frac{p^2}{2m}} e^{-\beta \frac{kx^2}{2}}
    = \frac{2\pi}{\omega} \frac{1}{\beta}
\end{align}$$

&lt;p&gt;where $\frac{1}{\omega} = \sqrt{\frac{m}{k}}$ . so&lt;/p&gt;

$$\begin{align}
  \log Z = \sharp - \log \beta
\end{align}$$

&lt;p&gt;and&lt;/p&gt;

$$\begin{align}
 E = - \frac{\partial \log Z}{\partial\beta} = T
\end{align}$$


&lt;h3&gt;Single Quantum Harmonic Oscillators&lt;/h3&gt;

&lt;p&gt;量子与经典不同的地方仅在于能级是分立的(Susskind 在此没有计入零点能). So
partition functino is&lt;/p&gt;

$$\begin{align}
  Z = \sum_n e^{- \beta n\hbar\omega} = \sum_n \left(e^{-\beta\hbar\omega} \right)^n
    = \frac{1}{1 - e^{- \beta\hbar\omega}}
\end{align}$$

&lt;p&gt;so&lt;/p&gt;

$$\begin{align}
  E = - \frac{1}{Z}\frac{\partial Z}{\partial\beta} = \frac{\hbar\omega e^{- \beta\hbar\omega}}{1 - e^{- \beta\hbar\omega}}
\end{align}$$

&lt;p&gt;as $\beta \to 0$ (high temperature), the leading order of energy behaves like&lt;/p&gt;

$$\begin{align}
  E \to T
\end{align}$$

&lt;p&gt;which is the result of classical case.
as $\beta \to\infty$ (low temperature), the leading oreder of energy behaves like&lt;/p&gt;

$$\begin{align}
 E \to \hbar\omega e^{- \beta\hbar\omega}
\end{align}$$

&lt;p&gt;it exponentially goes to zero.&lt;/p&gt;

&lt;h2&gt;Lecture 8: Magnetic &amp; 1D Ising Model (Entropy, reversibility, and magnetism)&lt;/h2&gt;

&lt;p&gt;Consider 1 D spin chain, $N$ spins can be either $\sigma(i)= + 1$ or $\sigma(i) =
-1$.
&lt;p&gt;&lt;img src='2021-03-11-physics-SusskindsStatisticalMechanics/1d_ising_pic.png' alt='figalt' max-width:100%&gt;&lt;p&gt;
Suppose there is a magnetic field, the energy is&lt;/p&gt;

$$\begin{align}
  E = (n - m) \mu H
\end{align}$$

&lt;p&gt;where $n$ is the number of ups, $m$ is the number of downs, and satisfy $n + m
= N$ . So partition function&lt;/p&gt;

$$\begin{align}
  Z = \sum_{n, m}e^{-\beta \mu H(n - m)}
\end{align}$$

&lt;p&gt;where sum is meant over all configurations. For each value of $(n−m)$ , there
is going to be a certainnumber of configurations. And that number of
configurations is&lt;/p&gt;

$$\begin{align}
\frac{N!}{n! m!}
\end{align}$$

&lt;p&gt;so&lt;/p&gt;

$$\begin{align}
  Z = \sum_{n}\frac{N!}{n! (N - n)!} \left(e^{-\beta\mu H}\right)^n
            \left(e^{\beta\mu H}\right)^{N - n}
    = (e^{-\beta\mu H} + e^{\beta\mu H})^N
\end{align}$$

&lt;p&gt;(The sum in the partition functions is over microstates. If there is
 degeneracy, we need to multiply a degeneracy factor). And we rewrite the
 partition function&lt;/p&gt;

$$\begin{align}
 Z = 2^N \cosh^N (\beta \mu H)
\end{align}$$

&lt;p&gt;Define magnetization as&lt;/p&gt;

$$\begin{align}
  M = \frac{\langle n - m\rangle}{N}
\end{align}$$

&lt;p&gt;so&lt;/p&gt;

$$\begin{align}
  M = \frac{E}{\mu H N} = - \frac{1}{\mu H N} \frac{\partial \log Z}{\partial \beta} = -\tanh (\beta\mu H)
\end{align}$$

&lt;p&gt;It behaves like
&lt;p&gt;&lt;img src='2021-03-11-physics-SusskindsStatisticalMechanics/1d_ising_solution.png' alt='figalt' max-width:100%&gt;&lt;p&gt;
There is no phase transition.&lt;/p&gt;

&lt;h2&gt;Lecture 9: The Ising model &amp; Phase transition&lt;/h2&gt;

&lt;h3&gt;1D case&lt;/h3&gt;

&lt;p&gt;Let's use new notion&lt;/p&gt;

$$\begin{align}
 E = - \mu B \sigma \equiv -J \sigma
\end{align}$$

&lt;p&gt;(He changed $H$ to $B$ and changed the direction of magnetic field!)
so the solution is&lt;/p&gt;

$$\begin{align}
 \langle \sigma\rangle = \tanh (\beta J)
\end{align}$$

&lt;p&gt;现在考虑不加磁场了, 但是考虑相邻的 spin 之间有相互作用能, 也就是说能量为&lt;/p&gt;

$$\begin{align}
E = -J \sum \sigma_i \sigma_{i + 1}
\end{align}$$

&lt;p&gt;for $J &gt; 0$ , spin parallel is favored(lower energy).&lt;/p&gt;

&lt;p&gt;Now we define correlation function as&lt;/p&gt;

$$\begin{align}
\langle \sigma_i \sigma_{i + n}\rangle
\end{align}$$

&lt;p&gt;and we call $\sigma_1\sigma_2 = \mu_1 \sigma_2\sigma_3= \mu_2, \cdots$ . So&lt;/p&gt;

$$\begin{align}
E = -J \sum \mu_i
\end{align}$$

&lt;p&gt;it has the same form of 1 dimension Ising model without interaction energy in a
magnetic field. So we can right now get&lt;/p&gt;

$$\begin{align}
\langle \mu \rangle = \tanh \beta J
\end{align}$$

&lt;p&gt;We can calculate correlation function by add some pairs in it (because $\sigma_i \sigma_i
=1$ )&lt;/p&gt;

$$\begin{align}
\langle \sigma_i \sigma_{i + n}\rangle = \langle \sigma_i \sigma_{i + 1}\sigma_{i + 1} \sigma_{i + 2}\sigma_{i + 2}\cdots
         \sigma_{i + n - 1}\sigma_{i + n-1}\sigma_{i + n}\sigma_{i + n}\rangle
   = \langle\mu_1 \mu_2 \cdots \mu_n \rangle = \tanh^N\beta J
\end{align}$$

&lt;p&gt;the last equivalent is because differnt $\mu_i$ is independent.&lt;/p&gt;

&lt;p&gt;So, it is a boring system, because the correlation function decays when increase
the distance except temperature is zero which $\tanh \beta J = 1$ . It is the same
idea of the game of telephone. The signal decays.&lt;/p&gt;

&lt;p&gt;Why it is borig? because its dimension is too low. We will see in 2 dimension,
there will be something like error correction.&lt;/p&gt;

&lt;h3&gt;High Dimension Case &amp; Mean Field Approximation (Self-Consistent Field)&lt;/h3&gt;

&lt;p&gt;In $d$ dimension, there are $2d$ neighbors. Mean field means we approximate the
neighbor spin as the average spin which labeled as $\bar{\sigma}$. So the energy in
a site is&lt;/p&gt;

$$\begin{align}
E = -J \sigma \sum_{\mathrm{neighbor}} \sigma \approx -\left(2 d J \bar{\sigma}\right) \sigma
\end{align}$$

&lt;p&gt;the higher the dimension, the better the approximation is. It seems like if one
neighbor pass the information wrong, there are other neighbors may pass it
right, the more the neighbors, the larger the chance which pass the information
right.&lt;/p&gt;

&lt;p&gt;This approximation is also called self-consistent field, because we can write
the average spin as the form (just transform $J \to 2 dJ\bar{\sigma}$)&lt;/p&gt;

$$\begin{align}
 \bar{\bar{\sigma}} = \tanh(2 \beta d J \bar{\sigma})
\end{align}$$

&lt;p&gt;we can solve it consistently, so the name. We write it in another form (let
$\bar{\bar{\sigma}} = \bar{\sigma}$)&lt;/p&gt;

$$\begin{align}
T \frac{y}{2dj} = \tanh y, \quad \mathrm{where} \quad y = 2\beta d J \bar{\sigma}
\end{align}$$

&lt;p&gt;&lt;p&gt;&lt;img src='2021-03-11-physics-SusskindsStatisticalMechanics/nd_ising_solution.png' alt='figalt' max-width:100%&gt;&lt;p&gt;
直线的斜率与 $T$ 是成正比的. 可以发现, 当温度很高时, 比如图中蓝线, 它与 $\tanh
y$ 只有 $y = 0$ , 也就是 $\bar{\sigma} = 0$ 一个交点, 没有磁性, 所有的 spin 都随机排
序.&lt;/p&gt;

&lt;p&gt;当温度降低到 $T = 2d J$ , 也就是图中橙色直线时, 它与 $\tanh y$ 相切. 只要温度再
降一点, 到 $T &lt; 2d J$ 时, 就有三个交点分别在 $y &lt; 0, y &gt; 0$ 以及 $y = 0$ 处. 从能量
上看, $y &gt; 0, y &lt; 0$ 的两个解能量是相同的, 并且都要比 $y = 0$ 时的解要低. 也就是
说系统是有磁性的.&lt;/p&gt;

&lt;p&gt;The temperatureT= 2dj, where a transition appears, iscalled thecritical
temperature. It is not exact. It is a meanfield approximation.&lt;/p&gt;

&lt;h3&gt;+ External Magnetic Field $B$&lt;/h3&gt;

&lt;p&gt;如果加上外磁场, 那么 Energy is&lt;/p&gt;

$$\begin{align}
  E = -[2 d J \bar{\sigma} + B]\sigma
\end{align}$$

&lt;p&gt;and&lt;/p&gt;

$$\begin{align}
T \frac{y}{2 d J} = \tanh (y + B\beta)
\end{align}$$

&lt;p&gt;there is just a shift.
&lt;p&gt;&lt;img src='2021-03-11-physics-SusskindsStatisticalMechanics/nd_ising_shift_solution.png' alt='figalt' max-width:100%&gt;&lt;p&gt;
此时所有温度都是有确定的磁性.&lt;/p&gt;

&lt;p&gt;The tiniest little bit of stray magnetic field $h$ will tell us which way to
go. If $h is positive the magnetization will be positive. Right above the $T$
-axis it won’t be zero, and right below it won’t be zero either. Spontaneous
magnetizationhas happened.&lt;/p&gt;

&lt;h2&gt;Lecture 10: Liquid-Gas Phase Transition&lt;/h2&gt;

&lt;h3&gt;Phase Diagram of Ising Model&lt;/h3&gt;

&lt;p&gt;我们对带有外场&lt;/p&gt;

$$\begin{align}
  E = -J \sum_{\mathrm{links}}\sigma(i)\sigma(j) - \sum_{\mathrm{sites}}h \sigma(i)
\end{align}$$

&lt;p&gt;的情况做一个总结, 从能量上看, parallel, ups 的能量比较低. 用 mean field 近似的
结果是&lt;/p&gt;

$$\begin{align}
  \bar{\sigma} = \tanh \left[(2 d J \bar{\sigma} + h)\beta \right]
\end{align}$$


&lt;p&gt;&lt;p&gt;&lt;img src='2021-03-11-physics-SusskindsStatisticalMechanics/magnetic_phase.png' alt='figalt' max-width:100%&gt;&lt;p&gt;&lt;/p&gt;

&lt;p&gt;沿不同的路径来看这个相图:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;沿 $h = 0$ 来看, 在 $T &lt; T_{\mathrm{C}}$ 时, 它只有两个简并的解, 也就是说它是 有磁性的, 随着温度的升高, 磁性减小, 直到跨过 $T = T_{\mathrm{C}}$ (The phenomena happening there are all characterized bywhat is calledcritical exponents), 磁性消失.&lt;/li&gt;
&lt;li&gt;在 $T=0$ 的轴上, 当 $h &lt; 0$ 时, $\sigma = -1$ . 当 $h&gt;0$ 时, $\sigma = +1$ . That comes from the fact thatat zero temperature the spins all choose the lowest energy,and there is no fluctuation.&lt;/li&gt;
&lt;li&gt;沿 $T &lt; T_{\mathrm{C}}$ 的某个温度, 逐渐增大磁场, 也就是图中的虚直线. 在 $h &lt; 0$ 时, 它有一个 shift, 有 $\sigma &lt; 0$ 的解. 随着 $h\to 0$ , 磁性减小, 但是没有减小 到 $0$ , 然后一个突然的转变, 变到 $\sigma &gt; 0$ . $h &gt; 0$ 并逐渐增大时, 磁性以开始 增强.&lt;/li&gt;
&lt;li&gt;如果我们沿图中半圆虚线, 它绕过了 $T_{\mathrm{C}}$ , 此时 $\sigma$ 连续地由负变到零, 再变到正.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;When we talk strictly about real magnets,Tcis also calledthe Curie
temperature.&lt;/p&gt;


&lt;h3&gt;Liquid-Gas Phase Transition&lt;/h3&gt;

&lt;p&gt;可以用 Ising model 做为一个简单的数学模型, 来 show liquid-gas phase diagram.&lt;/p&gt;

&lt;p&gt;liquid gas transition 的发生需要三个条件:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;有一个可变的 chemical potential (Note that $\mu$ is called the chemical potential because in gen-eral it is different for different kinds of molecules.)&lt;/li&gt;
&lt;li&gt;有一个 hard core potential&lt;/li&gt;
&lt;li&gt;有一个 short range attraction potential&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;如果我们把 Ising model 中 up 看成是存在一个粒子, down 看成是没有粒子. 两个邻近的
spin parallel 是一个 unbroken bound. 那么有外加磁场的 Ising model 恰好就满足这三
个条件. 下面考虑二维 $d=2$ 的情况.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;chemical potential 对应外加磁场再加一个 shift. chemical potential 就是增加一个 粒子的 energy cost. 我们从真空, 也就是 all down 状态增加一个粒子, 也就是 flip a down to up, 它会打开四个 bound, 同时加上外磁场的能量 , energy cost 就是 $8 J + 2h$ . 故 chemical potential $\mu = 8J + 2h$&lt;/li&gt;
&lt;li&gt;$\sigma$ 只能是 $\pm 1$ , 不能是其它数值, 也就是说一个 site 是能是没有粒子, 或者有 一子的状态. 而不能有多个粒子, 也就是对应一个 hard core potential&lt;/li&gt;
&lt;li&gt;两个相距比较远的粒子, 它们的总能量是 $2(8J + 2h)$ . 而它们互相接近, 直到邻时, 它们会形成一个 bound , 也就是对应它们是 parall 的, 能量会减少 $4J$ . 这就对应 一个 short range attraction potential.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;在此对应下, 我们可以用 Ising model 的相图来理解 liquid-gas phase transition. 这
个 transition 对应 $\sigma$ 的突变, 也就是 density 的突变. The difference between
liquid andvapour is some discontinuity in the density, liquid beingdenser than
vapor.
&lt;p&gt;&lt;img src='2021-03-11-physics-SusskindsStatisticalMechanics/liquid-gas.png' alt='figalt' max-width:100%&gt;&lt;p&gt;&lt;/p&gt;

&lt;p&gt;We want to keep the molecular properties fixed, thereforewe are not going to
play with $J$. All we can vary is the chemical potential. And that is the same
thing in our model as varying $h$ .&lt;/p&gt;


&lt;h2&gt;Interlude&lt;/h2&gt;

&lt;h3&gt;Stirling's Approximation&lt;/h3&gt;


$$\begin{align}
N! \approx N^N e^{-N} ,\quad \mathrm{as}\quad N\to\infty
\end{align}$$

&lt;p&gt;Proof: as $N \to \infty$&lt;/p&gt;

$$\begin{align}
\log (N!) = \sum_{x = 1}^N \log x \approx \int_1^N \mathrm{d}x\cdot\log x \approx N \log N - N
\end{align}$$

&lt;p&gt;Q.E.D.&lt;/p&gt;

&lt;h3&gt;Lagrange Multiplier&lt;/h3&gt;

&lt;p&gt;另一种不同的理解方式, 不是找 constrain 的切线, 而是 shift了 $F$ 使得 $F(G)$ 在零
处有极值.&lt;/p&gt;

&lt;p&gt;具体来讲, function $F(x_i)$ , constrain $G(x_i) = 0$ , 那么在 $x_i$ (如 $x_1 = x,
x_2 = y$ 时只有两个变量)平面内, $F(x_i)$ 是一圈一圈的等高线, $G(x_i)$ 也有一系列等
高线. 极值点处两条等高线相切, 在它们的垂线上 $F$ 可以做为 $G$ 的函数, 但此函数在
$G=0$ 处不一定是极值点. 但我们可以变换一下令 $F' = F +\lambda G$ 使得 $G = 0$ 处为
$F'$ 极值点, 得出 $x_i$ 后再 令 $G(x_i) = 0$ 解出 $\lambda$ .&lt;/p&gt;

&lt;p&gt;Exp.&lt;/p&gt;

$$\begin{align}
  F(x, y) =&amp; \frac{x^2 + y^2}{2}\\
  G(x, y) =&amp; x + y - 1 = 0 \\
\end{align}$$


&lt;h2&gt;...about&lt;/h2&gt;

&lt;p&gt;我之前一直很模糊, 不清晰的概念, 都跟 Susskind 搞明白了. 比如什么是 adiabatic, 为
什么压强要在等熵下定义.&lt;/p&gt;

&lt;p&gt;Susskind, U GREAT!&lt;/p&gt;

&lt;h2&gt;Reference&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href='https://en.wikipedia.org/wiki/Phase_diagram'&gt;Phase Diagram&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href='https://en.wikipedia.org/wiki/Stirling%27s_approximation'&gt;Stirling's Approximation&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</content><category term="专业笔记"/><category term="physics"/><category term="Statistical Mechanics"/><category term="Susskind"/><category term="Entropy"/><category term="Ising Model"/><category term="Magnetic"/><category term="Liquid-Gas Transition"/><category term="Spontaneous Symmetry"/></entry><entry><title>Susskind's Classical Field Theory Note</title><link href="https://zqw.ink/2021-03-04-physics-susskindsclassicalfieldtheory.html" rel="alternate"/><published>2021-03-04T00:00:00+08:00</published><updated>2021-03-04T00:00:00+08:00</updated><author><name>ZQW</name></author><id>tag:zqw.ink,2021-03-04:/2021-03-04-physics-susskindsclassicalfieldtheory.html</id><summary type="html">
&lt;h2&gt;Information&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;视频列表地址: https://www.youtube.com/playlist?list=PL4D780620B14F1568 ( 每一 集的标题都是 Special Relativity, 感觉不态恰当, 主要内容还是 Classical Field Theory)&lt;/li&gt;
&lt;li&gt;Book: Leonard Susskind Art Friedman, Special Relativity and Classical Field Theory …&lt;/li&gt;&lt;/ul&gt;</summary><content type="html">
&lt;h2&gt;Information&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;视频列表地址: https://www.youtube.com/playlist?list=PL4D780620B14F1568 ( 每一 集的标题都是 Special Relativity, 感觉不态恰当, 主要内容还是 Classical Field Theory)&lt;/li&gt;
&lt;li&gt;Book: Leonard Susskind Art Friedman, Special Relativity and Classical Field Theory&lt;/li&gt;
&lt;li&gt;把主要内容整理一下.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Lecture 1: Special Relativity&lt;/h2&gt;

&lt;h3&gt;Galileo Trans&lt;/h3&gt;

&lt;p&gt;考虑一维的运动, 选取坐标系 $xOt$ . 另一坐标系 $x'O't'$ 相对 $xOt$ 以 $v$ 向右运
动. 如图
&lt;p&gt;&lt;img src='2021-03-04-physics-SusskindsClassicalFieldTheory/space_time.png' alt='figalt' max-width:100%&gt;&lt;p&gt;
在红点处发生某个事件, 在 $xOt$ 坐标系中的坐标是 $x, t$ . 在蓝色线的所有的点的坐
标在两个坐标系中分别为 $x = vt$ , $x'=0$ .&lt;/p&gt;

&lt;p&gt;所以在 Galileo 变换下, 它的时间是一样的, 所以红点在 $x'O't'$ 系中的坐标是 $x' =
x - vt, t' = t$ .&lt;/p&gt;

&lt;h3&gt;Lorentz Trans&lt;/h3&gt;

&lt;p&gt;但是 Maxwell 方程给出光束 $c$ 在不同的惯性系中应该是相同的. 那假设在所有惯性系中
都取 $c = 1$ . 描述光的运动的方程为, $x = t$ 或者 $x = -t$ 两种可能, 也就是说,
$x^2 = t^2$ . 在 $x'O't'$ 系中为 $x' = t'$ 或者 $x' = - t'$ , 也就是 $x^2 = t^2$
. 也就是说&lt;/p&gt;

$$\begin{align}
  x^2 - t^2 = x'^2 - t'^2
\end{align}$$


&lt;h3&gt;Hyperbolic&lt;/h3&gt;

&lt;p&gt;对于普通的二维的旋转, 坐标的变换为&lt;/p&gt;

$$\begin{align}
  x' =&amp; x \cos\theta + y\sin\theta \\
  y' =&amp;-x \sin\theta + y\cos\theta
\end{align}$$

&lt;p&gt;在这种变换下长度 $s^2= x^2 + y^2$ 是不变的.&lt;/p&gt;

&lt;p&gt;受此启发, 希望找一个变换使得 $x^2 - t^2$ 是不变量, 并且在低速下回到 Galileo 变换的
形式. 它就是 hyperbolic&lt;/p&gt;

$$\begin{align}
x' =&amp;  x \cosh \omega - t \sinh \omega \\
t' =&amp; -x \sinh \omega + t \cosh \omega
\end{align}$$

&lt;p&gt;可以验证 $x^2 - t^2 = x'^2 - t'^2$&lt;/p&gt;

&lt;p&gt;这就是 Lorentz 变换. Susskind 还解释了为什么叫 Hyperbolic functions. 因为 $\sin
^2\theta + \cos^2\theta = 1$ , 以 $\sin \theta, \cos \theta$ 为坐标, 那画出来就是个圆. 而 $\cosh
^2\omega - \sinh^2\omega = 1$ , 相应的画出来就是双曲线.&lt;/p&gt;

&lt;h3&gt;Represent by Velocity&lt;/h3&gt;

&lt;p&gt;上述的变换是用 $\omega$ 表示的. 那它与速度 $v$ 的关系呢?&lt;/p&gt;

&lt;p&gt;还是回到本节最开始那张图. 由定义知道蓝线上的坐标为 $x = vt, x' = 0$ (定义, 两个
坐标系以速度 $v$ 相对运动). 而 $x' =  x \cosh \omega - t \sinh \omega$ 所以 $v =
\frac{\sinh \omega}{\cosh \omega}$ 那么&lt;/p&gt;

$$\begin{align}
  v^2 = \frac{\sinh^2\omega}{\cosh^2\omega} =&amp; \frac{\cosh^2\omega - 1}{\cosh^2\omega}
               = 1 - \frac{1}{\cosh^2\omega}\\
           \Downarrow&amp;\\
\cosh\omega =&amp; \frac{1}{\sqrt{1 - v^2}} \\
           \Downarrow&amp;\\
\sinh\omega =&amp; v\cosh \omega = \frac{v}{\sqrt{1 - v^2}}
\end{align}$$

&lt;p&gt;光速 $c$ 可以通过量纲分析找回, 就得到了最熟悉的形式.&lt;/p&gt;

&lt;h3&gt;Proper Time&lt;/h3&gt;

&lt;p&gt;对于 $xOt$ 坐标系中任意一条曲线, 定义的 proper time&lt;/p&gt;

$$\begin{align}
  \mathrm{d}\tau = \sqrt{\mathrm{d}t^2 - \mathrm{d}x^2}
\end{align}$$

&lt;p&gt;它在不同坐标系中是相同的.&lt;/p&gt;

&lt;h2&gt;Lecture 2: From Particles to Field: a String&lt;/h2&gt;

&lt;h3&gt;Euler-Lagrange Equation&lt;/h3&gt;

&lt;p&gt;回顾经典力学中的 Euler-Lagrange Equation.&lt;/p&gt;

&lt;p&gt;比如许一维多粒子在势 $U(q)$ 中运动, 那么 Lagrangian 为&lt;/p&gt;

$$\begin{align}
  L = T - U = \sum_i \frac{1}{2}m_i\dot{q}_i^2 - U(q)
\end{align}$$

&lt;p&gt;index $i$ 表示第 $i$ 个粒子. 它们的运动满足 Euler-Lagrange Equation&lt;/p&gt;

$$\begin{align}
  \frac{\mathrm{d}}{\mathrm{d}t} \frac{\partial L}{\partial \dot{q}_i} - \frac{\partial L}{\partial q_i} = 0
\end{align}$$


&lt;h3&gt;A String&lt;/h3&gt;

&lt;p&gt;考虑由弹簧连接的许多质点. 它们只能垂直于 $x$ 运动. 记它们离 $x$ 轴的距离为 $\phi_i$
.
&lt;p&gt;&lt;img src='2021-03-04-physics-SusskindsClassicalFieldTheory/string.png' alt='figalt' max-width:100%&gt;&lt;p&gt;
相邻的点间隔 $\epsilon$ . $\epsilon$ 是与每个点的质量成正比的, 因为总质量一定的前提下, 分得
越细, 每个点的质量就越小. 因此动能为如下形式&lt;/p&gt;

$$\begin{align}
  T = \sum_i \frac{1}{2}\epsilon \dot{\phi}_i^2
\end{align}$$

&lt;p&gt;弹簧越短的话, 就越硬, 也就是劲度系数与 $\epsilon$ 成反比. 再加上一个系数 $c^2$ , 它的势
能为如下形式&lt;/p&gt;

$$\begin{align}
  U = \frac{c^2}{2\epsilon} \sum_i \left(\phi_{i + 1} - \phi_i \right)^2
\end{align}$$

&lt;p&gt;所以 Lagrangian 为&lt;/p&gt;

$$\begin{align}
  L = \frac{\epsilon}{2}\sum_i \dot{\phi}_i^2 - \frac{c^2}{2\epsilon} \sum_i \left(\phi_{i + 1} - \phi_i \right)^2
\end{align}$$

&lt;p&gt;取无穷多分的话, 做连续近似 $\epsilon\to \mathrm{d}x, \sum_i \to \int$ 就变成了&lt;/p&gt;

$$\begin{align}
  L\left[\phi, \frac{\partial\phi(x, t)}{\partial t}, \frac{\partial \phi(x, t)}{\partial x}\right]
     = \frac{1}{2}\int \left[\left(\frac{\partial\phi}{\partial t} \right)^2  - c^2 \left(\frac{\partial\phi}{\partial x} \right)^2
      \right] \mathrm{d}x
\end{align}$$

&lt;p&gt;此时的 $\phi$ 就是场( $\phi$ 是 f, 代表 field). action 就是再对时间积分(给定边界)&lt;/p&gt;

$$\begin{align}
  A = \frac{1}{2}\int \left[\left(\frac{\partial\phi}{\partial t} \right)^2  - c^2 \left(\frac{\partial\phi}{\partial x} \right)^2
      \right] \mathrm{d}x \mathrm{d}t
\end{align}$$

&lt;p&gt;第一项是 field 在 field space 中的动能. 通过 least action 得到它的
Euler-Lagrange Equation 为&lt;/p&gt;

$$\begin{align}
  \frac{\partial L}{\partial\phi} - \frac{\partial}{\partial x} \frac{\partial L}{\partial\frac{\partial\phi}{\partial x}}
      - \frac{\partial}{\partial t} \frac{\partial L}{\partial\frac{\partial\phi}{\partial t}} =0
\end{align}$$

&lt;p&gt;将 Lagrangian 代入可得运动方程&lt;/p&gt;

$$\begin{align}
  \frac{\partial^2\phi}{\partial t^2} - c^2 \frac{\partial^2\phi}{\partial x^2} = 0
\end{align}$$

&lt;p&gt;这就是一个波传播的方程.&lt;/p&gt;

&lt;h2&gt;Lecture 3: Four vector &amp; Lorentz invariant&lt;/h2&gt;

&lt;p&gt;之后不做说明, 一般统一将光束取为 $1$&lt;/p&gt;

&lt;p&gt;将时间与空间写在一起, 定义成 four vector, 比如&lt;/p&gt;

$$\begin{align}
  \mathrm{d}x^{\mu} \equiv (\mathrm{d}t, \mathrm{d}x, \mathrm{d}y, \mathrm{d}z)
  \quad \mu = 0, 1, 2, 3
\end{align}$$

&lt;p&gt;four vector 最关键的是它按照 Lorentz 变换进行变换. 如果换成下标, 那就把第 0 个分
量加一个负号( 下标是协变, co is low).  如&lt;/p&gt;

$$\begin{align}
  \mathrm{d}x_{\mu} \equiv (-\mathrm{d}t, \mathrm{d}x, \mathrm{d}y, \mathrm{d}z)
\end{align}$$

&lt;p&gt;用这种记号, 并采取求和约定, 那么 Lorentz 变换下的不变量就可以写成&lt;/p&gt;

$$\begin{align}
  \mathrm{d}x^{\mu}\mathrm{d}x_{\mu}
    = - \mathrm{d}t^{2} + \mathrm{d}x^2 + \mathrm{d}y^2 + \mathrm{d}z^2
\end{align}$$

&lt;p&gt;内积 $A_\mu B^{\mu}$ 和 $A^{\mu} B_{\mu}$ 是一样的. 就像在三维旋转下, 任意两个矢量的
内积(因内积是一个标量)是不变的一样, four vector 的 inner product 是一个 scaler,
它在 Lorentz 变换下是不变的.&lt;/p&gt;

&lt;p&gt;因此就有了一种判断 four vertor 的方法&lt;/p&gt;
&lt;blockquote&gt;已知 $A^{\mu}$ 是 four vector, 不知道 $B_{\mu}$ 是不是 four vector. 那么计算
$A^{\mu}B_{\mu}$ 在不同坐标系下是否都一样即可.&lt;/blockquote&gt;
&lt;p&gt;再做一符号约定&lt;/p&gt;

$$\begin{align}
  \frac{\partial \phi}{\partial x^{\mu}}
  = ( \frac{\partial\phi}{\partial t}, \frac{\partial\phi}{\partial x}, \frac{\partial\phi}{\partial y}, \frac{\partial\phi}{\partial z})
   \equiv \partial_{\mu}\phi \equiv \phi_{\mu}\\
\quad , \mathrm{where} \quad
   \mu = 0, 1, 2, 3 \quad \mathrm{or} \quad t, x, y, z
\end{align}$$

&lt;p&gt;至于为什么是 $\phi_{\mu}$ 而不是 $\phi^{\mu}$ . 是因为&lt;/p&gt;

$$\begin{align}
  \frac{\partial \phi}{\partial x^{\mu}} \mathrm{d}x^{\mu} = \Delta \phi
\end{align}$$

&lt;p&gt;$\phi$ 是一个 scaler, 而 scaler 的差 $\Delta\phi$ 一定还是一个 scaler. 所以
$\frac{\partial \phi}{\partial x^{\mu}}$ 一定是 covariant 的.&lt;/p&gt;

&lt;p&gt;Lecture 2 中得到的 string 的 action&lt;/p&gt;

$$\begin{align}
  A = \frac{1}{2}\int \left[\left(\frac{\partial\phi}{\partial t} \right)^2  - c^2 \left(\frac{\partial\phi}{\partial x} \right)^2
      \right] \mathrm{d}x \mathrm{d}t
\end{align}$$

&lt;p&gt;如果 $c=1$ 那么, 它可以写为&lt;/p&gt;

$$\begin{align}
  A = -\frac{1}{2}\int \mathrm{d}x^4 \cdot \partial_{\mu}\phi \partial^{\mu}\phi
\end{align}$$

&lt;p&gt;它是一个 scaler, 也就是说它是 Lorentz invariant 的.&lt;/p&gt;

&lt;h2&gt;Lecture 4: Symmetry and Conservation Laws&lt;/h2&gt;

&lt;h3&gt;Proof of Euler-Lagrange Equation&lt;/h3&gt;

&lt;p&gt;从 least action 出发证明 Euler-Lagrange Equation.&lt;/p&gt;

$$\begin{align}
 A = \int L(x, \dot{x}) \mathrm{d}t
\end{align}$$

&lt;p&gt;least action 意味着给 $x(t)$ 一个微小的扰动 $x(t) \to x(t) + \delta x(t) = x(t) +
\epsilon f(t)$ , $\dot{x}(t) \to \dot{x}(t) + \epsilon \dot{f}(t)$ 有&lt;/p&gt;

$$\begin{align}
   0 = \epsilon \int \left[ \frac{\partial L}{\partial x}f(t)
           + \frac{\partial L}{\partial \dot{x}} \dot{f}(t)\right] \mathrm{d}t
\end{align}$$

&lt;p&gt;integration by parts 得(因为积分是固定边界的, 所以
$f(t)$ 在边界上的结果为 $0$, 所以 no contribution from boundary)&lt;/p&gt;

$$\begin{align}
   0 = \epsilon \int \left[ \frac{\partial L}{\partial x}
           - \frac{\mathrm{d}}{\mathrm{d}t}\frac{\partial L}{\partial \dot{x}} \right]f(t)
          \mathrm{d}t
\end{align}$$

&lt;p&gt;因为上式 for every possible $f(t)$ 都成立, 所以有&lt;/p&gt;

$$\begin{align}
   \frac{\mathrm{d}}{\mathrm{d}t}\frac{\partial L}{\partial \dot{x}}
      - \frac{\partial L}{\partial x} = 0
\end{align}$$


&lt;h3&gt;Generalize Euler-Lagrange Equation to Field Theory&lt;/h3&gt;


$$\begin{align}
  L = \int\mathrm{d}x \mathcal{L}\left[\phi(x), \partial_t\phi, \phi_x, \phi_y, \phi_z\right]
\end{align}$$

&lt;p&gt;$\mathcal{L}$ is Lagrangian density, 也通常直接叫做 Lagrangian.&lt;/p&gt;

$$\begin{align}
  \frac{\partial L}{\partial\phi} - \frac{\partial}{\partial x} \frac{\partial L}{\partial\frac{\partial\phi}{\partial x}}
      - \frac{\partial}{\partial t} \frac{\partial L}{\partial\frac{\partial\phi}{\partial t}} =0
\end{align}$$


&lt;h3&gt;Noether's Theorem&lt;/h3&gt;
&lt;p&gt;在 ordinary mechanics 中, canonical momentum 的定义为&lt;/p&gt;

$$\begin{align}
  p_i = \frac{\partial L}{\partial \dot{q}_i}
\end{align}$$

&lt;p&gt;如果 $L$ 在 $q_i \to q_i + \epsilon f_i(q)$ 下是 invariant 的. 注意 $f_i(q)$ has no
dependence on time, $\dot{q}_i$ and depends on all $q_i$, 也就是说给了坐标一个不随
时间变化的, 与速度无关的位移. , 那么就对应一个 convervation law&lt;/p&gt;

$$\begin{align}
  0 =\delta L = \sum_i \frac{\partial L}{\partial q_i} f_i(q)\epsilon
  = \epsilon\sum_if_i(q) \frac{\mathrm{d}}{\mathrm{d}t} p_i
\end{align}$$

&lt;p&gt;第二个等号利用了 Euler-Lagrange Equation 以及 $p_i$ 的定义. 由上式可知&lt;/p&gt;

$$\begin{align}
   \frac{\mathrm{d}}{\mathrm{d}t} \left[\sum_{i}f_i(q) p_i\right] = 0
\end{align}$$

&lt;p&gt;所以有守恒量&lt;/p&gt;

$$\begin{align}
 \sum_{i}f_i(q) p_i = \mathrm{const.}
\end{align}$$


&lt;h2&gt;Lecture 5: Conservation Laws &amp; Complex Fields&lt;/h2&gt;

&lt;h3&gt;Three Kinds of Momentum&lt;/h3&gt;

&lt;h4&gt;Mechanical Momentum&lt;/h4&gt;


$$\begin{align}
  \vec{p} = m \vec{v}
\end{align}$$


&lt;h4&gt;Canonical Momentum&lt;/h4&gt;


$$\begin{align}
 p_i = \frac{\partial L}{\partial q_i}
\end{align}$$


&lt;h4&gt;Noether Momentum&lt;/h4&gt;

&lt;p&gt;Noether momentum is related to symmetries.&lt;/p&gt;

$$\begin{align}
Q = \sum_i p_i f_i(q)
\end{align}$$

&lt;p&gt;if $f$ is trivially just $1$ . 那么&lt;/p&gt;

$$\begin{align}
Q = \sum_i p_i
\end{align}$$


&lt;h3&gt;Field Momentum&lt;/h3&gt;

&lt;p&gt;field momentum&lt;/p&gt;

$$\begin{align}
\Pi = \frac{\partial \mathcal{L}}{\partial \dot{\phi}}
\end{align}$$

&lt;p&gt;is not a vector, is a scaler.&lt;/p&gt;

&lt;p&gt;if $q_i \to q_i + \epsilon f_i(q), \quad \delta L =0$ 那么&lt;/p&gt;

$$\begin{align}
\sum_{i} p_i f_i(q)
\end{align}$$

&lt;p&gt;is conserved charge. 取连续极限到场( $f = 1$ )&lt;/p&gt;

$$\begin{align}
 \int \mathrm{d}x\cdot\Pi(x) = \mathrm{conserved}
\end{align}$$


&lt;h3&gt;Complex Fields &amp; Charged particles&lt;/h3&gt;


$$\begin{align}
\phi = \phi_1 + \mathrm{i}\phi_2
\end{align}$$

&lt;p&gt;Lagrangian&lt;/p&gt;

$$\begin{align}
  L =&amp; \int\mathrm{d}x^3 \cdot \left[
             \frac{\dot{\phi}_1^2}{2} - \frac{(\partial_x\phi_1)^2}{2} - \frac{\mu}{2}\phi_1^2 \right.\\
             &amp; + \left.\frac{\dot{\phi}_2^2}{2} - \frac{(\partial_x\phi_2)^2}{2} - \frac{\mu}{2}\phi_2^2\right] \\
    =&amp; \int \mathrm{d}x^3\cdot \left[ \frac{\dot{\phi}^{*} \dot{\phi}}{2} - \frac{\partial_x\phi^{ *} \partial_x\phi}{2}
             - \frac{\mu}{2}  \phi^{* } \phi\right]
\end{align}$$

&lt;p&gt;has a new symmetry, $\phi \to \phi e^{\mathrm{i}\epsilon}$ . When $\epsilon$ is small, we have
$\delta\phi = \mathrm{i}\epsilon\phi, \delta\phi^{* } = -i\epsilon\phi^{*}$ . So conserved charge is&lt;/p&gt;

$$\begin{align}
&amp;\int \left[ \Pi_{\phi}f_{\phi} + \Pi_{\phi*} f_{\phi*} \right] \mathrm{d}x \\
=&amp;\mathrm{i}\int \left[ \frac{\dot{\phi}^{* }}{2}\phi - \frac{\dot{\phi}}{2}\phi^{* } \right] \mathrm{d}x
\end{align}$$

&lt;p&gt;and charge density (also angular momentum) is&lt;/p&gt;

$$\begin{align}
        \rho = \frac{\dot{\phi}^{* }}{2}\phi - \frac{\dot{\phi}}{2}\phi^{* }
\end{align}$$

&lt;p&gt;Charged particles are always described by complex fields.&lt;/p&gt;

&lt;h2&gt;Lecture 6: Conservation of Charge, Relativity Relation Between $E$ and $\vec{p}$&lt;/h2&gt;

&lt;h3&gt;Continuity Equation&lt;/h3&gt;

&lt;p&gt;从物理图像上得到 continuity equation&lt;/p&gt;

$$\begin{align}
  \dot{\rho} + \nabla\cdot \vec{j} = 0
\end{align}$$

&lt;p&gt;也可以写为 (define $\rho\equiv j^0$)&lt;/p&gt;

$$\begin{align}
  \partial_{\mu} j^{\mu} = 0
\end{align}$$


&lt;h3&gt;Ordinary Relativity Theory of Moumentum and Particles&lt;/h3&gt;

&lt;p&gt;proper time&lt;/p&gt;

$$\begin{align}
  \mathrm{d}\tau = \sqrt{\mathrm{d}t^2 - \mathrm{d}x^2}
      = \mathrm{d}t\sqrt{1 - v^2}
\end{align}$$

&lt;p&gt;so&lt;/p&gt;

$$\begin{align}
  \frac{\mathrm{d}t}{\mathrm{d}\tau} = \frac{1}{\sqrt{1 - v^2}}
\end{align}$$

&lt;p&gt;we get&lt;/p&gt;

$$\begin{align}
  m\frac{\mathrm{d}x^{\mu}}{d\tau} = (\frac{m}{\sqrt{1 - v^2}}
             , \frac{m\vec{v}}{\sqrt{1 - v^2}})
\end{align}$$

&lt;p&gt;so&lt;/p&gt;

$$\begin{align}
 E \equiv p^0 = \frac{m}{\sqrt{1 - v^2}},
      \quad \vec{p} = \frac{m\vec{v}}{\sqrt{1 - v^2}}
\end{align}$$

&lt;p&gt;we get&lt;/p&gt;

$$\begin{align}
  E^2 - p^2 = m^{2}
\end{align}$$

&lt;p&gt;we can also expand energy $E$ in the low velocity limit( put speed of light $c$
by dimension analysis)&lt;/p&gt;

$$\begin{align}
  E = \left(1 - \frac{v^2}{c^2}\right)mc^2 = mc^2 + \frac{mv^2}{2} + \cdots
\end{align}$$

&lt;p&gt;It's a familiar result.&lt;/p&gt;

&lt;h2&gt;Lecture 7: $\star$ Gauge Theory $\star$&lt;/h2&gt;

&lt;p&gt;Gauge transformation is position dependent phase rotations, i.e.&lt;/p&gt;

$$\begin{align}
  \phi\to &amp;\phi' = e^{\mathrm{i}\theta(x)}\phi \\
  \phi^{* } \to&amp; \phi'^{* }= e^{-\mathrm{i}\theta(x)}\phi^{* }
\end{align}$$

&lt;p&gt;Let's see how&lt;/p&gt;

$$\begin{align}
  L = \int\left[ \partial_{\mu}\phi^{* } \partial^{\mu}\phi - m^2\phi^{* } \phi \right] \mathrm{d}^4x
\end{align}$$

&lt;p&gt;Obviously, term $m^2\phi^{* } \phi$ is invariant under gauge transformation.&lt;/p&gt;

$$\begin{align}
  \frac{\partial\phi'}{\partial x^{\mu}} &amp;= \frac{\partial\phi}{\partial x^{\mu}}e^{\mathrm{i}\theta(x)}
                 + \mathrm{i}\frac{\partial\theta}{\partial x^{\mu}}e^{\mathrm{i}\theta(x)}\phi\\
  \frac{\partial\phi'^{* }}{\partial x^{\mu}} &amp;= \frac{\partial\phi^{* }}{\partial x^{\mu}}e^{-\mathrm{i}\theta(x)}
                 - \mathrm{i}\frac{\partial\theta}{\partial x^{\mu}}e^{-\mathrm{i}\theta(x)}\phi^{* }
\end{align}$$

&lt;p&gt;We get&lt;/p&gt;

$$\begin{align}
   \partial_{\mu}\phi'^{* } \partial^{\mu}\phi' = \partial_{\mu}\phi^{* } \partial^{\mu}\phi -\mathrm{i}\frac{\partial\theta}{\partial x^{\mu}}
     \left[ \phi\partial_{\mu}\phi^{* } - \phi^{* }\partial_{\mu}\phi \right]
             + \partial_{\mu}\theta\partial^{\mu}\theta \phi^{* }\phi
\end{align}$$

&lt;p&gt;So, the Lagrangian is not invariant under such a transformation. Let's see if we
can force it to be invariant. But to do so we have to add some other collection
of fields into the brew. We invent some new fields(electromagnetic) $A_{\mu}$ ,
create a new Lagrangian&lt;/p&gt;

$$\begin{align}
  L =&amp; \int\left[ \left(\partial_{\mu}\phi + \mathrm{i}e A_{\mu}\phi\right)^{* }
             \left(\partial^{\mu}\phi + \mathrm{i}e A^{\mu}\phi\right)
                         - m^2\phi^{* } \phi \right] \mathrm{d}^4x \\
  =&amp; \int\left[ \partial_{\mu}\phi^{* } \partial^{\mu}\phi -\mathrm{i}eA^{\mu}
     \left[ \phi\partial_{\mu}\phi^{* } - \phi^{* }\partial_{\mu}\phi \right]
             + e^2A_{\mu} A^{\mu}  \phi^{* }\phi
           - m^2\phi^{* } \phi \right] \mathrm{d}^4x
\end{align}$$

&lt;p&gt;the second equal uses $A_{\mu} \partial^{\mu}\phi = A^{\mu}\partial_{\mu}\phi$ .under transformation&lt;/p&gt;

$$\begin{align}
 L \to \int \left[\left(\partial_{\mu}\phi^{* } - \mathrm{i}\partial_{\mu}\theta\phi^{* } - \mathrm{i}e A'_{\mu}\phi^{* }\right)
          \left(\partial_{\mu}\phi + \mathrm{i}\partial_{\mu}\theta\phi + \mathrm{i}e A'_{\mu}\phi  \right)
          - m^2\phi^{* }\phi  \right]\mathrm{d}^4x
\end{align}$$

&lt;p&gt;If we let $\frac{1}{e}\partial_{\mu}\theta + A'_{\mu} \equiv A$ , i.e. $A_{\mu}$ transform like&lt;/p&gt;

$$\begin{align}
 A_{\mu} \to A'_{\mu} = A_{\mu} - \frac{1}{e}\partial_{\mu}\theta(x)
\end{align}$$

&lt;p&gt;then Lagrangian is invariant.&lt;/p&gt;

&lt;p&gt;The only real symmetries of nature are gauge symmetries. All others are not
really symmetries of nature.&lt;/p&gt;

&lt;p&gt;Let's forget charges( $\phi$ ). There are electromagnetic waves through empty
space. So, there must be some dynamics to the electromagnetic fields even in the
absence of charges. Lagrangian's most important thing is the dependence of
velocity(the derivative of $A_{\mu}$ ). And we want it gauge invariance.&lt;/p&gt;

&lt;p&gt;There are 16 difference of derivatives $\partial_{\nu} A_{\mu}$ . Under gauge transformation&lt;/p&gt;

$$\begin{align}
  \partial_{\nu}A_{\mu} \to \partial_{\nu}A_{\mu} - \frac{1}{e} \partial_{\nu}\partial\mu\theta(x)
\end{align}$$

&lt;p&gt;the extra term $\frac{1}{e} \partial_{\nu}\partial\mu\theta(x)$ is invariant when we exchange $\nu$
and $\mu$ . So&lt;/p&gt;

$$\begin{align}
  \partial_{\nu}A_{\mu} - \partial_{\mu} A_{\nu}
\end{align}$$

&lt;p&gt;is invariant under gauge transformation.&lt;/p&gt;

&lt;p&gt;Define&lt;/p&gt;

$$\begin{align}
  F_{\mu\nu} = \partial_{\mu}A_{\nu} - \partial_{\nu}A_{\mu}
\end{align}$$

&lt;p&gt;and it is an anti-symmetric tnesor. So there are 6 independent components. 3
electric electric fields, 3 magnetic fields.&lt;/p&gt;

&lt;p&gt;We also want Lagrangian quadratic and Lorentz invariant. As long as all indices
are contracted correctly, then the Lorentz transformation will be a symmetry of
anything that we make. So We make&lt;/p&gt;

$$\begin{align}
  \mathcal{L} = F_{\nu\mu} F^{\nu\mu}
\end{align}$$


&lt;h2&gt;Lecture 8: $\star$ Electromagnetic &amp; Maxwell's Equations $\star$&lt;/h2&gt;

&lt;p&gt;Lagrangian(add a factor $-1/4$ )&lt;/p&gt;

$$\begin{align}
  \mathrm{Action} = - \frac{1}{4}\int \mathrm{d}^4x \cdot F_{\nu\mu} F^{\nu\mu}
\end{align}$$

&lt;p&gt;from Euler-Lagrange equation we get&lt;/p&gt;

$$\begin{align}
 \frac{\partial}{\partial x^{\nu}} \frac{\partial \mathcal{L}}{\partial \frac{\partial A^{\mu}}{\partial x^{\nu}}}
 = \frac{\partial \mathcal{L}}{\partial A^{\nu}} = 0
\end{align}$$

&lt;p&gt;the second equal is because $\mathcal{L}$ is independent of $A$, only depends on
the derivative of $A$ .&lt;/p&gt;

&lt;p&gt;So, the equation of motion is&lt;/p&gt;

$$\begin{align}
\frac{\partial}{\partial x^{\mu}} F^{\mu\nu} = 0
\end{align}$$

&lt;p&gt;and Maxwell's equation is&lt;/p&gt;

$$\begin{align}
  \nabla \cdot \vec{E} &amp;= \rho, \quad \mathrm{equation} \quad \mathrm{of} \quad
                   \mathrm{motion} \quad \mathrm{about}\quad j^0\\
  \nabla \cdot \vec{B} &amp;=0, \quad \mathrm{consequence} \quad \mathrm{of}\quad
                  \mathrm{definition} \quad \mathrm{of} \quad \vec{B}\\
  \nabla \times \vec{E} &amp;= -\dot{B}, \quad \mathrm{consequence} \quad \mathrm{of}\quad
                  \mathrm{definition} \quad \mathrm{of} \quad \vec{B}
                    \quad \mathrm{and} \quad \vec{E}\\
  \nabla \times \vec{B} &amp;= \dot{\vec{E}} + \vec{\jmath}  , \quad \mathrm{equation}
                   \quad \mathrm{of} \quad \mathrm{motion}
\end{align}$$


&lt;h2&gt;Reference&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href='https://en.wikipedia.org/wiki/Noether%27s_theorem'&gt;Noether's theorem&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Michael E. Peskin, Daniel V. Schroeder - An Introduction To Quantum Field Theory (2018, Westview PressCRC Press)&lt;/li&gt;
&lt;li&gt;&lt;a href='https://en.wikipedia.org/wiki/Electromagnetic_tensor'&gt;Electromagnetic tnesor&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</content><category term="专业笔记"/><category term="Susskind"/><category term="physics"/><category term="classical field theory"/><category term="field theory"/><category term="least action"/><category term="Lagrangian"/><category term="Special Relativity"/></entry><entry><title>一个简单的积分: 自由粒子的传播子</title><link href="https://zqw.ink/2021-03-03-physics-non_relativity_free_particle_propgator.html" rel="alternate"/><published>2021-03-03T00:00:00+08:00</published><updated>2021-03-03T00:00:00+08:00</updated><author><name>ZQW</name></author><id>tag:zqw.ink,2021-03-03:/2021-03-03-physics-non_relativity_free_particle_propgator.html</id><summary type="html">

$$\begin{align}
  U(t) =&amp; \langle \vec{x} | e^{-\mathrm{i} H t} | \vec{x}_0\rangle \\
    =&amp; \int \frac{\mathrm{d}^3\vec{p}}{(2\pi)^3}
      \langle \vec{x}| e^{-\mathrm{i} \frac{p^2}{2m}t}|\vec{p}\rangle
          \langle \vec{p} | \vec{x}_0\rangle \\
    =&amp; \int \frac{\mathrm …</summary><content type="html">

$$\begin{align}
  U(t) =&amp; \langle \vec{x} | e^{-\mathrm{i} H t} | \vec{x}_0\rangle \\
    =&amp; \int \frac{\mathrm{d}^3\vec{p}}{(2\pi)^3}
      \langle \vec{x}| e^{-\mathrm{i} \frac{p^2}{2m}t}|\vec{p}\rangle
          \langle \vec{p} | \vec{x}_0\rangle \\
    =&amp; \int \frac{\mathrm{d}^3\vec{p}}{(2\pi)^3}
       e^{-\mathrm{i} \frac{p^2}{2m}t} e^{\mathrm{i}\vec{p}\cdot(\vec{x} - \vec{x}_0)} \\
    =&amp; \left( \frac{m}{2\pi \mathrm{i}t} \right)^{3/2}
            e^{\mathrm{i}m\frac{(\vec{x} - \vec{x}_0)^2}{2t}}
\end{align}$$

&lt;p&gt;最后一个等号的过程如下. 记 $|\vec{x} - \vec{x}_0| = \Delta x$&lt;/p&gt;

$$\begin{align}
U(t) =&amp; \frac{1}{(2\pi)^2} \int_0^{\infty}\mathrm{d}p\cdot p^2\int_{-1}^1\mathrm{d}\cos\theta\cdot
       e^{-\mathrm{i} \frac{p^2}{2m}t}e^{\mathrm{i} p\Delta x \cos\theta} \\
=&amp; \frac{1}{(2\pi)^2} \int_0^{\infty}\mathrm{d}p\cdot p
       e^{-\mathrm{i} \frac{p^2}{2m}t} \frac{1}{\mathrm{i}\Delta x}
        [e^{\mathrm{i} p\Delta x} - e^{-\mathrm{i} p\Delta x}]\\
=&amp; \frac{1}{(2\pi)^2} \int_{-\infty}^{\infty}\mathrm{d}p\cdot p
       e^{-\mathrm{i} \frac{p^2}{2m}t} \frac{1}{\mathrm{i}\Delta x}
        e^{\mathrm{i} p\Delta x} \\
=&amp; \frac{1}{(2\pi)^2} \int_{-\infty}^{\infty}\mathrm{d}p
       e^{-\mathrm{i} \frac{p^2}{2m}t} \frac{p}{\mathrm{i}\Delta x}\cdot
          \frac{1}{\mathrm{i}p} \frac{\partial}{\partial\Delta x}
        e^{\mathrm{i} p\Delta x} \\
=&amp; \frac{1}{(2\pi)^2} \frac{-1}{\mathrm{i}\Delta x}\frac{\partial}{\partial\Delta x}
           \int_{-\infty}^{\infty}\mathrm{d}p
       e^{-\mathrm{i} \frac{p^2}{2m}t} e^{\mathrm{i} p\Delta x} \\
=&amp; \frac{1}{(2\pi)^2} \frac{-1}{\mathrm{i}\Delta x}\frac{\partial}{\partial\Delta x}
            \sqrt{\frac{2\pi m}{\mathrm{i}t}} e^{-\frac{\Delta x^{2} m}{2it}}\\
=&amp; \left( \frac{m}{2\pi \mathrm{i}t} \right)^{3/2}
            e^{\mathrm{i}m\frac{\Delta x^2}{2t}}
\end{align}$$


&lt;h2&gt;注&lt;/h2&gt;

&lt;p&gt;记住这个还不是错的, 不用老配方了...&lt;/p&gt;

$$\begin{align}
\int_{-\infty}^{\infty} e^{-a x^2 + bx} = \sqrt{\frac{\pi}{a}}e^{\frac{b^2}{4a}}
\end{align}$$


&lt;h2&gt;Reference&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Michael E. Peskin, Daniel V. Schroeder - An Introduction To Quantum Field Theory (2018, Westview Press_CRC Press) Chap 2.1&lt;/li&gt;
&lt;li&gt;&lt;a href='https://physics.stackexchange.com/questions/424587/peskin-schroeder-free-particle-propagation'&gt;https://physics.stackexchange.com/questions/424587/peskin-schroeder-free-particle-propagation&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</content><category term="专业笔记"/><category term="propagator"/><category term="free particle"/></entry><entry><title>Carl Bender Mathematical Physics Lecture7 Note</title><link href="https://zqw.ink/2021-03-02-physics-carlbendermathematicalphysicslecture7.html" rel="alternate"/><published>2021-03-02T00:00:00+08:00</published><updated>2021-03-02T00:00:00+08:00</updated><author><name>ZQW</name></author><id>tag:zqw.ink,2021-03-02:/2021-03-02-physics-carlbendermathematicalphysicslecture7.html</id><summary type="html">
&lt;h2&gt;Information&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;原出处: https://www.perimeterinstitute.ca/video-library/collection/11/12-psi-mathematical-physics&lt;/li&gt;
&lt;li&gt;可以看自动生成的字幕: &lt;a href='https://www.youtube.com/playlist?list=PLzcd6SoIscwjHuWRE38UXWG92uq0Sy4UF'&gt;https://www.youtube.com/playlist?list=PLzcd6SoIscwjHuWRE38UXWG92uq0Sy4UF&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Bilibili: https://www.bilibili.com/video/BV1w4411q7x6?from&lt;code&gt;search&amp;seid&lt;/code&gt;7852838902448285010&lt;/li&gt;
&lt;li&gt;Book: Carl M. Bender, Steven A. Orszag, Advanced Mathematical Methods for …&lt;/li&gt;&lt;/ul&gt;</summary><content type="html">
&lt;h2&gt;Information&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;原出处: https://www.perimeterinstitute.ca/video-library/collection/11/12-psi-mathematical-physics&lt;/li&gt;
&lt;li&gt;可以看自动生成的字幕: &lt;a href='https://www.youtube.com/playlist?list=PLzcd6SoIscwjHuWRE38UXWG92uq0Sy4UF'&gt;https://www.youtube.com/playlist?list=PLzcd6SoIscwjHuWRE38UXWG92uq0Sy4UF&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Bilibili: https://www.bilibili.com/video/BV1w4411q7x6?from&lt;code&gt;search&amp;seid&lt;/code&gt;7852838902448285010&lt;/li&gt;
&lt;li&gt;Book: Carl M. Bender, Steven A. Orszag, Advanced Mathematical Methods for Scientists and Engineers I Asymptotic Methods and Perturbation Theory, 1999&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Keywords&lt;/h2&gt;

&lt;p&gt;Pade technique for summing a series.  Asymptotic series.  Fuchs' theorem.  Frobenius series.&lt;/p&gt;

&lt;h2&gt;Pade&lt;/h2&gt;

&lt;p&gt;Poles are "mocking up" the cut.&lt;/p&gt;

&lt;p&gt;展示了 $\frac{\ln (1 + x)}{x}$ Pade 近似的结果. Mathematican 中可以用函数
&lt;code&gt;PadeApproximant&lt;/code&gt; 来实现.&lt;/p&gt;

&lt;p&gt;这是上节课尾巴.&lt;/p&gt;

&lt;h2&gt;Stirling's Series&lt;/h2&gt;


$$\begin{align}
  \Gamma(x) \sim x^{x-1/2} e^{-x}\sqrt{2\pi}
    \left(1 + \frac{1}{12 x} + \frac{1}{288 z^2} - \cdots \right)
\end{align}$$

&lt;p&gt;它收敛很慢. 但是变成 Pade 后, 就收敛很快. 但是 no idea why it works.&lt;/p&gt;

&lt;h2&gt;What is Asymptotic Series?&lt;/h2&gt;


$$\begin{align}
  f(x) - \sum_{n = 0}^N a_n x^n \sim a_{N + 1} x^{N + 1}
   \quad \mathrm{as} \quad x\to 0
\end{align}$$

&lt;p&gt;means that&lt;/p&gt;

$$\begin{align}
  f(x) - \sum_{n=0}^N a_n x^n \sim a_{N + 1} x^{N + 1}
   \quad \mathrm{as} \quad x\to 0  \quad \mathrm{for}
  \quad  \mathrm{all} \quad N
\end{align}$$

&lt;p&gt;also&lt;/p&gt;

$$\begin{align}
 \lim_{x \to \infty} \frac{f(x) - \sum_{n=0}^N a_n x^n}{x^{N + 1}} = a_{N + 1}
  \quad \mathrm{for} \quad  \mathrm{all} \quad N
\end{align}$$

&lt;p&gt;只有说一个 series asymptotic to 某个函数时, 才有意义. 直接说某个 series 是不是
asymptotic series 是没有意义的.&lt;/p&gt;

&lt;p&gt;对于一个 series, 总有一个 function 是此级数 asymptotic to 的.&lt;/p&gt;

&lt;p&gt;但对于一个 function 只有一个 series 是 asymptotic to 它的.&lt;/p&gt;

&lt;p&gt;A function has an unique asymptotic series. But a series could be asymptotic to
many different functions.&lt;/p&gt;

&lt;p&gt;asymptotic series 也可以有其它的形式, 如&lt;/p&gt;

$$\begin{align}
  f(x) - \sum_{n = 0}^N (a_n - a) x^n \sim a_{N + 1} x^{N + 1}
   \quad \mathrm{as} \quad x\to a
\end{align}$$

&lt;p&gt;同样, $n$ 也不一定是整数. 可以是分数等等.&lt;/p&gt;

&lt;p&gt;如&lt;/p&gt;

$$\begin{align}
  \frac{\Gamma(x)}{x^{x-1/2} e^{-x}\sqrt{2\pi}} \sim
    1 + \frac{1}{12 x} + \frac{1}{288 z^2} - \cdots \quad \mathrm{as} \quad x \to \infty
\end{align}$$


&lt;h2&gt;An Example about "How do asymptotic series arise?"&lt;/h2&gt;

&lt;p&gt;对&lt;/p&gt;

$$\begin{align}
  x^3 y'' = y
\end{align}$$

&lt;p&gt;在 near $x=0$ 处进行 local analysis.&lt;/p&gt;

&lt;h3&gt;偏题: 如何分析一个 second order linear DE?&lt;/h3&gt;

&lt;p&gt;拿到形如&lt;/p&gt;

$$\begin{align}
  a(x) y'' + b(x) y' + c(x)y = 0
\end{align}$$

&lt;p&gt;的方程, 首先化成 normal form. 两边同时除以 $a(x)$ , 变成了如下形式&lt;/p&gt;

$$\begin{align}
  y'' + A(x) y' + B(x)y = 0
\end{align}$$

&lt;p&gt;要分析它在 $x\to x_0$ 处的行为. How does $y(x)$ behave near $x = x_0$ ?&lt;/p&gt;

&lt;p&gt;There are exactly three possibilities there.&lt;/p&gt;

&lt;h4&gt;case 1&lt;/h4&gt;

&lt;p&gt;$A(x)$ , $B(x)$ analytic near $x = x_0$ ( $x_0$ is a regular point)&lt;/p&gt;

&lt;p&gt;此时有定理, Fuchs' theorem. (Lazarus Immanuel Fuchs (5 May 1833 – 26 April 1902)
was a Jewish-German[1] mathematician who contributed important research in the
field of linear differential equations)&lt;/p&gt;

&lt;p&gt;All solutions have a Taylor series about $x = x_0$&lt;/p&gt;

$$\begin{align}
  y(x) = \sum_0^{\infty} (x - x_0)^n a_n
\end{align}$$


&lt;h4&gt;case 2&lt;/h4&gt;

&lt;p&gt;Not both $A$ and $B$ are analytical. But $(x - x_0) A(x)$ and $(x - x_0) B(x)$
are analytical. ( $x_0$ is a regular singular point)&lt;/p&gt;

&lt;p&gt;At least one solution has the form (Frobenius series)&lt;/p&gt;

$$\begin{align}
  y(x) = \sum_0^{\infty} (x - x_0)^{n + \alpha} a_n
\end{align}$$

&lt;p&gt;others&lt;/p&gt;

$$\begin{align}
  y(x) = \sum_0^{\infty} (x - x_0)^{n + \alpha} a_n \ln(x - x_0)
\end{align}$$


&lt;p&gt;case 1 and case 2 solutions' converge radius is often the distance from $x_0$ to
the nearest singularity.&lt;/p&gt;

&lt;h4&gt;case 3&lt;/h4&gt;

&lt;p&gt;$x_0$ is an irregular point.&lt;/p&gt;

&lt;h3&gt;local analysis&lt;/h3&gt;

&lt;p&gt;对于&lt;/p&gt;

$$\begin{align}
  x^3 y'' = y
\end{align}$$

&lt;p&gt;来说&lt;/p&gt;

$$\begin{align}
  A = 0, \quad B = \frac{1}{x^3}
\end{align}$$


&lt;p&gt;它属于 case 3. 如果强行写一个 Frobenius series 的解&lt;/p&gt;

$$\begin{align}
  y(x) = \sum_{n = 0}^{\infty} a_n x^{n + \alpha} \quad(a_n \neq 0)
\end{align}$$

&lt;p&gt;那么代回原方程可以得到&lt;/p&gt;

$$\begin{align}
  \sum_{n = 1}^{\infty} (n - 1 + \alpha)(n - 2 + \alpha) a_{n - 1} x^{n + \alpha}
   = \sum_{n = 0}^{\infty} a_n x^{n + \alpha}
\end{align}$$

&lt;p&gt;结果是 $a_0 = 0$ , $a_n = 0$ . 也就是它没有 Frobenius series 的解.&lt;/p&gt;

&lt;p&gt;这个问题太难了, 让我们看一下一阶的问题, 能不能猜一下它的解.&lt;/p&gt;

&lt;h4&gt;$y' = \frac{y}{2}$&lt;/h4&gt;

&lt;p&gt;它的 case 1, 在 $x = 0$ 处是 regular point. 那么它有 Taylor series 形式的解. 当
然的, 它的解是&lt;/p&gt;

$$\begin{align}
  y(x) = C e^{\frac{x}{2}} = C \sum_{n = 0}^{\infty} \frac{(x/2)^n}{n!}
\end{align}$$


&lt;h4&gt;$y' = \frac{y}{2x}$&lt;/h4&gt;

&lt;p&gt;它是 case 2, 在 $x = 0$ 处是 regular singular point. 它的解为&lt;/p&gt;

$$\begin{align}
  y(x) = C \sqrt{x}
\end{align}$$

&lt;p&gt;这是 Frobenius series, $\alpha = 1/2$ , 只有一项. Frobenius was right!&lt;/p&gt;

&lt;h4&gt;$y' = \frac{y}{2x^2}$&lt;/h4&gt;

&lt;p&gt;它是 case 3, irregular point. 但是它的可解的, 结果是&lt;/p&gt;

$$\begin{align}
  y = C e^{- \frac{1}{2x}}
\end{align}$$

&lt;p&gt;它的形式是&lt;/p&gt;

$$\begin{align}
  y = e^{s(x)}
\end{align}$$


&lt;h3&gt;How do asymptotic series arise?&lt;/h3&gt;

&lt;p&gt;因此, Green (是 George Green?)给出了这样的 suggested, 一个 $y = e^{s(x)}$ 形式的
试探解( $s(x)$ is singular, blowing up at $x = 0$ )&lt;/p&gt;

$$\begin{align}
 y(x) = e^{a x^b}, \quad b&lt;0
\end{align}$$

&lt;p&gt;如果直接将 $y = e^{s(x)}$ 代回 $x^3 y'' = y$ , 会得到 Riccati&lt;/p&gt;

$$\begin{align}
  x^3(s'' + s'^2) &amp;= 1 \\
    \Downarrow&amp; \\
x^3(T' + T^2) &amp;= 1
\end{align}$$

&lt;p&gt;如果 $s = a x^b$
那么会得到&lt;/p&gt;

$$\begin{align}
  s'  =&amp; b a x^{b - 1}\\
  s'' =&amp; b(b - 1) a x^{b-2}\\
  s'^2 =&amp; b^2a^2 x^{2b - 2}
\end{align}$$

&lt;p&gt;Mr. Green noticed that if $b &lt; 0$ which of $s'', s'^2$ is more important as $x\to
0$ ? (Its an issue of 2b or not 2b. That's the point! -_- !!! Bender 讲了这么多就
只是为了玩 shakespeare 的梗...当然不是...) 当然是&lt;/p&gt;

$$\begin{align}
  s'' \ll (s')^2 \quad \mathrm{as} \quad x \to 0
\end{align}$$

&lt;p&gt;所以用了 the method of dominant balance( 第一节课讲的 ), 将等号的换成 $\sim$ , 问题
有了进展. 这也再次说明 equal sign make no progress! Replace this equation by an
asymptotic relations&lt;/p&gt;

$$\begin{align}
  x^3(s'' + s'^2) &amp;= 1 \\
        \Downarrow&amp; \\
  x^3 s'^2 &amp;\sim 1 \quad \mathrm{as} \quad x\to 0\\
\end{align}$$

&lt;p&gt;ha! I can solve that equation. It's only a first order euqation.
&lt;p&gt;&lt;img src='2021-03-02-physics-CarlBenderMathematicalPhysicsLecture7/bender.png' alt='figalt' max-width:100%&gt;&lt;p&gt;&lt;/p&gt;

$$\begin{align}
s \sim \mp C\frac{2}{\sqrt{x}}\quad \mathrm{as} \quad x\to 0
\end{align}$$

&lt;p&gt;Just like that! We cracked into the equation!&lt;/p&gt;

&lt;p&gt;We know what $s$ is asymptotic to. 但是我们想要的是 $y(x) = e^{s(x)}$ . 那么问题
来了. If $f(x)\sim g(x)$ as $x\to x_0$ , is it true $e^{f(x)}\sim e^{g(x)}$ as $x\to
x_0$ ? (因为 asymptotic 并不意味着 $f(x) - g(x)$ 很小, 它可以很大, 比如 $x^2 + x
\sim x^{2}$ as $x\to \infty$ , 但它们相差无穷大!)&lt;/p&gt;

&lt;p&gt;Only true when $f(x) - g(x) \ll 1$ as $x \to x_0$ . The one thing that you cannot
do both sides of an asymptotic approximation is to exponent it.&lt;/p&gt;

&lt;p&gt;$\mp \frac{2}{\sqrt{x}}\quad \mathrm{as}$ 叫做 controlling factor. 因此我们只能
&lt;em&gt;roughly&lt;/em&gt; speaking&lt;/p&gt;

$$\begin{align}
  y(x) \sim e^{\frac{2}{\sqrt{x}}} \quad \mathrm{or} \quad e^{-\frac{2}{\sqrt{x}}}
   \quad \mathrm{as} \quad x\to 0
\end{align}$$

&lt;p&gt;有一个解在 $x \to 0$ 时很快地 blow up. 另一个趋于 $0$ . 这两个解都没有 Frobenius
或者 Taylor series.&lt;/p&gt;

&lt;p&gt;Bender 最后总结, 新的概念就是这样被发明的. 这个方程的解一定是一个函数, 但是通常
的方法都没法表示, 所以 we're forced to a new way to represent the function.&lt;/p&gt;

&lt;p&gt;最终的结果是&lt;/p&gt;

$$\begin{align}
  y(x) \sim e^{\mp \frac{2}{\sqrt{x}}} x^{3/4} \sum_{n = 0}^{\infty} a_n x^{n/2} \quad
  \mathrm{as} \quad x \to 0
\end{align}$$

&lt;p&gt;之后会发现这是个 divergent series. 所以说, divergent series are forced upon
us. This is the only way to represent the solution. We don't have a convergent
series representation.&lt;/p&gt;

&lt;p&gt;之后会讲如何 sum that series and actually write down the answer.&lt;/p&gt;

&lt;h2&gt;Summary&lt;/h2&gt;

&lt;p&gt;介绍了 asymptotic series 的定义, 之后重点用一个例子说明我们是如何有了 asymptotic
series 这个概念的: 我们发现了一些方程, 它的解的形式只能用 asymptotic series 来表
示. 这就像 $x^2 = -1$ 的解让我们不得不拥有了复数的概念一样.&lt;/p&gt;

&lt;h2&gt;Reference&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href='https://mathworld.wolfram.com/StirlingsSeries.html'&gt;Stirling's Series&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href='https://arxiv.org/pdf/0912.2069.pdf'&gt;Stokes' wedges&lt;/a&gt; (只有 Bender 这么叫?)&lt;/li&gt;
&lt;li&gt;&lt;a href='https://en.wikipedia.org/wiki/Fuchs%27_theorem'&gt;Fuchs' theorem&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</content><category term="专业笔记"/><category term="Carl Bender"/><category term="Mathematical Physics"/><category term="asymptotic series"/><category term="Frobenius series"/><category term="method of dominant balance"/></entry><entry><title>two body density matrix</title><link href="https://zqw.ink/2021-03-01-physics-two_body_density_matrix.html" rel="alternate"/><published>2021-03-01T00:00:00+08:00</published><updated>2021-03-01T00:00:00+08:00</updated><author><name>ZQW</name></author><id>tag:zqw.ink,2021-03-01:/2021-03-01-physics-two_body_density_matrix.html</id><summary type="html">
&lt;p&gt;两体密度矩阵&lt;/p&gt;

$$\begin{align}
        \rho(\mathbf{r}, \mathbf{r}'; \mathbf{r}_1)
         \equiv \langle \Psi |
         \psi^{\dagger}(\mathbf{r}) \psi^{\dagger}(\mathbf{r}_1)
                         \psi(\mathbf{r}_1) \psi(\mathbf{r'})
                | \Psi \rangle
            = \phi^*(\mathbf{r}, \mathbf{r}_1)\phi(\mathbf{r}_1, \mathbf{r}')
    \end …</summary><content type="html">
&lt;p&gt;两体密度矩阵&lt;/p&gt;

$$\begin{align}
        \rho(\mathbf{r}, \mathbf{r}'; \mathbf{r}_1)
         \equiv \langle \Psi |
         \psi^{\dagger}(\mathbf{r}) \psi^{\dagger}(\mathbf{r}_1)
                         \psi(\mathbf{r}_1) \psi(\mathbf{r'})
                | \Psi \rangle
            = \phi^*(\mathbf{r}, \mathbf{r}_1)\phi(\mathbf{r}_1, \mathbf{r}')
    \end{align}$$

&lt;p&gt;其中 $|\Psi\rangle$ 是两体态&lt;/p&gt;

$$\begin{align}
        | \Psi \rangle = \int \mathrm{d} \mathbf{r}_3
                         \int \mathrm{d} \mathbf{r}_4\cdot
                         \phi (\mathbf{r}_3, \mathbf{r}_4)\cdot
                \psi^{\dagger}(\mathbf{r}_3) \psi^{\dagger}(\mathbf{r}_4)
                | 0 \rangle
\end{align}$$


$$\begin{align}
        \langle \Psi| = \int \mathrm{d} \mathbf{r}_5
                         \int \mathrm{d} \mathbf{r}_6\cdot
                         \phi^{*} (\mathbf{r}_5, \mathbf{r}_6)\cdot
                \langle 0 |\psi(\mathbf{r}_6) \psi(\mathbf{r}_5)
\end{align}$$

&lt;p&gt;所以&lt;/p&gt;

$$\begin{align}
  \rho(\mathbf{r}, \mathbf{r}'; \mathbf{r}_1)
   = &amp;\int \mathrm{d} \mathbf{r}_3 \int \mathrm{d} \mathbf{r}_4
     \int \mathrm{d} \mathbf{r}_5\int \mathrm{d} \mathbf{r}_6\cdot
        \phi^{*} (\mathbf{r}_5, \mathbf{r}_6)\phi (\mathbf{r}_3, \mathbf{r}_4)\\
  &amp;\langle 0 |
       \psi(\mathbf{r}_6) \psi(\mathbf{r}_5)\cdot
         \psi^{\dagger}(\mathbf{r}) \psi^{\dagger}(\mathbf{r}_1)
                         \psi(\mathbf{r}_1) \psi(\mathbf{r'})\cdot
                \psi^{\dagger}(\mathbf{r}_3) \psi^{\dagger}(\mathbf{r}_4)
    |0\rangle \\
   =&amp;\int \mathrm{d} \mathbf{r}_3 \int \mathrm{d} \mathbf{r}_4
     \int \mathrm{d} \mathbf{r}_5\int \mathrm{d} \mathbf{r}_6\cdot
        \phi^{*} (\mathbf{r}_5, \mathbf{r}_6)\phi (\mathbf{r}_3, \mathbf{r}_4)\\
  &amp;\left[ \delta (\mathrm{r} - \mathrm{r}_{5}) \delta(\mathrm{r}_1 - \mathrm{r}_{6})
         -\delta (\mathrm{r} - \mathrm{r}_6) \delta(\mathrm{r}_1 - \mathrm{r}_5) \right]\cdot
    \left[ \delta (\mathrm{r}' - \mathrm{r}_3) \delta(\mathrm{r}_1 - \mathrm{r}_4)
         -\delta (\mathrm{r}' - \mathrm{r}_4) \delta(\mathrm{r}_1 - \mathrm{r}_3) \right]
\end{align}$$

&lt;p&gt;so&lt;/p&gt;

$$\begin{align}
        \rho(\mathbf{r}, \mathbf{r}'; \mathbf{r}_1)
        = \sharp \phi^*(\mathbf{r}, \mathbf{r}_1)\phi(\mathbf{r}_1, \mathbf{r}')
\end{align}$$



&lt;h2&gt;Reference&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Harald Siegfried Friedrich, Theoretical Atomic Physics-Springer (2005) Chap 1.4.1&lt;/li&gt;
&lt;/ul&gt;
</content><category term="专业笔记"/><category term="two body"/><category term="density matrix"/></entry><entry><title>两体束缚态</title><link href="https://zqw.ink/2021-03-01-physics-two_body_in_3d.html" rel="alternate"/><published>2021-03-01T00:00:00+08:00</published><updated>2021-03-01T00:00:00+08:00</updated><author><name>ZQW</name></author><id>tag:zqw.ink,2021-03-01:/2021-03-01-physics-two_body_in_3d.html</id><summary type="html">&lt;!-- toc --&gt;
&lt;!-- more --&gt;
&lt;h1 id="any"&gt;any&lt;/h1&gt;
&lt;p&gt;$r &gt; r_0$ 时, $V(r) = 0$ , 径向 Schrodinger 方程为&lt;br /&gt;
$$
\label{eq:sq}
-\chi'' + \frac{l(l+1)}{r^2}\chi = k^2 \chi
$$&lt;/p&gt;
&lt;p&gt;将 $\chi$ 在 $k=0$ 处做低能展开&lt;br /&gt;
$$
\chi(r) = \phi(r) + k^2 f(r) +k^4 g(r …&lt;/p&gt;</summary><content type="html">&lt;!-- toc --&gt;
&lt;!-- more --&gt;
&lt;h1 id="any"&gt;any&lt;/h1&gt;
&lt;p&gt;$r &gt; r_0$ 时, $V(r) = 0$ , 径向 Schrodinger 方程为&lt;br /&gt;
$$
\label{eq:sq}
-\chi'' + \frac{l(l+1)}{r^2}\chi = k^2 \chi
$$&lt;/p&gt;
&lt;p&gt;将 $\chi$ 在 $k=0$ 处做低能展开&lt;br /&gt;
$$
\chi(r) = \phi(r) + k^2 f(r) +k^4 g(r) + \mathcal{O}(k^6)
$$&lt;/p&gt;
&lt;p&gt;将展开代回到 $(\ref{eq:sq})$ , 对比 &lt;eq&gt;k&lt;/eq&gt; 的系数得到:&lt;/p&gt;
&lt;p&gt;零能时, 也就是 $\phi$ 满足的方程为&lt;br /&gt;
$$&lt;br /&gt;
\label{eq:phi}&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;\phi '' + \frac{l(l+1)}{r^2}\phi = 0&lt;br /&gt;
$$&lt;br /&gt;
&lt;eq&gt;f&lt;/eq&gt; 满足的方程为&lt;br /&gt;
$$&lt;br /&gt;
\label{eq:f}&lt;/li&gt;
&lt;li&gt;f '' + \frac{l(l+1)}{r^2}f = \phi&lt;br /&gt;
$$&lt;br /&gt;
&lt;eq&gt;g&lt;/eq&gt; 满足的方程为&lt;br /&gt;
$$&lt;br /&gt;
\label{eq:g}&lt;/li&gt;
&lt;li&gt;g'' + \frac{l(l+1)}{r^2}g = f&lt;br /&gt;
$$&lt;/li&gt;
&lt;/ul&gt;
&lt;h1 id="s-wave"&gt;s-wave&lt;/h1&gt;
&lt;p&gt;$l = 0$ 代入 $(\ref{eq:phi})$ 零能解为&lt;br /&gt;
$$
\phi \propto \sharp_1  + \sharp_2 r
$$&lt;br /&gt;
舍去一个归一化因子, 相对系数可定义散射长度&lt;br /&gt;
$$
\label{eq:phi_s}
\phi = 1 - \frac{r}{a}
$$&lt;/p&gt;
$$

\psi(r)|_{k=0} = \frac{\chi(r)}{r} \propto \frac{1}{r} - \frac{1}{a}

$$&lt;p&gt;$(\ref{eq:phi_s})$ 代入 $(\ref{eq:f})$ 解得&lt;br /&gt;
$$
f = -\frac{r^2}{2} + \frac{r^3}{6a} + C_1 + C_2 r
$$&lt;br /&gt;
重新定义 $f \to f - C_1\phi$ (这总是可以做到的, 因为相当于直接在展开的时候令 $\chi = \phi + k^2 (f-C_1\phi) + k^4 g$ , $f - C_1 \phi$ 也可以做一到是任意函数 ) ,并用系数定义 effective range&lt;br /&gt;
$$
\label{eq:f_s}
f = -\frac{r^2}{2} + \frac{r^3}{6a} + \frac{r_s}{2} r
$$&lt;br /&gt;
$(\ref{eq:f_s})$ 代入 $(\ref{eq:f})$ ,并做类似地处理 ( $g\to g - \cdots$ , 定义 $r_s'$ ) 得到 (  $r_s'$ &lt;strong&gt;的系数why?1/24??&lt;/strong&gt; )&lt;br /&gt;
$$
g = \frac{r^4}{24} - \frac{r^5}{120a} - \frac{r_s}{12}r^3 +\frac{r_s'}{24}r
$$&lt;br /&gt;
s-wave 非零能的径向方程实际是严格可解的, 舍去一个归一化系数, 另一个系数定义相移( 是 &lt;eq&gt;k&lt;/eq&gt; 的函数 ), 形式为&lt;br /&gt;
$$
\psi(r) = \frac{\sin (k r + \delta_k)}{r\sin\delta_k}
$$&lt;br /&gt;
$\psi(r)$ 也做低能 $k\to 0$ 的展开&lt;br /&gt;
$$
\psi(r) = \frac{\chi(r)}{r} = \cot\delta_k \sin(kr)\frac{1}{r} + \cos(kr)\frac{1}{r} 
= \frac{1}{r} + k\cot\delta_k + \mathcal{O}(r^2)
$$&lt;br /&gt;
$k\cot\delta_k$ 为 $r^0$ 的系数, 因此得到 $k\cot\delta_k$ 低能展开&lt;br /&gt;
$$
k\cot \delta_k = -\frac{1}{a} + k^2\frac{r_s}{2} + k^4 \frac{r_s'}{24} + \mathcal{O}(k^6)
$$&lt;/p&gt;
&lt;h1 id="p-wave"&gt;p-wave&lt;/h1&gt;
&lt;p&gt;$l = 1$ 代入 $(\ref{eq:phi})$ 零能解为零能时&lt;br /&gt;
$$
-\phi'' + \frac{1\times(1+1)}{r^2}\phi = 0
$$&lt;br /&gt;
解为&lt;br /&gt;
$$
\phi(r) \propto \sharp_1 r^2 + \sharp_2 \frac{1}{r}
$$&lt;/p&gt;
&lt;p&gt;舍去一个归一化因子, 相对系数可定义 &lt;eq&gt;v&lt;/eq&gt;&lt;br /&gt;
$$
\label{eq:phi_p}
\phi(r) = \frac{1}{r} - \frac{r^2}{3v}
$$&lt;br /&gt;
$(\ref{eq:phi_p})$ 代入 $(\ref{eq:f})$ 解得&lt;br /&gt;
$$
f = \frac{r}{2} + \frac{r^4}{30v} + \sharp_1 r^2 +\sharp_2 \frac{1}{r}
$$&lt;br /&gt;
与 s-wave 类似的处理, 用系数定义 &lt;eq&gt;R&lt;/eq&gt; , 重新定义后的 &lt;eq&gt;f&lt;/eq&gt; 为&lt;br /&gt;
$$
f = \frac{r}{2} + \frac{r^4}{30v} - \frac{r^2}{3R}
$$&lt;br /&gt;
所以&lt;br /&gt;
$$
\psi(r) = \frac{\chi(r)}{r} = \left( \frac{1}{r^2} - \frac{r}{3v} \right)
         + k^2 \left( \frac{1}{2} - \frac{r}{3R} + \frac{r^3}{30v}  \right) + \mathcal{O}(k^4)
$$&lt;/p&gt;
&lt;p&gt;&lt;s&gt;p-wave 非零能的径向方程的严格解是求 Bessel 函数, 舍去一个归一化系数, 另一个系数定义相移( 是 &lt;eq&gt;k&lt;/eq&gt; 的函数 ), 在 $r\to\infty$ 的渐近形式为&lt;/s&gt;&lt;/p&gt;
&lt;blockquote&gt;
$$

&gt; \begin{align}
&gt; \psi(r) = \frac{\chi(r)}{r} \sim&amp; \frac{1}{r\sin\delta_k}\sin\left(kr - \frac{1}{2}\pi + \delta_k  \right) \\
&gt;  =&amp; -\frac{1}{r}\cot \delta_k  + k + r\frac{k^2}{2}\cot\delta_k+\mathcal{O}(r^2)\quad, \quad \mathrm{as}\, r \to\infty
&gt;  \end{align}
&gt; 
$$&lt;/blockquote&gt;
&lt;p&gt;将严格解也在低能展开 ( &lt;strong&gt;此式的来源???&lt;/strong&gt; )&lt;br /&gt;
$$
\psi(r) = \frac{\chi(r)}{r} \propto \cot\delta_k j_1(kr) - y_1(kr) = \frac{1}{k^2 r^2} + \frac{1}{2} 
             + \frac{r}{3}k \cot\delta_k + \mathcal{O}(r^2)
$$&lt;/p&gt;
&lt;p&gt;对比 $\frac{1}{r^2}$ 及 &lt;eq&gt;r&lt;/eq&gt; 的系数可得&lt;br /&gt;
$$
\cot \delta_k = -\frac{1}{v k^3} - \frac{1}{kR} + \mathcal{O}(k)
$$&lt;/p&gt;
&lt;h1 id="d-wave"&gt;d-wave&lt;/h1&gt;
&lt;p&gt;$l = 2$ 代入 $(\ref{eq:phi})$ 零能解为零能时&lt;br /&gt;
$$
-\phi'' + \frac{2(2+1)}{r^2}\phi = 0
$$&lt;br /&gt;
解为&lt;br /&gt;
$$
\phi(r) = \sharp_1 r^3 + \sharp_2 \frac{1}{r^2}
$$&lt;/p&gt;
&lt;p&gt;舍去一个归一化因子, 相对系数可定义 &lt;eq&gt;D&lt;/eq&gt;&lt;br /&gt;
$$
\label{eq:phi_d}
\phi(r) = \frac{1}{r^2} - \frac{r^3}{45 D}
$$&lt;br /&gt;
$(\ref{eq:phi_d})$ 代入 $(\ref{eq:f})$ 解得&lt;br /&gt;
$$
f = \frac{1}{6} + \frac{r^5}{630 D} + \sharp_1 r^3 + \frac{\sharp_2}{r^2}
$$&lt;br /&gt;
与 s-wave 类似的处理, 用系数定义 &lt;eq&gt;v&lt;/eq&gt; , 重新定义后的 &lt;eq&gt;f&lt;/eq&gt; 为&lt;br /&gt;
$$
\label{eq:f_d}
f = \frac{1}{6} + \frac{r^5}{630 D} - \frac{r^3}{45v}
$$&lt;br /&gt;
$(\ref{eq:f_d})$ 代入 $(\ref{eq:g})$ ,并做类似地处理 ( $g\to g - \cdots$ , 定义 $r_s'$ ) 得到&lt;br /&gt;
$$
\begin{align}
g =&amp; \frac{r^5}{630 v} + \frac{r^2}{24} - \frac{r^7}{22680 D} + \sharp_1 r^3 + \frac{\sharp_2}{r^2} \\
\Rightarrow g =&amp; \frac{r^5}{630 v} + \frac{r^2}{24} - \frac{r^7}{22680 D} -\frac{r^3}{45R}  
\end{align}
$$&lt;br /&gt;
所以&lt;br /&gt;
$$
\begin{align}
\psi(r) =&amp; \frac{\chi(r)}{r} = \frac{\phi(r) + k^2 f(r) +k^4 g(r) + \mathcal{O}(k^6)}{r} \\
        =&amp;  \left(\frac{1}{r^3} - \frac{r^2}{45 D} \right)
         +k^2\left( \frac{1}{6} + \frac{r^5}{630 D} - \frac{r^3}{45v} \right)
         +k^4\left( \frac{r^5}{630 v} + \frac{r^2}{24} - \frac{r^7}{22680 D} -\frac{r^3}{45R} \right)
\end{align}
$$&lt;/p&gt;
&lt;p&gt;将严格解也在低能展开&lt;br /&gt;
$$
\psi(r) = \frac{\chi(r)}{r} \propto \cot\delta_k j_2(kr) - y_2(kr) 
        = \frac{3}{k^3 r^3} + \frac{1}{2kr} + \frac{kr}{8} 
             + \frac{r^2}{15}k^2 \cot\delta_k + \mathcal{O}(r^3)
$$&lt;/p&gt;
&lt;p&gt;对比系数得&lt;br /&gt;
$$
\cot \delta_k = - \frac{1}{Dk^5} - \frac{1}{vk^3} - \frac{1}{kR} + \mathcal{O}(k)
$$&lt;/p&gt;
</content><category term="专业笔记"/><category term="two body"/><category term="bound state"/></entry><entry><title>高斯波包的扩散</title><link href="https://zqw.ink/2021-02-28-physics-wave_packet_spreading.html" rel="alternate"/><published>2021-02-28T00:00:00+08:00</published><updated>2021-02-28T00:00:00+08:00</updated><author><name>ZQW</name></author><id>tag:zqw.ink,2021-02-28:/2021-02-28-physics-wave_packet_spreading.html</id><summary type="html">
&lt;h2&gt;Monochromatic wave&lt;/h2&gt;

&lt;p&gt;单色波的波函数可以写为&lt;/p&gt;

$$\begin{align}
\psi_k(x, t) = \phi_k(x) e^{-\mathrm{i}Et/\hbar}
= \frac{1}{\sqrt{2\pi}}e^{\mathrm{i}\left[kx - \omega(k) t\right]}
\end{align}$$

&lt;p&gt;phase velocity $v = \omega/k$ . $\omega(k)$ 为色 …&lt;/p&gt;</summary><content type="html">
&lt;h2&gt;Monochromatic wave&lt;/h2&gt;

&lt;p&gt;单色波的波函数可以写为&lt;/p&gt;

$$\begin{align}
\psi_k(x, t) = \phi_k(x) e^{-\mathrm{i}Et/\hbar}
= \frac{1}{\sqrt{2\pi}}e^{\mathrm{i}\left[kx - \omega(k) t\right]}
\end{align}$$

&lt;p&gt;phase velocity $v = \omega/k$ . $\omega(k)$ 为色散关系.&lt;/p&gt;

&lt;h2&gt;Localized wave packet&lt;/h2&gt;

&lt;p&gt;一个波包包含不同波长的单色波, 也就是不同的 $k$ 的叠加&lt;/p&gt;

$$\begin{align}
\psi(x, 0) = \int_{-\infty}^{\infty} \tilde{\psi}(k) \psi_k(x, 0) \mathrm{d}k
  = \frac{1}{\sqrt{2\pi}} \int_{-\infty}^{\infty} e^{\mathrm{i}kx} \tilde{\psi}(k) \mathrm{d}k
\end{align}$$

&lt;p&gt;叠加系数为&lt;/p&gt;

$$\begin{align}
 \tilde{\psi}(k) = \langle \psi_k(x, 0) | \psi(x, 0) \rangle = \frac{1}{\sqrt{2\pi}}
  \int_{-\infty}^{\infty} e^{-\mathrm{i}kx} \psi(x, 0)\mathrm{d}x
\end{align}$$

&lt;p&gt;那么 $t$ 时刻的波函数为&lt;/p&gt;

$$\begin{align}
  \psi(x, t) = \int_{-\infty}^{\infty}\tilde{\psi}(k) \psi_k(x, t) \mathrm{d}k
  = \frac{1}{\sqrt{2\pi}} \int_{-\infty}^{\infty} e^{\mathrm{i}\left[ kx - \omega(k)t \right]}
    \tilde{\psi}(k)\mathrm{d}k
\end{align}$$


&lt;h2&gt;Gaussian wave packet&lt;/h2&gt;

&lt;p&gt;高斯波包&lt;/p&gt;

$$\begin{align}
  \psi(x, 0) = (\beta\sqrt{\pi})^{-1/2} e^{-\frac{(x - x_0)^2}{2\beta^2}} e^{\mathrm{i}k_0 x}
\end{align}$$

&lt;p&gt;取色散关系为 $\omega(k) = \frac{\hbar k^2}{2\mu}$ 可得 (Mathematica 计算过程:
[[file:2021-02-28-专业笔
记-wave_packet_spreading/draft20210120_Gaussian_wave_packet.nb]] )&lt;/p&gt;

$$\begin{align}
|\psi(x, t)|^2 = \frac{1}{b(t) \sqrt{\pi}} e^{-\frac{(x - x_0 - v_0t)^2}{b(t)^2}}
\end{align}$$

&lt;p&gt;其中&lt;/p&gt;

$$\begin{align}
b(t) = \beta \sqrt{1 + \frac{\hbar^2t^2}{\mu^2\beta^4}}, \quad v_0 = \frac{\hbar k_0}{\mu}
\end{align}$$

&lt;p&gt;可见波包中心按速度 $v_0$ 传播, 宽度越来越宽.&lt;/p&gt;

&lt;p&gt;如果 $k$ 集中于 $k_0$ 附近, 那么可以做展开&lt;/p&gt;

$$\begin{align}
\omega(k) \approx \omega(k_0) + (k - k_0) \left. \frac{\mathrm{d}\omega}{\mathrm{d}k} \right|_{k_0}
\end{align}$$

&lt;p&gt;那么&lt;/p&gt;

$$\begin{align}
  \psi(x, t) \approx \frac{e^{-\mathrm{i}\omega_0t}}{\sqrt{2\pi}} \int_{-\infty}^{\infty}\tilde{\psi}(k)
     e^{\mathrm{i}k(x - v_{\mathrm{g}}t)} \mathrm{d}k
\end{align}$$

&lt;p&gt;其中&lt;/p&gt;

$$\begin{align}
\omega_0 =&amp; \omega(k_0) - k_0 \left. \frac{\mathrm{d}\omega}{\mathrm{d}k} \right|_{k_0}\\
v_{\mathrm{g}} =&amp; \left. \frac{\mathrm{d}\omega}{\mathrm{d}k} \right|_{k_0}
\end{align}$$


&lt;h2&gt;Reference&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Harald Siegfried Friedrich, Theoretical Atomic Physics-Springer (2005) Chap 1.4.1&lt;/li&gt;
&lt;/ul&gt;
</content><category term="专业笔记"/><category term="wave packet"/></entry><entry><title>研四上学期总结</title><link href="https://zqw.ink/2021-02-28-thinking-summary_grade_4_1.html" rel="alternate"/><published>2021-02-28T00:00:00+08:00</published><updated>2021-02-28T00:00:00+08:00</updated><author><name>ZQW</name></author><id>tag:zqw.ink,2021-02-28:/2021-02-28-thinking-summary_grade_4_1.html</id><summary type="html">
&lt;h2&gt;序&lt;/h2&gt;

&lt;p&gt;昨天返校了.&lt;/p&gt;

&lt;h2&gt;课题&lt;/h2&gt;

&lt;p&gt;已经推导了 d 波和 p 波的分子格林函数. 验证粒子数分布的 tail , 但不符合预期. 计划
从费曼图和直接推 …&lt;/p&gt;</summary><content type="html">
&lt;h2&gt;序&lt;/h2&gt;

&lt;p&gt;昨天返校了.&lt;/p&gt;

&lt;h2&gt;课题&lt;/h2&gt;

&lt;p&gt;已经推导了 d 波和 p 波的分子格林函数. 验证粒子数分布的 tail , 但不符合预期. 计划
从费曼图和直接推导两种方法对比, 找出原因.&lt;/p&gt;

&lt;p&gt;还看了 OPE 的文章.&lt;/p&gt;

&lt;h2&gt;读书&lt;/h2&gt;

&lt;p&gt;主要是读书会的凝聚态场论, 算是把前几章过了一遍吧.&lt;/p&gt;

&lt;p&gt;Taylor 散射: 看到第六章&lt;/p&gt;

&lt;p&gt;Carl Bender 微扰公开课的前六节.&lt;/p&gt;

&lt;p&gt;格林函数的历史.&lt;/p&gt;

&lt;p&gt;Harald Siegfried Friedrich, Theoretical Atomic Physics-Springer (2005) 第一章介
绍中心势和 Feshbach 共振的部分.&lt;/p&gt;

&lt;h2&gt;业余&lt;/h2&gt;

&lt;p&gt;midi 键盘, 练了有 22 次.&lt;/p&gt;

&lt;p&gt;switch.&lt;/p&gt;

&lt;p&gt;raspberry pi.&lt;/p&gt;

&lt;h2&gt;总&lt;/h2&gt;

&lt;p&gt;按时开学的愿望达成了. 没别的多说的, 希望多加把劲, 科研有所进展. 多么朴实的愿望.&lt;/p&gt;
</content><category term="想说"/><category term="总结"/></entry><entry><title>穿网线</title><link href="https://zqw.ink/2021-02-09-blog-net_wire.html" rel="alternate"/><published>2021-02-09T00:00:00+08:00</published><updated>2021-02-09T00:00:00+08:00</updated><author><name>ZQW</name></author><id>tag:zqw.ink,2021-02-09:/2021-02-09-blog-net_wire.html</id><summary type="html">
&lt;h2 id="2021-02-09-星期二"&gt;2021-02-09 星期二&lt;/h2&gt;
&lt;p&gt;天气: 睛 Entered on [2021-02-09 二 22:50]&lt;/p&gt;
&lt;p&gt;今天去奶奶家了.&lt;/p&gt;
&lt;p&gt;回老家玩了一下午, 看了看初中的物理课本.&lt;/p&gt;
&lt;p&gt;下午在车里把盖侬打了.&lt;/p&gt;
&lt;p&gt;晚上 …&lt;/p&gt;</summary><content type="html">
&lt;h2 id="2021-02-09-星期二"&gt;2021-02-09 星期二&lt;/h2&gt;
&lt;p&gt;天气: 睛 Entered on [2021-02-09 二 22:50]&lt;/p&gt;
&lt;p&gt;今天去奶奶家了.&lt;/p&gt;
&lt;p&gt;回老家玩了一下午, 看了看初中的物理课本.&lt;/p&gt;
&lt;p&gt;下午在车里把盖侬打了.&lt;/p&gt;
&lt;p&gt;晚上穿网线, 穿了一晚上也没穿过来. 最后把红米路由器设成中继解决了(之前怎么没想到...)&lt;/p&gt;
&lt;p&gt;放弃 openwrt 了, 学不到什么实质性的东西.&lt;/p&gt;
</content><category term="blog"/><category term="日记"/><category term="org-mode 日记"/><category term="openwrt"/></entry><entry><title>搞 openwrt，失败</title><link href="https://zqw.ink/2021-02-08-blog-openwrt.html" rel="alternate"/><published>2021-02-08T00:00:00+08:00</published><updated>2021-02-08T00:00:00+08:00</updated><author><name>ZQW</name></author><id>tag:zqw.ink,2021-02-08:/2021-02-08-blog-openwrt.html</id><content type="html">
&lt;h2 id="2021-02-08-星期一"&gt;2021-02-08 星期一&lt;/h2&gt;
&lt;p&gt;天气: 睛 Entered on [2021-02-08 一 23:26]&lt;/p&gt;
&lt;p&gt;在 rasberry pi 4b 上搞 openwrt 没搞好, 头疼.&lt;/p&gt;
&lt;p&gt;还看了一些编译原理.&lt;/p&gt;
</content><category term="blog"/><category term="日记"/><category term="org-mode 日记"/><category term="openwrt"/><category term="编译原理"/></entry><entry><title>扛管子，学 org-mode</title><link href="https://zqw.ink/2021-02-07-blog-kang_guan_zi.html" rel="alternate"/><published>2021-02-07T00:00:00+08:00</published><updated>2021-02-07T00:00:00+08:00</updated><author><name>ZQW</name></author><id>tag:zqw.ink,2021-02-07:/2021-02-07-blog-kang_guan_zi.html</id><content type="html">
&lt;h2 id="-2021-02-07-星期日"&gt;*** 2021-02-07 星期日&lt;/h2&gt;
&lt;p&gt;天气: 睛 Entered on [2021-02-07 日 22:21]&lt;/p&gt;
&lt;p&gt;今天第一天用 org-mode 写日记.&lt;/p&gt;
&lt;p&gt;主要学习了 org-mode 的 capture.&lt;/p&gt;
&lt;p&gt;回家扛架管干了一些活.&lt;/p&gt;
</content><category term="blog"/><category term="日记"/><category term="org-mode 日记"/><category term="扛管子"/></entry><entry><title>欢迎来到 Emacs 主义至上教室(lisp note -_-)</title><link href="https://zqw.ink/2021-01-20-coding-lisp.html" rel="alternate"/><published>2021-01-20T00:00:00+08:00</published><updated>2021-01-20T00:00:00+08:00</updated><author><name>ZQW</name></author><id>tag:zqw.ink,2021-01-20:/2021-01-20-coding-lisp.html</id><summary type="html">
&lt;h2&gt;Intro&lt;/h2&gt;

&lt;pre&gt;&lt;code class="language-lisp"&gt;  i i i i i i i       ooooo    o        ooooooo   ooooo   ooooo
  I I I I I I I      8     8   8           8     8     o  8    8
  I  \ `+' /  I      8         8           8     8        8    8
   \  `-+-'  /       8         8           8      ooooo   8oooo
    `-__|__-'        8         8           8           8  8
        |            8     o …&lt;/code&gt;&lt;/pre&gt;</summary><content type="html">
&lt;h2&gt;Intro&lt;/h2&gt;

&lt;pre&gt;&lt;code class="language-lisp"&gt;  i i i i i i i       ooooo    o        ooooooo   ooooo   ooooo
  I I I I I I I      8     8   8           8     8     o  8    8
  I  \ `+' /  I      8         8           8     8        8    8
   \  `-+-'  /       8         8           8      ooooo   8oooo
    `-__|__-'        8         8           8           8  8
        |            8     o   8           8     o     8  8
  ------+------       ooooo    8oooooo  ooo8ooo   ooooo   8

Welcome to GNU CLISP 2.49.93+ (2018-02-18) &amp;lt;http://clisp.org/&amp;gt;&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;交互式的(类似 ipython), 在 terminal 中输入 &lt;code&gt;ecl&lt;/code&gt; (Embeddable Common Lisp) . 没有
的话则需要安装. 也可以用 &lt;code&gt;clisp&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;此为快速入门笔记.&lt;/p&gt;

&lt;h2&gt;Common Lisp Syntax&lt;/h2&gt;

&lt;h3&gt;Form&lt;/h3&gt;

&lt;p&gt;lisp 的语法比较特别, 表达式用括号括起来, 括号中第一部分是函数, 剩余部分是函数的
参数. 当然也可以直接是一个 data. 如&lt;/p&gt;

&lt;pre&gt;&lt;code class="language-lisp"&gt;&amp;gt; 1

1
&amp;gt; (+ 2 3)

5
&amp;gt; (+ 2 3 4)

9
&amp;gt; (+)

0
&amp;gt; (/ (- 7 1) (- 4 2))

3&lt;/code&gt;&lt;/pre&gt;

&lt;h3&gt;Evaluation &lt;/h3&gt;

&lt;p&gt;lisp 默认对 &lt;code&gt;(+ 1 1)&lt;/code&gt; 是要求值的. 如果要避免求值, 可以用 &lt;code&gt;quote&lt;/code&gt; .&lt;/p&gt;

&lt;pre&gt;&lt;code class="language-lisp"&gt;&amp;gt; (quote (+ 3 5))

(+ 3 5)&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;code&gt;'&lt;/code&gt; 为 &lt;code&gt;quote&lt;/code&gt; 的简写&lt;/p&gt;

&lt;pre&gt;&lt;code class="language-lisp"&gt;&amp;gt; '(+ 3 5)

(+ 3 5)&lt;/code&gt;&lt;/pre&gt;

&lt;h3&gt;Data&lt;/h3&gt;

&lt;h4&gt;integer, string&lt;/h4&gt;

&lt;p&gt;在其它语言中常见.&lt;/p&gt;

&lt;h4&gt;symbol&lt;/h4&gt;

&lt;p&gt;无论怎输入, 都会被转换成大写. symbol 不对自身求值, 一般加 &lt;code&gt;'&lt;/code&gt; 引用&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-lisp"&gt;&amp;gt; 'Good

GOOD&lt;/code&gt;&lt;/pre&gt;

&lt;h4&gt;list&lt;/h4&gt;

&lt;pre&gt;&lt;code class="language-lisp"&gt;&amp;gt; (list 'hello (+ 3 6) "good")

(HELLO 9 "good")&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&lt;code&gt;list&lt;/code&gt; 函数来创建列表. build lists&lt;/p&gt;

&lt;pre&gt;&lt;code class="language-lisp"&gt;&amp;gt; (list '(+ 1 1) (+ 1 1))

((+ 1 1) 2)&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;空列表有两种表示方式&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-lisp"&gt;&amp;gt; ()

NIL
&amp;gt; nil

NIL &lt;/code&gt;&lt;/pre&gt;

&lt;h3&gt;List Operations &lt;/h3&gt;

&lt;p&gt;&lt;code&gt;cons&lt;/code&gt; build lists&lt;/p&gt;

&lt;pre&gt;&lt;code class="language-lisp"&gt;&amp;gt; (cons 'a '(b c d))

(A B C D)&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;上述例子第二个实参是一个 list . &lt;/p&gt;

&lt;p&gt;list 是将几个元素加到 &lt;code&gt;nil&lt;/code&gt; 空表的快捷方式, 如&lt;/p&gt;

&lt;pre&gt;&lt;code class="language-lisp"&gt;&amp;gt; (cons 'a (cons 'b nil))

(A B)
&amp;gt; (list 'a 'b)

(A B)&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&lt;code&gt;car&lt;/code&gt; 返回 list 的第一个元素, &lt;code&gt;cdr&lt;/code&gt; 返回第一个元素之后的所有元素, 如&lt;/p&gt;

&lt;pre&gt;&lt;code class="language-lisp"&gt;&amp;gt; (car '(a b c))

A
&amp;gt; (cdr '(a b c))

(B C)&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;取第三个元素有两种方法, 如&lt;/p&gt;

&lt;pre&gt;&lt;code class="language-lisp"&gt;&amp;gt; (car (cdr (cdr '(a b c d))))

C
&amp;gt; (third '(a b c d))

C&lt;/code&gt;&lt;/pre&gt;

&lt;h3&gt;Truth &lt;/h3&gt;

&lt;h4&gt;True and False&lt;/h4&gt;
&lt;p&gt;symbol &lt;code&gt;t&lt;/code&gt; 表示逻辑真的默认值. 它是一个 symbol, 因此它会自身求值. 逻辑假由 &lt;code&gt;nil&lt;/code&gt;
来表示.&lt;/p&gt;

&lt;p&gt;The function &lt;code&gt;listp&lt;/code&gt; returns true if its argument is a list:&lt;/p&gt;

&lt;pre&gt;&lt;code class="language-lisp"&gt;&amp;gt; (listp '(a b c))

T
&amp;gt; (listp 2)

NIL&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;像 &lt;code&gt;listp&lt;/code&gt; 这样返回结果为真或假的函数, 称为 predicate, 这类函数通常以 p 结尾.&lt;/p&gt;

&lt;p&gt;The function &lt;code&gt;null&lt;/code&gt; returns true of the empty list. The function &lt;code&gt;not&lt;/code&gt; returns
true if its argument is false. 如&lt;/p&gt;

&lt;pre&gt;&lt;code class="language-lisp"&gt;&amp;gt; (null nil)

T
&amp;gt; (not nil)

T&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;上述例子中, 第一个 &lt;code&gt;nil&lt;/code&gt; 表示 empty list, 因此返回 True. 第二个 &lt;code&gt;nil&lt;/code&gt; 表示逻辑假,
因此返回 True. 但由于 &lt;code&gt;nil&lt;/code&gt; 既可表示 empty list, 也可表示逻辑假, 因此上述两个表
达式在功能上等价的. &lt;/p&gt;

&lt;h4&gt;if &lt;/h4&gt;

&lt;pre&gt;&lt;code class="language-lisp"&gt;&amp;gt; (if (listp '(a b c))
      (+ 1 2)
      (+ 5 6))

3
&amp;gt; (if (listp 2)
      (+ 1 2)
      (+ 5 6))

11&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;if 函数的第一个参量是 test 表达式, 即要判断真假的对象. 第二个 then 表达式. 第三
个是 else 表达式, 是可选参数, 默认是 &lt;code&gt;nil&lt;/code&gt; . 如&lt;/p&gt;

&lt;pre&gt;&lt;code class="language-lisp"&gt;&amp;gt; (if (listp 27)
      (+ 1 2))

NIL&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;除了 &lt;code&gt;nil&lt;/code&gt; 以外的所有东西, 都视为 True, 如&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-lisp"&gt;&amp;gt; (if 27 1 2)

1&lt;/code&gt;&lt;/pre&gt;

&lt;h4&gt;AND and OR&lt;/h4&gt;

&lt;p&gt;逻辑与, 或. &lt;code&gt;and&lt;/code&gt; , 求到第一个为 False 后, 就不对后面的表达式求值了, 直接返回
&lt;code&gt;nil&lt;/code&gt; 如果所有值为真, 那么它就会返回最后一个参数(而不是返回 True). 也就是说它比
较懒, 知道结果了, 就不继续求值了. 
. or 运算时, 有一个 False 后, 就不对后面的表达式求值了.&lt;/p&gt;

&lt;pre&gt;&lt;code class="language-lisp"&gt;&amp;gt; (and t (+ 1 2))

3&lt;/code&gt;&lt;/pre&gt;

&lt;h3&gt;Functions&lt;/h3&gt;

&lt;p&gt;定义 function, 第一个实参是函数名字, 第二个是用列表表示的参数, 第三个是一个或多
个组成函数体的表达式. 如&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-lisp"&gt;&amp;gt; (and t (+ 1 2))

3
&amp;gt; (defun our-third (x)
   (car (cdr (cdr x))))

OUR-THIRD
&amp;gt; (our-third '(a b c d e f))

C&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;又如&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-lisp"&gt;&amp;gt; (defun sum-greater (x y z)
   (&amp;gt; (+ x y) z))

SUM-GREATER
&amp;gt; (sum-greater 1 4 3)

T
&amp;gt; (sum-greater 2 5 9)

NIL&lt;/code&gt;&lt;/pre&gt;

&lt;h3&gt;Recursion&lt;/h3&gt;

&lt;p&gt;下面的函数是递归的一个例子&lt;/p&gt;

&lt;pre&gt;&lt;code class="language-lisp"&gt;&amp;gt; (defun our-member (obj lst)
   (if (null lst)
       nil
   (if (eql (car lst) obj)
       lst
       (our-member obj (cdr lst)))))

OUR-MEMBER
&amp;gt; (our-member 'b '(a b c))

(B C)
&amp;gt; (our-member 'z '(a b c))

NIL&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;函数 &lt;code&gt;our-member&lt;/code&gt; 用来判断 &lt;code&gt;obj&lt;/code&gt; 是否是列表 &lt;code&gt;lst&lt;/code&gt; 中的成员.&lt;/p&gt;

&lt;p&gt;首先判断 &lt;code&gt;lst&lt;/code&gt; 是否为空, 如果为空, 那当然就返回 &lt;code&gt;nil&lt;/code&gt; . 如果不空, 那么就用函数
&lt;code&gt;eql&lt;/code&gt; 判断 &lt;code&gt;lst&lt;/code&gt; 的第一个成员是否与 &lt;code&gt;obj&lt;/code&gt; 相同, 相同的话输出当前的 &lt;code&gt;lst&lt;/code&gt; , 如果
不同, 只有当 &lt;code&gt;obj&lt;/code&gt; 是其它列表成员时, 它才可能是 &lt;code&gt;lst&lt;/code&gt; 的成员, 于是就就递归调用,
并把除掉第一个成员后的 &lt;code&gt;lst&lt;/code&gt; 传递给递归调用的自己. &lt;/p&gt;

&lt;h3&gt;Input and Output&lt;/h3&gt;

&lt;h4&gt;output&lt;/h4&gt;

&lt;p&gt;common lisp 最普遍的输出函数是 &lt;code&gt;format&lt;/code&gt; . 第一个实参是输出到哪里, &lt;code&gt;t&lt;/code&gt; 表示默认的
的地方. 第二个实参是字符模板, 剩下的实参是要插入到模板的对象. 如&lt;/p&gt;

&lt;pre&gt;&lt;code class="language-lisp"&gt;&amp;gt; (format t "~A plus ~A equals ~A. ~%" 2 3 (+ 2 3))
2 plus 3 equals 5. 
NIL&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&lt;code&gt;~A&lt;/code&gt; 表示被填入的位置, &lt;code&gt;~%&lt;/code&gt; 表示换行.&lt;/p&gt;

&lt;h4&gt;input&lt;/h4&gt;

&lt;pre&gt;&lt;code class="language-lisp"&gt;&amp;gt; (defun askem (string)
   (format t "~A" string)
   (read))

ASKEM
&amp;gt; (askem "How old are you?")
How old are you?15

15&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;这个函数首先输出参量 &lt;code&gt;string&lt;/code&gt; , 返回通过 &lt;code&gt;read&lt;/code&gt; 输入得到的值. 当函数 &lt;code&gt;read&lt;/code&gt; 没有
实参时, 它会读取默认的位置. 函数 &lt;code&gt;askem&lt;/code&gt; 有两个表达式, 它会返回最后一个表达式的
值. &lt;/p&gt;

&lt;h3&gt;Variables&lt;/h3&gt;

&lt;h4&gt;local variable&lt;/h4&gt;

&lt;p&gt;&lt;code&gt;let&lt;/code&gt; 可以引入局部变量, 如&lt;/p&gt;

&lt;pre&gt;&lt;code class="language-lisp"&gt;&amp;gt; (let ((x 1) (y 2))
     (+ x y))

3&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;上述例子分别把 &lt;code&gt;1&lt;/code&gt; 和 &lt;code&gt;2&lt;/code&gt; 赋值给 &lt;code&gt;x&lt;/code&gt; 和 &lt;code&gt;y&lt;/code&gt; , 赋值只在 &lt;code&gt;let&lt;/code&gt; 函数值内有效. 之后
是表达式, 求值的结果作为 &lt;code&gt;let&lt;/code&gt; 的返回值.&lt;/p&gt;

&lt;pre&gt;&lt;code class="language-lisp"&gt;&amp;gt;  (defun ask-number ()
   (format t "Please enter a number. ")
   (let ((val (read)))
     (if (numberp val)
         val
          (ask-number))))

ASK-NUMBER
&amp;gt; (ask-number)
Please enter a number. a
Please enter a number. (ho hum)
Please enter a number. 19&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&lt;code&gt;numberp&lt;/code&gt; 是一个 predicate, 判断是否是一个数. 这也是递归调用的一个例子.&lt;/p&gt;

&lt;h4&gt;global variable&lt;/h4&gt;

&lt;p&gt;由 &lt;code&gt;defparameter&lt;/code&gt; 来定义全局变量, 由 &lt;code&gt;defconstant&lt;/code&gt; 定义全局常量, 由 &lt;code&gt;boundp&lt;/code&gt; 判
断某个符号是否为一个全局变量或常量. 如&lt;/p&gt;

&lt;pre&gt;&lt;code class="language-lisp"&gt;&amp;gt; (defparameter *glob* 99)

*GLOB*
&amp;gt; (defconstant limit (+ *glob* 1))

LIMIT
&amp;gt; (boundp '*glob*)

T&lt;/code&gt;&lt;/pre&gt;

&lt;h3&gt;Assignment &lt;/h3&gt;

&lt;p&gt;&lt;code&gt;setf&lt;/code&gt; 来给变量赋值. 如&lt;/p&gt;

&lt;pre&gt;&lt;code class="language-lisp"&gt;&amp;gt; (setf *glob* 98)

98
&amp;gt; (let ((n 10))
    (setf n 2)
    n)

2&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;如果一个 symbol 不是局部变量的名字, 那么 &lt;code&gt;setf&lt;/code&gt; 把这个 symbol 设置为全局变量. 如&lt;/p&gt;

&lt;pre&gt;&lt;code class="language-lisp"&gt;&amp;gt; (setf x (list 'a 'b 'c))

(A B C)&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;也就是说 &lt;code&gt;setf&lt;/code&gt; 也可以用来创建全局变量, 不过还是推荐用 &lt;code&gt;defparameter&lt;/code&gt; 来创建, 这
样比较明确.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;setf&lt;/code&gt; 还有一个用法. 第一个实参可以是表达式, 这样第二个实参直接传给表达式中. 如&lt;/p&gt;

&lt;pre&gt;&lt;code class="language-lisp"&gt;&amp;gt; (setf (car x) 'n)

N
&amp;gt; x

(N B C)&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;以下两种表达方式是等价的&lt;/p&gt;

&lt;pre&gt;&lt;code class="language-lisp"&gt;&amp;gt; (setf a 'b
        c 'd
        e 'f)

F
&amp;gt; a

B
&amp;gt; c

D
&amp;gt; e

F&lt;/code&gt;&lt;/pre&gt;

&lt;pre&gt;&lt;code class="language-lisp"&gt;&amp;gt; (setf a 'b)

B
&amp;gt; (setf c 'd)

D
&amp;gt; (setf e 'f)

F&lt;/code&gt;&lt;/pre&gt;

&lt;h3&gt;Functional Programming&lt;/h3&gt;

&lt;p&gt;Lisp 的主流范式是函数式编程. 中心思想是: 执行一个函数是得到它的返回值. 如&lt;/p&gt;

&lt;pre&gt;&lt;code class="language-lisp"&gt;&amp;gt; (setf lst '(c a r a t))

(C A R A T)
&amp;gt; (remove 'a lst)

(C R T)
&amp;gt; lst

(C A R A T)&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&lt;code&gt;remove&lt;/code&gt; 函数是移除列表中的指定元素. 但只是返回移除之后的结果, 原来的列表还是原
来的列表. 如果真的想要移除, 可以如下操作&lt;/p&gt;

&lt;pre&gt;&lt;code class="language-lisp"&gt;&amp;gt; (setf lst (remove 'a lst))

(C R T)&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;函数式编程意味着避免使用如 &lt;code&gt;setf&lt;/code&gt; 一样的函数. 它的优点之一是允许 interactive
testing. &lt;/p&gt;

&lt;h3&gt;Iteration&lt;/h3&gt;

&lt;p&gt;如&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-lisp"&gt;&amp;gt; (defun show-squares (start end)
    (do ((i start (+ i 1)))
        ((&amp;gt; i end) 'done)
      (format t "~A ~A~%" i (* i i)))) 

SHOW-SQUARES
&amp;gt; (show-squares 2 5)
2 4
3 9
4 16
5 25
DONE&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&lt;code&gt;do&lt;/code&gt; 的第一个表达式是 &lt;code&gt;(variable initial update)&lt;/code&gt; , 标明变量 &lt;code&gt;i&lt;/code&gt; , 初值, 更新规
则. 第二个表达式是结束的条件. 剩下的是循环体.&lt;/p&gt;

&lt;p&gt;上述函数也可以用递归来写, 但是不太自然&lt;/p&gt;

&lt;pre&gt;&lt;code class="language-lisp"&gt;&amp;gt; (defun show-squares (i end)
     (if (&amp;gt; i end)
       'done
       (progn
         (format t "~A ~A~%" i (* i i))
         (show-squares (+ i 1) end))))

SHOW-SQUARES
&amp;gt; (show-squares 2 5)
2 4
3 9
4 16
5 25
DONE&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;新的函数 &lt;code&gt;progn&lt;/code&gt; 接受任意数量的表达式, 依次求值, 并返回最后一个表达式的值.&lt;/p&gt;

&lt;p&gt;用 &lt;code&gt;dolist&lt;/code&gt; 来遍历列表元素会更加简单&lt;/p&gt;

&lt;pre&gt;&lt;code class="language-lisp"&gt;&amp;gt; (defun our-length (lst)
    (let ((len 0))
      (dolist (obj lst)
        (setf len (+ len 1)))
     len))

OUR-LENGTH
&amp;gt; (our-length (list 'a 'b 'c))

3&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;上述例子的递归版本为&lt;/p&gt;

&lt;pre&gt;&lt;code class="language-lisp"&gt;&amp;gt; (defun our-length (lst)
    (if (null lst)
        0
        (+ (our-length (cdr lst)) 1)))

OUR-LENGTH
&amp;gt; (our-length (list 'a 'b 'c 'd))

4
&amp;gt; (our-length 'nil)

0
&amp;gt; (our-length '(a b c))          

3&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;它更容易理解, 但由于不是 tail-recursive 的形式, 效率不是那么高.&lt;/p&gt;

&lt;h3&gt;Functions as Objects&lt;/h3&gt;

&lt;p&gt;&lt;code&gt;function&lt;/code&gt; 是一个特殊的操作符号, 如果把函数的名字传给function, 它会返回相关关联
的对象, 如&lt;/p&gt;

&lt;pre&gt;&lt;code class="language-lisp"&gt;&amp;gt; (function +)

#&amp;lt;compiled-function + 0x55e01ee95b10&amp;gt;&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&lt;code&gt;#'&lt;/code&gt; (sharp-quote)作为 function 的缩写, 如&lt;/p&gt;

&lt;pre&gt;&lt;code class="language-lisp"&gt;&amp;gt; #' +

#&amp;lt;compiled-function + 0x55e01ee95b10&amp;gt;&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&lt;code&gt;apply&lt;/code&gt; 可以接受函数作为第一个实参, 第二个列表作为函数的实参. 如&lt;/p&gt;

&lt;pre&gt;&lt;code class="language-lisp"&gt;&amp;gt; (apply #'+ '(1 2 3))

6&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&lt;code&gt;funcall&lt;/code&gt; 做相同的事情, 但不需要把实参包装成列表&lt;/p&gt;

&lt;pre&gt;&lt;code class="language-lisp"&gt;&amp;gt; (funcall #'+ 1 2 3)

6&lt;/code&gt;&lt;/pre&gt;

&lt;h4&gt;lambda&lt;/h4&gt;

&lt;p&gt;&lt;code&gt;lambda&lt;/code&gt; 不是一个操作符, 而只是一个符号. 早期由于函数在内部是用列表表示的, 因此
将函数的第一个元素标记为 &lt;code&gt;lambda&lt;/code&gt; 加以区分. 如&lt;/p&gt;

&lt;pre&gt;&lt;code class="language-lisp"&gt;&amp;gt; (lambda (x) (+ x 100))

#&amp;lt;bytecompiled-function 0x55726dfbe0f0&amp;gt;&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;(书上说现在可以省略 &lt;code&gt;lambda&lt;/code&gt; , 但是我这里省略了会报错, 或许我的版本不够新?)&lt;/p&gt;

&lt;p&gt;&lt;code&gt;lambda&lt;/code&gt; 表达式是一个列表, 包含符号 &lt;code&gt;lambda&lt;/code&gt; , 接着是形参列表, 以及由零个或多个
表达式所组成的函数体. 如&lt;/p&gt;

&lt;pre&gt;&lt;code class="language-lisp"&gt;&amp;gt; (lambda (x y))

#&amp;lt;bytecompiled-function 0x5652ca53c0f0&amp;gt;
&amp;gt; (lambda (x y)
    (+ x y))

#&amp;lt;bytecompiled-function 0x5652ca53c050&amp;gt;
&amp;gt; ((lambda (x) (+ x 100)) 1)

101
&amp;gt; (funcall #'(lambda (x) (+ x 100)) 
          1) 

101&lt;/code&gt;&lt;/pre&gt;

&lt;h3&gt;Types&lt;/h3&gt;

&lt;p&gt;变量没有类型, 数值才有类型, 且可有多个类型. 如 &lt;code&gt;27&lt;/code&gt; 的类型, 依普遍性增加顺序为
&lt;code&gt;fixnum&lt;/code&gt; , &lt;code&gt;integer&lt;/code&gt; , &lt;code&gt;rational&lt;/code&gt; , &lt;code&gt;real&lt;/code&gt; , &lt;code&gt;number&lt;/code&gt; , &lt;code&gt;atom&lt;/code&gt; , &lt;code&gt;t&lt;/code&gt; . &lt;code&gt;t&lt;/code&gt; 是所
有类型的 supertype, 所以每个对象都属于 &lt;code&gt;t&lt;/code&gt; 类型. 如用 &lt;code&gt;typep&lt;/code&gt; 来判断某个数值是否
为某个类型&lt;/p&gt;

&lt;pre&gt;&lt;code class="language-lisp"&gt;&amp;gt; (typep 27 'integer)

T
&amp;gt; (typep 27 't)

T
&amp;gt; (typep 27 'rational)

T
&amp;gt; (typep 27 'fixnum)

T&lt;/code&gt;&lt;/pre&gt;

&lt;h2&gt;...&lt;/h2&gt;

&lt;p&gt;赶在因疫情突然决定明天回家之前整理完此篇. 不禁感叹世事无常, 还是要好好珍惜眼前的
人和事啊! &lt;/p&gt;

&lt;h2&gt;Elisp&lt;/h2&gt;

&lt;h3&gt;Hello wolrd&lt;/h3&gt;

&lt;p&gt;elisp 要在 emacs 中执行. 一个 hello world 的例子. 在 emacs 中 &lt;code&gt;M-x&lt;/code&gt;
&lt;code&gt;lisp-interaction-mode&lt;/code&gt; 切换到 lisp 交互主模式, 写入 &lt;/p&gt;

&lt;pre&gt;&lt;code class="language-elisp"&gt;(message "hello world")&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;光标切到行尾, &lt;code&gt;C-j&lt;/code&gt; 即可运行. 另外也可以在 &lt;code&gt;org-mode&lt;/code&gt; 中, 插入 &lt;code&gt;elisp&lt;/code&gt; 代码块,
然后 &lt;code&gt;C-c&lt;/code&gt; &lt;code&gt;C-c&lt;/code&gt; 运行. (原 org 文件可以显示结果, hexo 不渲染执行结果) .&lt;/p&gt;

&lt;pre&gt;&lt;code class="language-elisp"&gt;(message "hello world")&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;#+RESULTS:
: hello world&lt;/p&gt;

&lt;h3&gt;Doc string&lt;/h3&gt;

&lt;p&gt;函数可以加 doc string, 将光标移到函数上, 用 &lt;code&gt;C-h&lt;/code&gt; &lt;code&gt;f&lt;/code&gt; 查看. 如 &lt;/p&gt;

&lt;pre&gt;&lt;code class="language-elisp"&gt;(defun hello-world (name)
"Say hello to user whose name is NAME"
(message "Hello, %s!" name))

(hello-world 'Emacser)&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;#+RESULTS:
: Hello, Emacser!&lt;/p&gt;

&lt;p&gt;变量也可以加 doc string, 可用 &lt;code&gt;C-h&lt;/code&gt;  &lt;code&gt;v&lt;/code&gt; 查看. 如声明变量&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-elisp"&gt;(defvar foo "I'm foo!"
  "A demo variable")
foo&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;#+RESULTS:
: I'm foo&lt;/p&gt;

&lt;h3&gt;Some functions&lt;/h3&gt;

&lt;p&gt;函数 &lt;code&gt;eq&lt;/code&gt; 用来判断变量是否为某个值. 如( &lt;code&gt;elisp&lt;/code&gt; 和 &lt;code&gt;lisp&lt;/code&gt; 语法还是有些不同, 如
&lt;code&gt;format&lt;/code&gt; ) &lt;/p&gt;

&lt;pre&gt;&lt;code class="language-elisp"&gt;(defun eq-example()
  "A demo for function eq"
  (let ((a 1) (b 'x)) 
   (format "%s, %s, %s, %s" 
    (eq a 1) (eq a 2) (eq b 'x) (eq b 'y))))

(eq-example)&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;#+RESULTS:
: t, nil, t, nil&lt;/p&gt;


&lt;pre&gt;&lt;code class="language-elisp"&gt;system-type&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;#+RESULTS:
: gnu/linux&lt;/p&gt;



&lt;h2&gt;Reference&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Book: ANSI Common LISP by Paul Graham (z-lib.org)&lt;/li&gt;
&lt;li&gt;https://acl.readthedocs.io/en/latest/zhCN/ch2-cn.html&lt;/li&gt;
&lt;li&gt;http://smacs.github.io/elisp/01-hello-world.html&lt;/li&gt;
&lt;li&gt;https://www.emacswiki.org/emacs/&lt;/li&gt;
&lt;/ul&gt;
</content><category term="软件使用"/><category term="lisp"/><category term="emacs"/></entry><entry><title>Radial symmetric potential and special functions summary(update 28/Feb/2021)</title><link href="https://zqw.ink/2021-01-18-physics-radial_symmetric_potential.html" rel="alternate"/><published>2021-01-18T00:00:00+08:00</published><updated>2021-01-18T00:00:00+08:00</updated><author><name>ZQW</name></author><id>tag:zqw.ink,2021-01-18:/2021-01-18-physics-radial_symmetric_potential.html</id><summary type="html">
&lt;h2&gt;SO(3) Symmetric potential&lt;/h2&gt;

&lt;p&gt;粒子在具有 SO(3) 球对称性的势中运动的定态 Schrodinger 方程为&lt;/p&gt;

$$\begin{align}
  \left( -\frac{\hbar^2}{2\mu} \nabla^2 + V(r) \right)\psi(\vec{r}) = E \psi(\vec{r})
\end{align}$$

&lt;p&gt;其 …&lt;/p&gt;</summary><content type="html">
&lt;h2&gt;SO(3) Symmetric potential&lt;/h2&gt;

&lt;p&gt;粒子在具有 SO(3) 球对称性的势中运动的定态 Schrodinger 方程为&lt;/p&gt;

$$\begin{align}
  \left( -\frac{\hbar^2}{2\mu} \nabla^2 + V(r) \right)\psi(\vec{r}) = E \psi(\vec{r})
\end{align}$$

&lt;p&gt;其中 $\nabla^2$ 为&lt;/p&gt;

$$\begin{align}
  \nabla^2 = \frac{\partial^2}{\partial r^2} + \frac{2}{r} \frac{\partial}{\partial r} - \frac{1}{r^2} \frac{\hat{L}^2}{\hbar^2}
\end{align}$$

&lt;p&gt;SO(3) 群有 $2l + 1$ 维的不可约表示. 由不可约表示的维度, 可得出它的能级至少有
$2l + 1$ 重的简并. $Y_{l,m}(\theta, \phi)$ 给出了 $SO(3)$ 群的所有不可约表示. 波函数可
以写成&lt;/p&gt;

$$\begin{align}
\psi(\vec{r}) = f_l(r) Y_{l,m} (\theta, \phi)
\end{align}$$

&lt;p&gt;其中 $Y_{l,m}(\theta, \phi)$ 满足&lt;/p&gt;

$$\begin{align}
\hat{\Pi} Y_{l,m}(\theta, \phi) = ( - 1)^l Y_{l,m}(\theta, \phi)
\end{align}$$

&lt;p&gt;代回原来的方程有&lt;/p&gt;

$$\begin{align}
\left[ -\frac{\hbar^2}{2\mu}\left(
        \frac{\mathrm{d}^2}{\mathrm{d}r^2} + \frac{2}{r} \frac{\mathrm{d}}{\mathrm{d}r} \right)
       + \frac{l(l + 1)}{r^2} \frac{\hbar^2}{2\mu} + V(r)
\right] f_l (r) = E f_l (r)
\end{align}$$

&lt;p&gt;如果做代换&lt;/p&gt;

$$\begin{align}
  \psi(\vec{r}) = \frac{\phi_l(r)}{r} Y_{l,m}(\theta, \phi)
\end{align}$$

&lt;p&gt;那么径向的方程就等价成了一个一维问题&lt;/p&gt;

$$\begin{align}
  \left( -\frac{\hbar^2}{2\mu}\frac{\mathrm{d}^2}{\mathrm{d}r^2}
   + \frac{l(l + 1)}{r^2} \frac{\hbar^2}{2\mu} + V(r) \right) \phi_l(r) = E \phi_l(r)
\end{align}$$

&lt;p&gt;不用说, 径向方程是正交归一的, 也可以验证&lt;/p&gt;

$$\begin{align}
  \langle \psi_{l,m} | \psi_{l', m'} \rangle = \delta_{l,l'} \delta_{m, m'} \int_0^{\infty} r^2 \mathrm{d}r\cdot
   \frac{\phi_l^{ * }(r)}{r} \frac{\phi_{l'}(r)}{r}
  = \delta_{l,l'} \delta_{m, m'} \int_0^{\infty} \mathrm{d}r\cdot
   \phi_l^{ * }(r) \phi_{l'}(r)
\end{align}$$


&lt;h2&gt;Boundary Condition&lt;/h2&gt;

&lt;p&gt;假设 $\phi$ 在 $r \to 0$ 时的行为为 $r^{\alpha}$ . 如果 $V(r)$ 趋于 $0$ 的速度比
$r^{-2}$ 要慢, 那么将 $\phi_l (r) \propto r^{\alpha}$ 代回径向方程就可以得到&lt;/p&gt;

$$\begin{align}
  -\frac{\mathrm{d}^2}{\mathrm{d}r^2} + l(l + 1) r^{\alpha - 2} = k^2 r^{\alpha} \\
  \left[ - \alpha(\alpha - 1) + l(l + 1)\right] r^{\alpha - 2} = k^2r^a
\end{align}$$

&lt;p&gt;等式右边相对于左边在 $r\to 0$ 时可以忽略, 可得 $\alpha = l + 1$ 或者 $\alpha = - l$ . 但
$\alpha = -l $ 时, $\psi\propto r^{-l-1}$ 会使得波函数发散, 无法归一化, 因此&lt;/p&gt;

$$\begin{align}
  \phi_l(0) = 0 \quad\mathrm{for}\quad  \mathrm{all} \quad l\\
  \phi_l(r) \propto r^{l+1} \quad \mathrm{for} \quad r \to 0
\end{align}$$


&lt;h2&gt;Radially Symmetric Harmonic Oscillator&lt;/h2&gt;

&lt;p&gt;此时的势能为&lt;/p&gt;

$$\begin{align}
  V(r) = \frac{\mu}{2} \omega^2 r^2
\end{align}$$

&lt;p&gt;由于 $r \to \infty$ 时, $V(r) \to \infty$ , 所以解只存在 bound states&lt;/p&gt;

$$\begin{align}
E_{n, l} = \left( 2n + l +\frac{3}{2} \right)\hbar\omega
\end{align}$$

&lt;p&gt;波函数是 generalized Laguerre $L_n^{\alpha}(x)$ 多项式的形式&lt;/p&gt;

$$\begin{align}
\phi_{n, l} = 2(\sqrt{\pi}\beta)^{-1/2} \left[ \frac{2^{n + l} n!}{(2n + 2l + 1)!!} \right]
  \left( \frac{r}{\beta} \right)^{l+1} L_n^{l + 1/2} \left(\frac{r^2}{\beta^2}\right) e^{-\frac{r^2}{2\beta^2}}
\end{align}$$

&lt;p&gt;其中&lt;/p&gt;

$$\begin{align}
  \beta = \sqrt{\frac{\hbar}{\mu\omega}}
\end{align}$$


&lt;h2&gt;Short ranged&lt;/h2&gt;

&lt;p&gt;短程力, 也就是说当 $r &gt; r_0$ 时, $V(r) = 0$&lt;/p&gt;

&lt;h3&gt;Bound states&lt;/h3&gt;

&lt;p&gt;当 $E &lt; 0$ 时, 在 $r &gt; r_0$ 处的解为 modified Bessel functions, 舍去发散的解, 只
剩下&lt;/p&gt;

$$\begin{align}
  \phi_-(r) = \sqrt{\kappa r} K_{l+1/2}(\kappa r)
\end{align}$$

&lt;p&gt;如果在 $r &gt; r_0$ 处为 Coulomb 势, 也就是&lt;/p&gt;

$$\begin{align}
V(r) = - \frac{C}{r}, \quad r &gt; r_0
\end{align}$$

&lt;p&gt;那么它在 $r &gt; r_0$ 处的解是 Whittaker functions&lt;/p&gt;

$$\begin{align}
  \phi_-(r) = W_{\gamma, l+1/2}(2 \kappa r)
\end{align}$$

&lt;p&gt;其中 $\gamma = \frac{\mu C}{\hbar^2\kappa}$&lt;/p&gt;

&lt;h3&gt;Unbound states&lt;/h3&gt;

&lt;p&gt;当 $E &gt; 0$ 时, 在 $r &gt; r_0$ 处的解有两个, 是 Spherical Bessel 和 Neumann
functions&lt;/p&gt;

$$\begin{align}
\phi_s(r) = k r j_l(kr) \\
\phi_c(r) = kr n_l(kr)
\end{align}$$

&lt;p&gt;它们的渐近行为为&lt;/p&gt;

$$\begin{align}
\phi_s(r) = \sin \left(kr - \frac{l \pi}{2} \right) \left[ 1 + \mathcal{O}\left( \frac{1}{r} \right) \right] \\
\phi_c(r) = \cos \left(kr - \frac{l \pi}{2} \right) \left[ 1 + \mathcal{O}\left( \frac{1}{r} \right) \right]
\end{align}$$

&lt;p&gt;可以写成相移的形式&lt;/p&gt;

$$\begin{align}
  \phi(r) \propto \sin \left( kr - \frac{l\pi}{2} + \delta_l \right)
\end{align}$$

&lt;p&gt;相称表征了波函数相对于 regular 解的 shift.
如果在 $r &gt; r_0$ 处为 Coulomb 势, 也就是&lt;/p&gt;

$$\begin{align}
V(r) = - \frac{C}{r}, \quad r &gt; r_0
\end{align}$$

&lt;p&gt;那么对应的结果为 regular Coulomb function 和 irregular Coulomb function&lt;/p&gt;

$$\begin{align}
\phi_s(r) = F_l(\eta, kr) \\
\phi_c(r) = G_l(\eta, kr), \quad r &gt; r_0
\end{align}$$

&lt;p&gt;其中&lt;/p&gt;

$$\begin{align}
\eta = - \frac{\mu C}{\hbar^2 k}
\end{align}$$

&lt;p&gt;渐近行为为&lt;/p&gt;

$$\begin{align}
F_l(\eta, kr) \to \sin\left( kr - \eta \ln 2kr - \frac{l\pi}{2} + \sigma_l \right),\quad \mathrm{for} \quad r\to\infty \\
G_l(\eta, kr) \to \cos\left( kr - \eta \ln 2kr - \frac{l\pi}{2} + \sigma_l \right),\quad \mathrm{for} \quad r\to\infty
\end{align}$$

&lt;p&gt;类似地, 也可以写成相移的形式.&lt;/p&gt;

&lt;h2&gt;Reference&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Harald Siegfried Friedrich, Theoretical Atomic Physics-Springer (2005) Chap 1.2, 1.3&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;后记&lt;/h2&gt;

&lt;p&gt;昨天返校, 今天终于把从上学期就想整理的东西草草整理了.&lt;/p&gt;


</content><category term="专业笔记"/><category term="symmetric potential"/><category term="special functions"/><category term="summary"/></entry><entry><title>python 并行的简单例子</title><link href="https://zqw.ink/2021-01-13-coding-multiprocessor.html" rel="alternate"/><published>2021-01-13T00:00:00+08:00</published><updated>2021-01-13T00:00:00+08:00</updated><author><name>ZQW</name></author><id>tag:zqw.ink,2021-01-13:/2021-01-13-coding-multiprocessor.html</id><summary type="html">

&lt;pre&gt;&lt;code class="language-python"&gt;import multiprocessing as mp
import time
import functools
import numpy as np
import matplotlib.pyplot as plt

def timer(func):
    """
    Print the runtime of the decorated function.
    参考自: https://realpython.com/primer-on-python-decorators/
    """
    @functools.wraps(func)
    def wrapper_timer(*args, **kwargs):
        start_time = time.perf_counter()
        value = func(*args, **kwargs)
        end_time = time …&lt;/code&gt;&lt;/pre&gt;</summary><content type="html">

&lt;pre&gt;&lt;code class="language-python"&gt;import multiprocessing as mp
import time
import functools
import numpy as np
import matplotlib.pyplot as plt

def timer(func):
    """
    Print the runtime of the decorated function.
    参考自: https://realpython.com/primer-on-python-decorators/
    """
    @functools.wraps(func)
    def wrapper_timer(*args, **kwargs):
        start_time = time.perf_counter()
        value = func(*args, **kwargs)
        end_time = time.perf_counter()
        run_time = end_time - start_time
        print(f"Finished {func.__name__!r} in {run_time:.14f} secs")
        return value
    return wrapper_timer


def foo(x):
    '''
    测试函数, 简单地计算 sin(x), 重复 1e5 次
    '''
    for i in range(int(1e5)):
        a = np.sin(x)    
    a = np.sin(x)
    return a

n = int(96)
x = np.linspace(0, 10, n)

@timer
def loop_single_processing(x, n):
    y_l_s_p = np.zeros(n)
    for i in range(n):
        # 单核运行 n 次 foo(x) 函数
        y_l_s_p[i] = foo(x[i])
    y_l_s_p = foo(x)
    return y_l_s_p

@timer
def loop_multi_processing(x, n):
    pool = mp.Pool()
    y_m_s_p = pool.map(foo, x)
    pool.close()
    pool.join()
    return np.array(y_m_s_p)
    

lsp = loop_single_processing(x, n)
lmp = loop_multi_processing(x, n)

plt.plot(x, lsp, '.', label='loop single processing')
plt.plot(x, lmp+1, '.', label='loop multi processing')
plt.legend()
plt.savefig('fig.png')
plt.show()&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;结果
file:./2021-01-13-coding-multiprocessor/fig.png&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-python"&gt;Finished 'loop_single_processing' in 9.28632830292918 secs
Finished 'loop_multi_processing' in 3.00595757691190 secs&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;code: &lt;a href='./2021-01-13-coding-multiprocessor/mp.py'&gt;./2021-01-13-coding-multiprocessor/mp.py&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;从结果上看, 串行与并行当然给出相同的结果. 电脑上有 8 核, 但速度只提升了约 3 倍,
而不是 8 倍, 是核之间的任务分配与数据交换耗时还是我的程序有问题, 目前并不清楚.&lt;/p&gt;
</content><category term="软件使用"/><category term="python"/></entry><entry><title>如何将 python 程序打包成一个 package</title><link href="https://zqw.ink/2021-01-13-coding-setup_tools.html" rel="alternate"/><published>2021-01-13T00:00:00+08:00</published><updated>2021-01-13T00:00:00+08:00</updated><author><name>ZQW</name></author><id>tag:zqw.ink,2021-01-13:/2021-01-13-coding-setup_tools.html</id><summary type="html">
&lt;h2&gt;示例&lt;/h2&gt;
&lt;p&gt;一个简单的示例. 比如写了一个名为 saudade 的包. 目录结构为(用 tree 生成, 不错的程
序, 之前没用过)&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-shell"&gt;.
├── demo
│   └── __init__.py
├── saudade
│   ├── coding_func.py
│   ├── __init__.py
│   └── physics_func.py
└── setup …&lt;/code&gt;&lt;/pre&gt;</summary><content type="html">
&lt;h2&gt;示例&lt;/h2&gt;
&lt;p&gt;一个简单的示例. 比如写了一个名为 saudade 的包. 目录结构为(用 tree 生成, 不错的程
序, 之前没用过)&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-shell"&gt;.
├── demo
│   └── __init__.py
├── saudade
│   ├── coding_func.py
│   ├── __init__.py
│   └── physics_func.py
└── setup.py&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;直接执行&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-shell"&gt;python setup.py install --user&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;即可安装完成. &lt;code&gt;--user&lt;/code&gt; 安装给当前用户, 直接就放在 &lt;code&gt;~/.local/lib/python_xx&lt;/code&gt; 目录下
了, 不影响其它用户, 也不需要管理员权限.&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-shell"&gt;pip uninstall saudade&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;即可卸载.
当然也可以传到 github, 直接从 github 上安装.&lt;/p&gt;

&lt;h2&gt;结果&lt;/h2&gt;

&lt;p&gt;安装完以后就可以调用了. 如&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-python"&gt;&amp;gt;&amp;gt;&amp;gt; import saudade as sau
&amp;gt;&amp;gt;&amp;gt; @sau.timer
... def foo(x):
...     return x**2
... 
&amp;gt;&amp;gt;&amp;gt; foo(3)
Finished 'foo' in 0.0000 secs
9
&amp;gt;&amp;gt;&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;可以看出, 可以调用包的中计时器了.&lt;/p&gt;

&lt;p&gt;而 &lt;code&gt;demo&lt;/code&gt; 目录下的函数, 调用时要调用 demo , 如&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-python"&gt;&amp;gt;&amp;gt;&amp;gt; import demo
&amp;gt;&amp;gt;&amp;gt; demo.hello()
hello
&amp;gt;&amp;gt;&amp;gt;&lt;/code&gt;&lt;/pre&gt;

&lt;h2&gt;源码说明&lt;/h2&gt;

&lt;h3&gt;file:./2021-01-13-coding-setup_tools/setup.py&lt;/h3&gt;

&lt;pre&gt;&lt;code class="language-python"&gt;from setuptools import setup, find_packages
setup(
    name = 'saudade',
    version ='0.1',
    packages = find_packages(),
    description = "This is ZQW's first python package",
    author = 'ZQW',
    author_email = "zeqing6688@126.com",
)&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;此文件最重要, 它说明这个目录是一个包, 可以安装.&lt;/p&gt;

&lt;h3&gt;demo/file:./2021-01-13-coding-setup_tools/demo/__init__.py&lt;/h3&gt;
&lt;pre&gt;&lt;code class="language-python"&gt;def hello():
    print('hello')&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;这是一个测试函数&lt;/p&gt;

&lt;h3&gt;saudade/file:./2021-01-13-coding-setup_tools/saudade/coding_func.py&lt;/h3&gt;
&lt;pre&gt;&lt;code class="language-python"&gt;import numpy as np
#import matplotlib.pyplot as plt
import functools
import time

def timer(func):
    """
    Print the runtime of the decorated function.
    参考自: https://realpython.com/primer-on-python-decorators/
    """
    @functools.wraps(func)
    def wrapper_timer(*args, **kwargs):
        start_time = time.perf_counter()
        value = func(*args, **kwargs)
        end_time = time.perf_counter()
        run_time = end_time - start_time
        print(f"Finished {func.__name__!r} in {run_time:.4f} secs")
        return value
    return wrapper_timer

@timer
def get_data(parameters, func, x):
    '''
    计算画图所需要的点, 并将参数和结果保存到文件.
    由于自己写的这些函数不能输入数组然后输出数组, 所以只能用循环一个一个算
    '''
    num_points = len(x)
    y = []
    pm = parameters.get_parameters()

    # 计算每一个数据点
    for i in range(num_points):
        print(f"正在计算第 {i+1:d}/{num_points:d}个点...")
        yi = func(x[i])
        y.append(yi)

    # 保存数据和参数到文件
    np.savetxt('./data/x.csv', x, delimiter=',')
    np.savetxt('./data/y.csv', y, delimiter=',')
    np.savetxt('./data/paramaters.csv', pm, delimiter=',')
    return x, y, pm&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;code&gt;saudade&lt;/code&gt; 目录的名字与包的名字相同, 包含了包的主要内容. 此文件是包中的一些函数&lt;/p&gt;

&lt;h3&gt;saudade/&lt;a href='./2021-01-13-coding-setup_tools/saudade/__init__.py'&gt;./2021-01-13-coding-setup_tools/saudade/__init__.py&lt;/a&gt; &lt;/h3&gt;
&lt;pre&gt;&lt;code class="language-python"&gt;from .coding_func import *
from .physics_func import *&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;整个包的初始化位置.&lt;/p&gt;

&lt;h3&gt;saudade/&lt;a href='./2021-01-13-coding-setup_tools/saudade/physics_func.py'&gt;./2021-01-13-coding-setup_tools/saudade/physics_func.py&lt;/a&gt; &lt;/h3&gt;
&lt;pre&gt;&lt;code class="language-python"&gt;import numpy as np

def ts(f, a, b, n=51):
    """Tanh-sinh quadrature 方法. 适用于端点发散的情况."""
    up = 4
    h = 2*up / (n-1)
    t = np.linspace(-up, up, n, endpoint=True)
    x = np.tanh(1/2*np.pi*np.sinh(t))
    w = 1/2*h*np.pi*np.cosh(t)
    w = w/(np.cosh(1/2*np.pi*np.sinh(t))**2)
    gc = 0
    for i in range(n):
        p = (x[i]*(b-a) + a + b)/2
        gc = gc + f(p)*w[i]
    err = 0
    gc = gc * (b-a)/2
    return gc, err

def bose(beta, energy):
    """Bose 分布函数"""
    x = -beta * energy
    return np.exp(x) / (1 - np.exp(x))

def cos_theta_kq(theta_k, phi_k, theta_q, phi_q):
    """k, q 夹角的余弦值"""
    x = (np.sin(theta_k)*np.sin(theta_q) * np.cos(phi_k - phi_q) 
            + np.cos(theta_k)*np.cos(theta_q))
    return x

class PrincipalValueInt():
    """分母带有无穷小的那种积分"""
    def __init__(self, numerator, coeff, down_bound, upbound):
        """初始化, numerator 都是函数. 分母为 a*x**2 + b*x + c"""
        self.numerator = numerator
        self.down_bound = down_bound
        self.upbound = upbound
        self.coeff = coeff
        a = coeff[0]
        b = coeff[1]
        c = coeff[2]
        self.delta = b**2 - 4*a*c

    def get_imag(self):
        """计算积分的虚部."""
        root_exist = self.delta &amp;gt; 0

        if root_exist:
            # 如果根存在, 计算两根
            root1 = (-self.coeff[1] - np.sqrt(self.delta)) / (2 * self.coeff[0])
            root2 = (-self.coeff[1] + np.sqrt(self.delta)) / (2 * self.coeff[0])

            # 判断两根是否位于积分区间内
            root1_in = self.down_bound &amp;lt; root1 and root1 &amp;lt; self.upbound
            root2_in = self.down_bound &amp;lt; root2 and root2 &amp;lt; self.upbound

            # 计算积分结果
            imag = (root1_in) * self.numerator(root1) 
            imag += (root2_in) * self.numerator(root2) 
            imag *= -np.pi / np.abs(root2 - root1)
        else:
            # 根不存在, 虚部为 0
            imag = 0 
        imag *= 1/self.coeff[0] # bug No.2 分子要除以 a 才行.
        return imag&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;包中的另一些函数.&lt;/p&gt;
</content><category term="软件使用"/><category term="python"/></entry><entry><title>积分阶数的分析技巧</title><link href="https://zqw.ink/2021-01-13-physics-order_analysis.html" rel="alternate"/><published>2021-01-13T00:00:00+08:00</published><updated>2021-01-13T00:00:00+08:00</updated><author><name>ZQW</name></author><id>tag:zqw.ink,2021-01-13:/2021-01-13-physics-order_analysis.html</id><summary type="html">
&lt;h2&gt;问题&lt;/h2&gt;
&lt;p&gt;已知积分 &lt;/p&gt;

$$\begin{align}
  I(\kappa) = \int_{r_c}^{\infty} r^2 F(\kappa r) \mathrm{d}r
\end{align}$$

&lt;p&gt;其中 $F(\kappa r)$ 是一个无量纲的函数, $r_c$ 是常数. 问 $I(\kappa)$ 在 $\kappa \to 0$ 时的 …&lt;/p&gt;</summary><content type="html">
&lt;h2&gt;问题&lt;/h2&gt;
&lt;p&gt;已知积分 &lt;/p&gt;

$$\begin{align}
  I(\kappa) = \int_{r_c}^{\infty} r^2 F(\kappa r) \mathrm{d}r
\end{align}$$

&lt;p&gt;其中 $F(\kappa r)$ 是一个无量纲的函数, $r_c$ 是常数. 问 $I(\kappa)$ 在 $\kappa \to 0$ 时的行
为.&lt;/p&gt;

&lt;h2&gt;方法&lt;/h2&gt;

&lt;p&gt;令 $x = \kappa r$ , 则 &lt;/p&gt;

$$\begin{align}
  I = \frac{1}{\kappa^3}\int_{\kappa r_c} ^{\infty} x^2 F(x) \mathrm{d}x 
   \sim \frac{1}{\kappa^3} \int_0^{\infty} x^2 F(x) \mathrm{d}x 
   = \frac{\sharp}{\kappa^3} \quad \mathrm{as} \quad \kappa \to 0
\end{align}$$

&lt;p&gt;即 $I(\kappa)$ 在 $\kappa \to 0$ 时以 $1/\kappa^3$ 的速度发散.&lt;/p&gt;

&lt;h2&gt;评述&lt;/h2&gt;

&lt;p&gt;比较直接的思路, 是直接把 $F(\kappa r)$ 在 $\kappa = 0$ 处展开, 再把 $r$ 积掉. 但是 $F$
形式如果未知就行不通了. &lt;/p&gt;

&lt;p&gt;此法当然要求 $\int_0^{\infty} x^2 F(x) \mathrm{d}x$ 收敛于一个常数, 也要
求积分限在做换元后也趋于一个常数( $\kappa r_c \to 0$ as $\kappa\to 0$ )&lt;/p&gt;

&lt;h2&gt;数值验证&lt;/h2&gt;

&lt;p&gt;对于 &lt;/p&gt;

$$\begin{align}
  I(\kappa) = \int_{ - \infty}^{ + \infty} r^{2} e^{ - (\kappa r - 5)^2} \mathrm{d}r
\end{align}$$

&lt;p&gt;用 sage 验证 $I(\kappa) \sim \sharp/\kappa^3$ , 其中 $\sharp = \int_{ - \infty}^{ + \infty} r^{2} e^{ - (r - 5)^2}
\mathrm{d}r$ 是一个常数:&lt;/p&gt;

&lt;p&gt;&lt;p&gt;&lt;img src='./2021-01-13-physics-order_analysis/fig.png' alt='figalt' max-width:100%&gt;&lt;p&gt;
code: (第一次用 Sage, 有些函
数不知道怎么实现, 只能和 numpy, pyplot 混着用了 ^_^%)&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-python"&gt;# sage file
# sage file
import numpy as np
import matplotlib.pyplot as plt
x = SR.var('x')
r = SR.var('r')
κ = SR.var('κ')
F = exp(-(x - 5)**2)
I(κ) = integrate(r**2 * F(κ*r), r, -infinity, infinity)

n = 5
yy = []
xx = np.linspace(1e-3, 3e-3, n)
for i in range(n):
    yy.append(I(xx[i]))

k = integrate(r**2 * F(r), r, -infinity, infinity) # analytical slope

plt.plot(log(xx), -3*log(xx) + log(k), label='analytical')
plt.plot(np.log(xx), np.log(yy), 'o', label='numerical')
plt.xlabel(r'$\log(\kappa)$')
plt.ylabel(r'$\log(I)$')
plt.legend()
plt.savefig('fig.png')&lt;/code&gt;&lt;/pre&gt;

&lt;h2&gt;致谢&lt;/h2&gt;

&lt;p&gt;Qi&lt;/p&gt;
</content><category term="专业笔记"/><category term="奇技淫巧"/></entry><entry><title>关于微分方程的解的问题(update 07/June/2021)</title><link href="https://zqw.ink/2021-01-11-physics-prob_ode_solution.html" rel="alternate"/><published>2021-01-11T00:00:00+08:00</published><updated>2021-01-11T00:00:00+08:00</updated><author><name>ZQW</name></author><id>tag:zqw.ink,2021-01-11:/2021-01-11-physics-prob_ode_solution.html</id><summary type="html">
&lt;h2&gt;问题&lt;/h2&gt;

&lt;p&gt;将微分方程&lt;/p&gt;

$$\begin{align}
\label{eq:inhomo}
  \mathcal{L} \psi(x) = k^2 \psi(x)
\end{align}$$

&lt;p&gt;的通解 $\phi(k, x)$ 在 $k = 0$ 处级数展开&lt;/p&gt;

$$\begin{align}
\phi(k, x) = u_0 + k^2 u_1 + \mathcal{O}(k^4)
\end …</summary><content type="html">
&lt;h2&gt;问题&lt;/h2&gt;

&lt;p&gt;将微分方程&lt;/p&gt;

$$\begin{align}
\label{eq:inhomo}
  \mathcal{L} \psi(x) = k^2 \psi(x)
\end{align}$$

&lt;p&gt;的通解 $\phi(k, x)$ 在 $k = 0$ 处级数展开&lt;/p&gt;

$$\begin{align}
\phi(k, x) = u_0 + k^2 u_1 + \mathcal{O}(k^4)
\end{align}$$

&lt;p&gt;将展开的结果代回原方程可得&lt;/p&gt;

$$\begin{align}
\mathcal{L} u_0 =&amp; 0 \\
\label{eq:step}
\mathcal{L} u_1 =&amp; u_0
\end{align}$$

&lt;p&gt;那么 $u_{0}$ 是否是方程&lt;/p&gt;

$$\begin{align}
  \label{eq:homo}
  \mathcal{L} \psi(x) = 0
\end{align}$$

&lt;p&gt;的通解?&lt;/p&gt;

&lt;h2&gt;看起来是&lt;/h2&gt;

&lt;p&gt;解方程 $(\ref{eq:homo})$ 得到通解, 然后再解 $(\ref{eq:step})$ , 逐阶求解, 就得到
了 $(\ref{eq:inhomo})$ 的通解.&lt;/p&gt;

&lt;h2&gt;Reference&lt;/h2&gt;

&lt;p&gt;Yu, Z., Thywissen, J. H. &amp; Zhang, S. Supplementary Material: Universal Relations
for a Fermi Gas Close to a p-wave Interaction Resonance.&lt;/p&gt;

&lt;h2&gt;旧&lt;/h2&gt;
&lt;blockquote&gt;将微分方程
\begin{align}
  \mathcal{L} \psi(x) = k^2 \psi(x)
\end{align}
的通解 $\phi(k, x)$ , 取 $k\to 0$ 时的极限, 能否得
\begin{align}
  \mathcal{L} \psi(x) = \psi(x)
\end{align}
的全部解?&lt;/blockquote&gt;
</content><category term="专业笔记"/><category term="问题"/><category term="微分方程"/></entry><entry><title>格林函数的格林(翻译)The Green of Green Functions</title><link href="https://zqw.ink/2020-12-24-physics-georgegreen.html" rel="alternate"/><published>2020-12-24T00:00:00+08:00</published><updated>2020-12-24T00:00:00+08:00</updated><author><name>ZQW</name></author><id>tag:zqw.ink,2020-12-24:/2020-12-24-physics-georgegreen.html</id><summary type="html">&lt;!-- toc --&gt;
&lt;!-- more --&gt;
&lt;p&gt;本文为 Physics Today 56, 12, 41 (2003), Lawrie Challis, The Green of Green Functions 的翻译. 图片可查看原文.&lt;/p&gt;
&lt;h1 id="格林函数的格林"&gt;格林函数的格林&lt;/h1&gt;
&lt;hr /&gt;
&lt;p&gt;1828 年, 英国诺丁汉的一位磨坊主发表了一 …&lt;/p&gt;</summary><content type="html">&lt;!-- toc --&gt;
&lt;!-- more --&gt;
&lt;p&gt;本文为 Physics Today 56, 12, 41 (2003), Lawrie Challis, The Green of Green Functions 的翻译. 图片可查看原文.&lt;/p&gt;
&lt;h1 id="格林函数的格林"&gt;格林函数的格林&lt;/h1&gt;
&lt;hr /&gt;
&lt;p&gt;1828 年, 英国诺丁汉的一位磨坊主发表了一篇数学论文, 几乎没有产生任何影响. 然而,  乔治·格林 的分析后来在从经典静电学问题到现代量子场论中都找到了应用.&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;诺丁汉是英格兰中部地区一个迷人而繁荣的小镇, 因与罗宾汉的关联而闻名. 罗宾汉的雕像屹立在城堡的墙边. 尽管市民的心中不再有恐惧, 诺丁汉郡治安官在市政府中仍然扮演着特殊的角色.&lt;/p&gt;
&lt;p&gt;最近, 诺丁汉的天际线上出现了一个新景点, 即风车 (见图1) . 风车在有风的日子会转, 与之相邻的轧机厂出售石磨面粉, 但更令人惊讶的是, 还卖数学物理小册子. 面粉与物理之间的联系是磨坊独特特征的一部分, 并用一块附着在磨坊塔侧面的铭牌加以说明,&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;HERE LIVED AND LABOURED&lt;/p&gt;
&lt;p&gt;GEORGE GREEN&lt;/p&gt;
&lt;p&gt;MATHEMATICIAN&lt;/p&gt;
&lt;p&gt;B.1793–D.1841.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;在这里生活和劳动&lt;/p&gt;
&lt;p&gt;乔治·格林&lt;/p&gt;
&lt;p&gt;数学家&lt;/p&gt;
&lt;p&gt;公元1793–1841&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;这就是格林定理, 它是全世界物理学本科生都熟悉的定理, 并且格林函数用于经典物理和量子物理学的许多分支.&lt;/p&gt;
&lt;h1 id="早期生活和教育"&gt;早期生活和教育&lt;/h1&gt;
&lt;p&gt;乔治·格林的父亲在诺丁汉市中心附近的一家面包店, 那时是一个人口约 30 000 的小镇. 他的独生子乔治于 1793 年 7 月 14 日受洗. 1801 年 3 月, 乔治以罗伯特·古德克雷的 255 号学生入学, 他在那里呆了仅 18 个月. 他 9 岁那年, 他被安排到父亲的面包店工作. 在古德阿克雷学院度过的那段时间, 是格林在 40 岁去剑桥大学前唯一的正规教育. 他很幸运地接受了那么多的教育. 大多数孩子没有孩子, 尽管有些孩子在主日学被教读写. 格林还很幸运, 他的父亲有能力让他接受私人教育, 并选择了罗伯特·古德克雷学院, 罗伯特·古德克雷以对天文学和自然科学的热情而闻名.&lt;/p&gt;
&lt;p&gt;格林在父亲的面包店里呆了五年, 然后被派去学习做磨坊主, 磨坊是父亲在距离诺丁汉约一英里的斯尼顿村的一座小山上建造的塔式磨房. 磨坊高五层, 在一个有粮仓的院子里, 养着八匹马. 院子里还有一个茅屋, 供磨坊主约翰·史密斯, 他的妻子和他的女儿简使用. 诺丁汉的街道在天黑后行走是不安全的, 因此, 格林在磨坊里工作了许多个日夜, 并且是住在磨坊里. 直到他的家人在磨坊附近建了一所房子. 简·史密斯在格林 31 岁时为他生了一个女儿. 他们总共有七个孩子, 但从未结婚. 据说格林的父亲认为简不适合做格林的妻子, 毕竟格林是一个富裕的商人和地主的儿子, 并威胁要取消他的继承权.&lt;/p&gt;
&lt;p&gt;对于格林从1802年到1823年的生活知之甚少. 特别是, 不知道他是否在数学发展方面获得了帮助, 或者他是否完全自学成才. 他可能得到了约翰·托普利斯的帮助. 约翰·托普利斯是剑桥大学皇后学院研究员, 也是诺丁汉语法学校校长. 托普利斯对 Pierre-Simon Laplace 的书《Mécanique Céleste》(1814年在诺丁汉出版) 的翻译似乎是格林对势理论感兴趣的一种来源. 由于托普利斯使用了 Gottfried Leibniz 的更方便的微分记号, 而不是Isaac Newton的, 所以在当时的英国是一件不寻常的工作. 由于格林采用了莱布尼兹的记号, 因此格林受托普利斯影响似乎是合理的, 但没有证据表明托普利斯以任何方式充当其导师.&lt;/p&gt;
&lt;p&gt;1823年, 格林加入了诺丁汉订阅图书馆, 这是该镇知识活动的中心. 图书馆位于 Bromley House (见图2). 图书馆会员资格为格林提供了鼓励, 支持和使用 &lt;em&gt;Philosophical Transactions of the Royal Society&lt;/em&gt;  和其他科学期刊的机会. 这些不包括海外期刊, 但是 &lt;em&gt;Transactions&lt;/em&gt; 不在海外期刊之列, 这使得格林可以直接从作者那里获得复印件.&lt;/p&gt;
&lt;h1 id="格林在-1828-年的论文"&gt;格林在 1828 年的论文&lt;/h1&gt;
&lt;p&gt;格林于 1828 年发表了第一篇工作, 《关于将数学分析应用于电磁学理论的论文》. 这项长约70页的工作包含格林定理的推导, 并将该定理与格林函数一起应用于静电问题. 其标题页如图 3 所示.&lt;/p&gt;
&lt;p&gt;当时, 在英国出版科学论文的惯用途径是通过两个学会（皇家学会和剑桥哲学学会）的期刊之一. 但是格林没有任何资格, 也没有与科学机构建立联系, 因此认为将他的论文提交给期刊是冒昧的. 因此, 他自费在诺丁汉私下发表. 在他的前言中很明显地看到了他尝试出版的方式. 在那里, 他表达了它的希望, &lt;strong&gt;“该学科的难度将使数学家享受地阅读本著作, 尤其是当他们被告知这是由一位年轻人撰写时, 这个年轻人不得不获得他所掌握的很少的知识,  以这样的间隔和方式, 作为其它必不可少的爱好, 提供了很少提高的机会 ”&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;格林每篇论文的成本为 7 先令半, 大约是诺丁汉长袜制造者每周的工资. 购买者包括当地的医生, 校长, 牧师以及当时诺丁汉的蕾丝, 针织品和其它主要制造业的制造者. 购买该作品的人中有将近一半是诺丁汉订阅图书馆的成员. 几乎没有人能理解这篇文章, 因此他们显然必须对作者的能力有相当大的信心.&lt;/p&gt;
&lt;p&gt;格林发表的主要目的是使他的作品引起英国和海外其他数学家的注意. 但是, 似乎除了一个例外, 几乎没有响应. 那一定令人非常沮丧.&lt;/p&gt;
&lt;p&gt;唯一的例外是爱德华·布罗姆黑德, 他对格林的论文印象深刻. 他立即回答, 表示愿意帮助格林将来将任何论文发表在期刊上. 布罗姆黑德是一位富有和有影响力的人, 是公众人物, 也是诺丁汉东北 35 英里的林肯市的赞助者. 他曾先后在格拉斯哥大学和剑桥大学学习数学, 尽管他的社会地位使他脱离了学术生涯, 但他仍与包括Charles Babbage, John Herschel 和 William Whewell 在内的许多英国著名数学家和科学家保持着密切联系.&lt;/p&gt;
&lt;p&gt;因此, Bromhead 非常适合让格林与这些数学家和其他数学家联系, 并且一定感到惊讶和失望, 因为他没有收到格林的任何答复. 大约20个月后, 终于到达了. 格林的一封长信解释了他一直很高兴和感激 Bromhead 的来信, 以及他最初打算回信并接受他的 offer . 但是他被告知, 布罗姆黑德给他的信是出于礼貌, 而且鉴于他们的社会地位存在差异, 因此不宜回信. 直到后来他才发现那条建议多么糟糕.&lt;/p&gt;
&lt;p&gt;Bromhead迅速做出了回应, 随后进行了许多其他交流, 并在林肯附近的 Bromhead 房子见面. 在 Bromhead 的帮助下, 格林于 1833 年在期刊上发表了他的第一篇论文. 那篇论文又是关于电力的, 但是在布罗姆黑德的建议下, 格林随后放弃了这个课题, 当时英国的数学家对这个课题并不感兴趣. 他继续研究流体力学, 波动和光学等更主流的课题, 这是他于 1835 年至 1839 年间发表的八篇论文的主题.&lt;/p&gt;
&lt;p&gt;他们见面后不久, 格林告诉布罗姆黑德他想去剑桥的梦想. 他在 1833 年 4 月的一封信中谈到了这个话题, 他在信中写道：“您知道, 如果有一个成功的良好前景, 我会倾向于剑桥. 不幸的是, 我几乎不懂拉丁文, 只懂很少的希腊文, 虚度了太多的冬天, 因此处于一个很纠结的状态. ”格林一定还意识到, 简和他的孩子（当时只有四个）的存在与大学要求成员独身的要求有些矛盾！但是, 只要成员未实际结婚, 独身这一条似乎是可以接受的. 受到布罗姆海德的影响, 格林于 1833 年 10 月进入剑桥大学, 成为一名本科生, 成为了布罗姆海德所在的 Gonville &amp;amp; Caius College 学院的一员. 格林于 1837 年毕业, 1839 年 11 月成为大学研究员. 不幸的是, 他很快病倒, 于1840 年春季回到诺丁汉, 并于 1841 年 5 月 31 日死于流感. 他和简被一起葬在离工厂几百码远的圣史蒂芬教堂的院子里. 没有他的画像, 他在摄影术发明后不久就去世了.&lt;/p&gt;
&lt;h1 id="格林的论文的二次发掘"&gt;格林的论文的二次发掘&lt;/h1&gt;
&lt;p&gt;到 1840 年代初期, 格林的大部分著作都可以在公开文献中找到, 但他最重要的贡献, 即他的论文, 尚未在期刊上发表. 如果不是被威廉·汤姆森（如图4所示）发现的话, 它可能很多年都不会被发现. 汤姆森, 后来的开尔文勋爵, 在格林死后不久就去了剑桥. 他的父亲是格拉斯哥的数学教授,  汤姆森在去剑桥之前已经获得了格拉斯哥的学位. 他对电力很感兴趣, 并且在罗伯特·墨菲的一篇论文的脚注中看到了格林的论文. 在1907年, 他去世前不久写给约瑟夫·拉莫尔的一封关于格林的信中, 汤姆森写到：&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;When I went up to Cambridge as a freshman, I asked at all the book shops in Cambridge for Green’s Essay on Electricity and Magnetism, and could hear nothing of it.&lt;/p&gt;
&lt;p&gt;The day before I left Cambridge for Paris after taking my degree, in Jan. 1845, I met [William] Hopkins on what I believe was then called the Senior Wranglers’ Walk, and I told him I had enquired in vain for Green’s Essay. . . . He said “I have some copies of it.” He turned with me and took me to his house, and there, in his chief coaching room in which I had been day after day for two years, he found three copies of Green’s Essay in his bookcase and gave them to me.&lt;/p&gt;
&lt;p&gt;I had only time that evening to look at some pages of it, which astonished me. Next day, if I remember right, on the top of a diligence [stagecoach] on my way to Paris, I managed to read some more of it.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;当我还是剑桥新生时, 我在剑桥的所有书店里寻找格林的《电和磁学随笔》, 却没有结果.&lt;/p&gt;
&lt;p&gt;1845 年 1 月, 我获得学位后, 在离开剑桥前往巴黎的前一天, 遇到了[William] Hopkins, 遇见的那个地方在当时称之为 Senior Wranglers’ Walk, 我告诉他我打听格林的论文无果时. . . . 他说：“我有一些副本. ” 他带我去了他的家. 在那里, 在我两年的时间每天都待的首席教练室里, 他在书架上发现了三篇格林的论文的副本, 并将它们交给了我.&lt;/p&gt;
&lt;p&gt;我只在晚上有时间看它一些, 内容让我感到惊讶. 第二天, 如果我没记错的话, 我在去巴黎的路上&lt;strong&gt;尽了全力[驿马车]&lt;/strong&gt;, 我设法读了更多.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;汤姆森去巴黎待四个月, 以获取一些实验物理学的经验. 但他也想见一些理论家, 例如米歇尔·查尔斯, 约瑟夫·刘维尔和查尔斯·斯图姆. 他给拉莫尔的信中继续说, 在刘维尔家中向他展示时, 刘维尔对格林的论文“给予了极大的关注”. 后来, 汤姆森和一位剑桥同事在一起时, 斯图姆气喘吁吁地走过来. 他热切地想要看格林的文章. “所以我把它交给了他. 他坐下来, 热情洋溢地翻了翻书页. 他在一个地方停下来, 喊道：“啊, 这是我的工作(法语). ”“不可避免地, 自从这篇论文发表以来的17年间, 格林的许多发现被重新发现了. 汤姆森指出, 除斯图姆外, 查尔斯也在论文中发现了自己的成果和示范.&lt;/p&gt;
&lt;p&gt;汤姆森回到英格兰后, 安排格林的论文重新发表在 Crelle’s Journal 上. 埃德蒙·惠特克在他的《以太与电的理论史》（Dover, 1989）中说：&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;It is impossible to avoid noticing throughout all Kelvin’s work evidences of the deep impression&lt;br /&gt;
which was made on him by the writings of Green. The same may be said of Kelvin’s friend and contemporary, [George] Stokes, and indeed it is no exaggeration to describe Green as the founder of that “Cambridge School” of natural philosophers of which Kelvin, Stokes, [Lord] Rayleigh, [James] Clerk Maxwell, [Horace] Lamb, J. J. Thomson, Larmor and [Augustus] Love were the most illustrious members in the latter half of the nineteenth century.&lt;br /&gt;
不可避免的是, 在开尔文所有作品中, 都能够感受到格林的论文给他的深刻影响. 对于开尔文的朋友以及当时的[乔治] 斯托克斯来说, 也可以这样说. 实际上, 毫不夸张地说, 格林是自然哲学家 “Cambridge School” 的创始人. 开尔文, 斯托克斯, [瑞利]勋爵, [詹姆斯] ] 克拉克 麦克斯韦,  [贺拉斯] 兰姆,  J. J. 汤姆森, 拉莫尔和 [奥古斯都] 洛夫都是19世纪下半叶 “Cambridge School” 中最杰出的成员.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h1 id="格林对科学的贡献"&gt;格林对科学的贡献&lt;/h1&gt;
&lt;p&gt;格林论文的灵感来自法国, 拉普拉斯和西蒙·泊松. 最近通过实验建立了两个电荷之间力的平方反比定律, 泊松证明了如何由此确定导体表面电荷分布的. 他使用的技术仅适用于具有简单几何形状的曲面, 因此格林设计了强大的技术来得到任何曲面的分布. 他充分利用了电势, 并给它起了名字. 他发展的其中一个定理, 现在称为格林定理, 可以简化为通常称为散度定理或高斯定理的定理. 不过, 许多早期的教科书也将这种简化称为格林定理, 以强调&lt;strong&gt;他是最先发现的&lt;/strong&gt;. 文章中发展的的另一种强大工具现在称为 Green function 或者 Green’s function.&lt;/p&gt;
&lt;p&gt;格林接下来对弹性研究的工作, 因为格林的张量而被大家记住. 格林通过考虑“以太”而对弹性产生了兴趣, “以太”当然必须是固体, 因为光波是横波. 他表明, 通常需要 21 个模量才能描述各向异性介质的弹性, 并且他解释了对称如何减少模量的个数.&lt;/p&gt;
&lt;p&gt;在另一篇论文中, 格林首次修正了界面上的反射和折射的能量比的计算, 并解释了全内反射现象. 该解释中包括对存在于较高折射率介质中的倏逝波的描述. 在这项工作中, 他成为最早写下能量守恒原理的人之一. 格林后来的工作还包括其他一些数学上的先河. 这些包括从他的论文中得出的一种求解微分方程的近似方法的推论, 该微分方程是关于水波在宽度和深度可变的导管中的运动的. 一个多世纪之后, 他的方法作为 Wentzel-Kramers-Brillouin（WKB）方法重新出现. 他也是第一个陈述泛函最小化的 Dirichlet 原则的人, 尽管 Bernhard Riemann 给它起了那个众所周知的名字.&lt;/p&gt;
&lt;h1 id="格林定理和格林函数"&gt;格林定理和格林函数&lt;/h1&gt;
&lt;p&gt;格林函数的概念最容易通过一个例子来说明: 一个最初静止的粒子, 它受随时间变化的力 $F(t)$ , 考虑它的动力学. 首先要考虑一个很短时间内的力：猛推一下. 这个冲量在时间 $t'$ 产生单位大小的动量改变. 在之后的时间 &lt;eq&gt;t&lt;/eq&gt; , 粒子的位移 $s(t)$ 被定义为格林函数 $G(t, t')$ . 但是, 作用在无穷小的时间间隔 $\Delta t'$ 上的力 $F(t')$ 是大小为  $F(t') \Delta t'$  的冲量, 并且随时间连续施加的力可以看作是产生了一系列这样的冲量. 通过对从初始时间 $t_0$ 到时间 &lt;eq&gt;t&lt;/eq&gt; 施加的所有冲量的影响进行求和, 可以求得粒子的运动, 从而&lt;br /&gt;
$$
\begin{align}
\label{eq:1}
S(t) = \int_{t_0}^t G(t, t') F(t') \mathrm{d}t'
\end{align}
$$&lt;br /&gt;
它的初始条件为 $s=0$  , $\mathrm{d}s/\mathrm{d}t = 0$ . 得到格林函数后, 就可以计算系统对任意力的响应. 注意, 格林函数取决于动力系统, 而不取决于作用力的形式. 方框1给出了具体的计算.&lt;/p&gt;
&lt;p&gt;式 ( $\ref{eq:1}$ ) 中的连续冲量的影响的叠加仅对线性系统有效, 在线性系统中, 响应与施加的力成比例. 尽管如此, 格林的方法显然已广泛应用于各种系统, 包括力学和电气系统, 在实际应用中, 对力或电压的线性响应非常重要.&lt;/p&gt;
&lt;p&gt;格林的原始工作是针对解决封闭区域内的静电问题. 在这种情况下, 格林函数 $G(\mathbf{r},\mathbf{r}')$ 是在 $\mathbf{r}'$ 处的单位点电荷产生的点  $\mathbf{r}$ 处的电势. 点电荷是仅在单个时刻起作用的冲量的空间类比. 格林函数与点电荷产生的静电库仑电势不同, 因为点源还会在边界上感应出电荷. 利用现在知道的格林定理, 静电势  $\phi(\mathbf{r})$ 可以用现代符号表示为 (有关更多详细信息, 请参见框2) :&lt;br /&gt;
$$
\begin{align}
\phi(\mathbf{r}) =&amp; \int_{\tau} G(\mathbf{r}, \mathbf{r}') \rho(\mathbf{r}')\mathrm{d}\tau' + \\
&amp; \int_S \left[\phi(\mathbf{r}')\nabla' G(\mathbf{r}, \mathbf{r}') - G(\mathbf{r}, \mathbf{r}' ) \nabla' \phi(\mathbf{r}') \right]\cdot \mathrm{d}\mathbf{S}'
\end{align}
$$&lt;br /&gt;
电势 $\phi(\mathbf{r})$ 是体积 $\tau$ 中空间电荷密度 $\rho(\mathbf{r}')$ 和体积边界表面 &lt;eq&gt;S&lt;/eq&gt; 上的感应电荷所引起的效应的叠加, 其影响通过格林函数  $G(\mathbf{r},\mathbf{r}')$ 来传递. 格林的工作的重要性在于它的普遍性. 对表面的几何形状没有限制.容易证明, 例如, 如果任何表面保持零电势（接地）并且不包含电荷 ( $\rho = 0$ ), 则在内部的每个位置都是 $\phi = 0$ 也就是说, 内部完全不受外部静电影响.&lt;/p&gt;
&lt;h1 id="散射理论中的格林函数"&gt;散射理论中的格林函数&lt;/h1&gt;
&lt;p&gt;在19世纪后半叶, 越来越多地使用格林函数方法来求解偏微分方程, 这些方程非常相似, 描述了电, 磁, 力学和热现象. 格林函数也可以用来表述经典波的散射理论. 实际上, 由于薛定谔方程的形式与波动方程类似, 因此格林函数还可用于描述外势 $V(\mathbf{r})$ 对单个粒子的非相对论性散射. 对于总能量 &lt;eq&gt;E&lt;/eq&gt; , 质量 &lt;eq&gt;m&lt;/eq&gt; 的粒子, 波函数 $\psi(\mathbf{r})$ 的不含时部分满足&lt;br /&gt;
$$
\begin{align}
\label{eq:3}
-\frac{\hslash^2}{2m}\nabla^2 \psi + V(\mathbf{r}) \psi(\mathbf{r}) = E \psi(\mathbf{r})
\end{align}
$$&lt;br /&gt;
对项 $V\psi$ 做和静电问题中的施加电荷相同的处理,  可以写出式 ( $\ref{eq:3}$ ) 的形式解：&lt;br /&gt;
$$
\begin{align}
\label{eq:4}
\psi(\mathbf{r}) = \psi_0(\mathbf{r}) +\int G(\mathbf{r}, \mathbf{r}')
            \frac{2m}{\hslash^2}V(\mathbf{r}')\psi(\mathbf{r}') \mathrm{d}\tau' ,
\end{align}
$$&lt;br /&gt;
其中 $\psi_0(\mathbf{r})$ 是能量为 &lt;eq&gt;E&lt;/eq&gt; 的粒子的入射波, 格林函数 $G(\mathbf{r},\mathbf{r}')$ 是在 $\mathbf{r}'$ 处的给定点源在 $\mathbf{r}$ 处产生的波幅. 但是与式 ( $\ref{eq:1}$ ) 不同, 式 ( $\ref{eq:4}$ ) 不是显式解, 因为未知波函数出现在积分内. 物理上的原因是, 与式 ( $\ref{eq:1}$ ) 中由外部影响确定的力不同, 仅当存在入射波时才存在散射波源 (式 ( $\ref{eq:3}$ ) 中的 $V\psi$  项).&lt;/p&gt;
&lt;p&gt;解式 ( $\ref{eq:4}$ ) 的常用方法是迭代. 第一个迭代项是将积分中的 $\psi(\mathrm{r}')$ 替换为 $\psi_0(\mathrm{r}')$  , 这是散射理论中熟悉的玻恩近似. 迭代中的接下来的项是下列形式的积分&lt;br /&gt;
$$
\begin{align}
\label{eq:5}
\int G(\mathbf{r}, \mathbf{r}')V(\mathbf{r}')\psi_0 (\mathbf{r}')
   G(\mathbf{r}', \mathbf{r}'')V(\mathbf{r}'')\psi_0 (\mathbf{r}'')
   \cdots \mathrm{d}\tau'' \mathrm{d}\tau'
\end{align}
$$&lt;br /&gt;
这些项对应于多次散射事件, 它们发生在入射波在到达 $\mathbf{r}$ 之前的点 $\mathbf{r}'$ , $\mathbf{r}''$ 等处. 因为在每个散射点都有一个动量变化, 所以 $G(\mathbf{r},\mathbf{r}')$ 就像是时间依赖的格林函数对冲量的响应一样.&lt;/p&gt;
&lt;h1 id="之后的发展"&gt;之后的发展&lt;/h1&gt;
&lt;p&gt;在基本粒子物理学中, 散射至关重要, 因为我们研究基本粒子特性的唯一方法是通过它们彼此之间的相互作用. 但是, 这些相互作用必须通过由虚能量和动量量子来传递力的量子场来描述. 对于通过电磁相互作用的带电粒子, 这些量子是量子电动力学 (QED) 中的的光子. 电子 (和正电子) 之间通过量子化电磁场进行相互作用的理论是在 1940 年代后期提出的, 用于解释氢原子 1s 能级的兰姆位移以及电子的磁矩与狄拉克值的偏差. 这两种现象均归因于场的涨落, 但是早期的理论受到无穷大修正的困扰, 直到证明可以通过电子质量和电荷的重整化来消除无穷大.&lt;/p&gt;
&lt;p&gt;朱利安·史温格和理查德·费曼分别独立完成了一样的 QED. Schwinger 在雷达工作时曾使用格林函数来描述微波传播, 他给出了形式的场论处理, 其中格林函数作为时空点之间传播场出现. 他的理论的某些方面与日本的朝永振一郎的工作非常相似, 后者正在发展量子场论方法来进行重整化. 费曼将他的时空直觉方法用于量子力学. 在该理论中, 给定过程的概率幅度是每个可能的时空路径的概率幅总和. 对于任何特定路径, 振幅都是自由传播或散射相互作用的因子的乘积, 如式 ( $\ref{eq:5}$ ) 所示. 每个传播子和相互作用的都可以表示为所谓的费曼图, 该图给出了该过程有用的物理图景. 后来, 弗里曼·戴森证明了费曼的理论和史温格的理论的等效性, 并将 QED 中高阶效应的计算系统化了.&lt;/p&gt;
&lt;p&gt;在费曼的方法中, 可以很清晰地看出格林函数为何在粒子物理理论中发挥如此自然而基本的作用. 粒子间相互作用是复杂的多重散射事件, 其中力通过量子场传递. 但是, 不同点之间场的传播正是格林函数最初的想要用来描述的. 因此, 格林函数, 在粒子物理学中通常被称为费曼传播子, 是现代量子物理学中理论分析的标准工具之一.&lt;/p&gt;
&lt;p&gt;在 1950 年代和 1960 年代, 物理学家开始使用格林函数方法来描述凝聚态物理学的多体相互作用. 固体的电导率实质上是对外部电场的线性响应. 因此, 可以如久保亮五等人所展示的那样, 用格林函数表示. 固体中的电阻的来源是散射过程, 其自然地通过格林函数来描述. 但是与粒子物理学中通常描述的过程不同, 凝聚态过程在有限的温度下发生. 该理论的推广导致热或者有限温格林函数. 但值得注意的是, 在引入了虚部与温度倒数成正比的复数时间坐标后, 可以使用与普通零温度格林函数几乎相同的技术来计算非零温格林函数. 如今, 物理学家将格林函数应用了到许多领域, 这些领域在格林的时代是难以想像的, 并且有可能继续这样做. 将来什么都有可能发生.&lt;/p&gt;
&lt;h1 id="在自己国家的荣誉"&gt;在自己国家的荣誉&lt;/h1&gt;
&lt;p&gt;蒸汽机结束了风车的时代, 格林的磨坊渐渐失修了. 1920年, 工厂由当地商人和慈善家奥利弗·辛德买下, 后者修理了木帽. 同年, 霍尔布鲁克捐赠了磨坊的纪念牌匾. 有一段时间, 这个磨坊像是被重新上光的家具一样焕然一新, 但在1947年, 它起火并被完全毁坏. Hind 通过登上门窗并用混凝土板代替盖子来密封外壳. 多年来, 当地对格林的兴趣一直保持在中等水平, 这主要是由于诺丁汉大学成员的活动所致. 1945年, 大学数学系成员H. Gwynedd Green（不是乔治格林的亲戚）撰写了格林的传记. 玛丽·坎内尔（Mary Cannell）在1993年发表了更长的著作. 扩充的第二版于2001年出版.&lt;/p&gt;
&lt;p&gt;恢复磨坊的计划最初是由谣言引起的, 谣传它将被拆除以进行重新开发. 这导致了诺丁汉大学物理学家和其他人士组建了乔治·格林纪念基金, 最终, 作为对格林的纪念馆, 诺丁汉市对该磨坊进行了修复. 现在是诺丁汉的主要博物馆和旅游景点之一. 格林的第二个主要纪念馆是伦敦的威斯敏斯特大教堂. 那是英国国王和王后的安息之地, 也是最近许多人回想起著名文学和科学人物的地方. 1993年, 在格林诞辰200周年之际, 皇家学会主席迈克尔·阿蒂亚（Michael Atiyah）揭幕了纪念馆. 如图 5 所示, 该牌匾位于修道院的地板上, 毗邻牛顿, 迈克尔·法拉第, 麦克斯韦和开尔文的纪念馆. 会众包括格林的许多后裔以及包括史温格和戴森在内的许多其他科学家和数学家. 开尔文（Kelvin）的纪念馆必须向侧面移动才能容纳格林（Green）的纪念碑. 但是他肯定不会反对.&lt;/p&gt;
&lt;h1 id="box1"&gt;Box1&lt;/h1&gt;
&lt;p&gt;假设希望得到一个粒子的速度 $v(t)$ . 初始时刻粒子静止, 受到粘滞力 $\alpha v$ 和任意力 $F(t)$ 的作用. 那么它的运动方程为&lt;br /&gt;
$$
\begin{align}
    m \frac{\mathrm{d}v}{\mathrm{d}t} + \alpha v = F(t)
\end{align}
$$&lt;/p&gt;
&lt;p&gt;对于在时间 $t=t'$ 时施加的一个单位冲量, 它的解是格林函数 $G(t, t')$ . 施加冲量后的一瞬间, 它的速度是 $1/m$ , 然后随时间指数衰减, 所以对于 $t &gt; t'$ ,&lt;br /&gt;
$$
\begin{align}
    G(t, t') = \frac{1}{m} e^{-\alpha (t - t')/m} \quad (t\ge t') .
\end{align}
$$&lt;/p&gt;
&lt;p&gt;对于 $t &lt; t'$ 时, 格林函数为零.&lt;/p&gt;
&lt;p&gt;因此, 这个问题对于任意力的通解为&lt;br /&gt;
$$
\begin{align}
    v(t) = \int_0^t \frac{1}{m} e^{-\alpha (t - t')/m} 
        F(t') \mathrm{d}t' \, .
\end{align}
$$&lt;br /&gt;
对于这个简单的例子, 也可以直接将运动方程用常数变易法积分, 从而得到问题的解.&lt;/p&gt;
&lt;h1 id="box2"&gt;Box2&lt;/h1&gt;
&lt;p&gt;格林函数通常用来求解一个经典场的偏微分方程&lt;br /&gt;
$$
\begin{align}
    \nabla^2 \phi(\mathbf{r}) + k^2 \phi(\mathbf{r}) = \rho(\mathbf{r}) 
\end{align}
$$&lt;br /&gt;
其中对于静电场 $k=0$ , 但对于波动场不为零. 格林函数 $G(\mathbf{r}, \mathbf{r}')$&lt;br /&gt;
是一个在 $\mathbf{r}'$ 处, 由 Dirac Delta 函数 $\delta(\mathbf{r} - \mathbf{r}')$ 表示的点源的解. 也就是说, 格林函数满足方程&lt;br /&gt;
$$
\begin{align}
    \nabla^2 G(\mathbf{r}, \mathbf{r}') + k^2 G(\mathbf{r}, \mathbf{r}')
    = \delta(\mathbf{r} - \mathbf{r}') 
\end{align}
$$&lt;br /&gt;
对 $\phi$ 和 &lt;eq&gt;G&lt;/eq&gt; 用格林第二公式,&lt;br /&gt;
$$
\begin{align}
    \int_\tau (\phi \nabla^2 G - G\nabla^2 \phi) \mathrm{d}\tau
    = \int_S (\phi \nabla G - G\nabla \phi) \cdot \mathrm{d}\mathbf{S}
    \, ,
\end{align}
$$&lt;br /&gt;
交换 $\mathbf{r}$ 和 $\mathbf{r}'$ 并利用 $G(\mathbf{r}, \mathbf{r}')$ 的对称性后, 可以得到式 ( \ref{eq:2} )&lt;/p&gt;
&lt;p&gt;为了唯一确定 $\phi(\mathbf{r})$ 的解, 我们必须给定边界条件. 也必须给 $G(\mathbf{r}, \mathbf{r}')$ 选定合适的边界条件. 因此, 格林函数是由一个点源产生, 并由边界上的影响进修正, 得到的场. 在静电场中, 边界上的影响来自于表面电荷. 在波动问题中, 边界产生反射波, 反射波可以通过求解适当的无源方程来得到.&lt;/p&gt;
&lt;p&gt;在格林函数对粒子运动的处理中, 单位冲量由一个力 $F(t) = \delta(t - t')$ 表示, 可以与空间中的单位点源类比. 初始条件与这里的边界条件扮演同样的角色.&lt;/p&gt;
&lt;p&gt;在散射问题中, 格林函数由式 ( \ref{eq:3} ) 的变形得到, 将式 ( \ref{eq:3} ) 中的 $V\psi$ 移到右边, 并由的一个 delta 函数源 $\delta (\mathbf{r} - \mathbf{r}')$ 替换. 对于这样的问题, 边界条件要求解在离源很远的地方是出射波, 因为入射波意味着在无穷远的反射, 这是不物理的.&lt;/p&gt;
&lt;h1 id="扩展阅读"&gt;扩展阅读&lt;/h1&gt;
&lt;ul&gt;
&lt;li&gt;The Scientific Papers of George Green, compiled in 1995 into three volumes, available on the George Green Society Web site at http://www.nottingham.ac.uk/physics/gg. Click on “The George Green Memorial Fund” for ordering information.&lt;/li&gt;
&lt;li&gt;N. M. Ferrers, ed., Mathematical Papers of George Green, (1871; reprint, Chelsea, New York, 1970).&lt;/li&gt;
&lt;li&gt;H. G. Green, “A Biography of Geroge Green,” in M. F. A. Montagu, ed., Studies and Essays in the History of Science and Learning, Schuman, New York (1946; New York: Arno Press, 1975).&lt;/li&gt;
&lt;li&gt;D. M. Cannell, George Green: Mathematician &amp;amp; Physicist, 1793–1841: The Background to His Life and Work, Society for Industrial and Applied Mathematics, Philadelphia (2001).&lt;/li&gt;
&lt;/ul&gt;
&lt;h1 id="知识背景"&gt;知识背景&lt;/h1&gt;
&lt;p&gt;&lt;strong&gt;罗宾汉&lt;/strong&gt;（英語：&lt;strong&gt;Robin Hood&lt;/strong&gt;）是&lt;a href="https://zh.wikipedia.org/wiki/%E8%8B%B1%E5%9C%8B"&gt;英國&lt;/a&gt;民间传说中的&lt;a href="https://zh.wikipedia.org/wiki/%E4%BF%A0%E7%9B%9C"&gt;俠盜&lt;/a&gt;. 他武艺出众、机智勇敢, 仇视官吏和教士, 是一位劫富濟貧、行俠仗義的綠林&lt;a href="https://zh.wikipedia.org/wiki/%E8%8B%B1%E9%9B%84"&gt;英雄&lt;/a&gt;. 传说他住在&lt;a href="https://zh.wikipedia.org/wiki/%E8%AF%BA%E4%B8%81%E6%B1%89"&gt;诺丁汉&lt;/a&gt;&lt;a href="https://zh.wikipedia.org/wiki/%E9%9B%AA%E4%BC%8D%E5%BE%B7%E6%A3%AE%E6%9E%97"&gt;雪伍德森林&lt;/a&gt;（Sherwood Forest）.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;主日學&lt;/strong&gt;（英語：Sunday school）是&lt;a href="https://zh.wikipedia.org/wiki/%E5%9F%BA%E7%9D%A3%E6%95%99"&gt;基督教&lt;/a&gt;&lt;a href="https://zh.wikipedia.org/wiki/%E6%95%99%E6%9C%83"&gt;教會&lt;/a&gt;於&lt;a href="https://zh.wikipedia.org/wiki/%E4%B8%BB%E6%97%A5"&gt;主日&lt;/a&gt;（通常即&lt;a href="https://zh.wikipedia.org/wiki/%E6%98%9F%E6%9C%9F%E6%97%A5"&gt;星期日&lt;/a&gt;，部分教派为安息日）早上在&lt;a href="https://zh.wikipedia.org/wiki/%E6%95%99%E5%A0%82"&gt;教堂&lt;/a&gt;或其他场所進行的宗教教育，一般在&lt;a href="https://zh.wikipedia.org/wiki/%E7%A4%BC%E6%8B%9C"&gt;主日敬拜&lt;/a&gt;之前或之後舉行。主日學的形式多樣化，因教會而異，內容多以查&lt;a href="https://zh.wikipedia.org/wiki/%E8%81%96%E7%B6%93"&gt;經&lt;/a&gt;、教授基本聖經內容為主，並由教會所指定的小組長、執事、傳道或&lt;a href="https://zh.wikipedia.org/wiki/%E7%89%A7%E5%B8%AB"&gt;牧師&lt;/a&gt;講道。&lt;/p&gt;
</content><category term="专业笔记"/><category term="Green's function"/><category term="George Green"/></entry><entry><title>和唯一知道星星为什么会发光的人一起散步</title><link href="https://zqw.ink/2020-12-20-blog-walk_with_why_star_shining.html" rel="alternate"/><published>2020-12-20T00:00:00+08:00</published><updated>2020-12-20T00:00:00+08:00</updated><author><name>ZQW</name></author><id>tag:zqw.ink,2020-12-20:/2020-12-20-blog-walk_with_why_star_shining.html</id><summary type="html">
&lt;p&gt;&lt;em&gt;《和唯一知道星星为什么会发光的人一起散步》, 蒋方舟, 中信出版集团, 2020&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;全局共有四篇小说, 外加一篇后记, 是蒋方舟的新书 …&lt;/p&gt;</summary><content type="html">
&lt;p&gt;&lt;em&gt;《和唯一知道星星为什么会发光的人一起散步》, 蒋方舟, 中信出版集团, 2020&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;全局共有四篇小说, 外加一篇后记, 是蒋方舟的新书, 买的签名版.&lt;/p&gt;
&lt;p&gt;上周就读完了, 没有时间来写.&lt;/p&gt;
&lt;p&gt;如果按喜欢程度排序的话, 是 边境来了陌生人 &amp;gt; 和唯一知道星星为什么会发光的人一起散&lt;br /&gt;
步 &amp;gt; 在海边放了一颗巨大的蛋 &amp;gt; 在威尼斯重建时间&lt;/p&gt;
&lt;p&gt;我觉得作者写的故事很好, 但是关于科幻, 或者说幻想的部分有些生硬, 奇怪.&lt;/p&gt;
&lt;h2 id="在海边放了一颗巨大的蛋"&gt;在海边放了一颗巨大的蛋&lt;/h2&gt;
&lt;p&gt;有一天, 在海边的一个村子里, 突然多出了一块巨大的石头. 至于是从哪里来的, 每个人都&lt;br /&gt;
有不同的看法. 有一个叫普修的人, 在石头里造了一个与世隔绝的世界. 大家后来搬了进去.&lt;br /&gt;
原来这个巨大的石头是南十字星人的一颗棋子.&lt;/p&gt;
&lt;h2 id="和唯一知道星星为什么会发光的人一起散步"&gt;和唯一知道星星为什么会发光的人一起散步&lt;/h2&gt;
&lt;p&gt;&amp;quot;我&amp;quot; 经历了大瘟疫, 之后人们的心灵都留下了创伤. 之后嫁给了一位地理老师. 瘟疫在世&lt;br /&gt;
界各国人们心里留下的创伤, 促使世界不断爆发战争. 战争中人们都疯狂了. 战争结束, 国&lt;br /&gt;
家却完全自我封闭, 对国民, 新出生的小孩都教育他们没有外国这个概念的存在. &amp;quot;我&amp;quot; 的&lt;br /&gt;
丈夫和他的一个学生, 也是情人出逃国外, 中途丧生.&lt;/p&gt;
&lt;h2 id="在威尼斯重建时间"&gt;在威尼斯重建时间&lt;/h2&gt;
&lt;p&gt;&amp;quot;我&amp;quot; 是一名物理物理学家, 双亲皆不在人世. 却被一位科学家朋友做了他新发明的手术,&lt;br /&gt;
&amp;quot;我&amp;quot; 不再被时间束缚, 穿梭于不同的时间, 不同的世界. &amp;quot;我&amp;quot; 却同时也像是被关在时间的&lt;br /&gt;
牢笼里.&lt;/p&gt;
&lt;h2 id="边境来了陌生人"&gt;边境来了陌生人&lt;/h2&gt;
&lt;p&gt;边境小镇来了一位陌生人, 小屋里有许多的人. 每个人都讲了一个美妙绝伦的故事.&lt;/p&gt;
&lt;h2 id="后记"&gt;后记&lt;/h2&gt;
&lt;p&gt;原来这四个故事都是对应于一个建筑.&lt;/p&gt;
</content><category term="blog"/><category term="读书笔记"/><category term="蒋方舟"/></entry></feed>