1次元のトンネル効果の導出(前編)
小出昭一郎, 量子力学(I)p119 §5.3 「トンネル効果」について。p123に書かれているように、途中の計算が省かれていて、読者の演習に任されている。これについての場合のポテンシャルの壁を乗り越えていく波の振幅(具体的には振幅)について計算してみる。これは壁の左側の波動のエネルギーよりポテンシャルの壁が大きいので、自身のエネルギーより高いポテンシャルの壁を乗り越えていく、トンネル効果の透過後の振幅を計算することになる。
参考書に書いてある式の式番号は参考書と同じ。細かい点は飛ばすのでこの参考書を見ながら読んでほしい。
支配方程式
ここで定常状態を考え、
とすると、
となる。
ポテンシャルの壁
の区間については、より、シュレディンガー方程式は
となり、左から粒子が飛んでくることを考えると、
で
となる。
1. のとき
これについては参考書に途中の連立方程式まで導かれているので導出は飛ばす。結果は
である。
2. のとき
変形して
ここで
とすると、
となるので、
振幅の導出
連続でなめらかなことから、
の点で
連続なことから
より
なめらかなことから
より
の点で
連続なことから
より
なめらかなことから
より
まとめ
ここで
と置くと、振幅比についての連立方程式、
が得られる。上から式(a-1),(a-2),(a-3),(a-4)とする。
振幅比について解く
式(a-1)から
式(a-2)に代入
よって
式(a-3)に代入
ここで
と置く。式(a-6)をについて解くと、
また式(a-5)をについて解くと
式(a-7)、(a-8)を式(a-4)に代入し式変形していく
ここで、左辺のの係数について、
よって
振幅の比の絶対値
いよいよトンネル効果の振幅比を計算する。
より
この式の分母について
となる。よって
また
より
なので、式(a-9)は
となる。これは参考書p124の式(13b)'と一致する。
ここまでではてなブログの容量不足になってしまったので、式(13b)'のグラフの図示については後編に続く
Markdownをはてな記法にパースする
Markdownをはてなブログのはてな記法にパース(変換)するプログラムを作りました。
使い方
md_parser
フォルダ内のmd_parser.py
を次のようにインポートして使います。
from pathlib import Path from md_parser import md_parser md_parser.parse_md_to_hatena(pathlib.Pathオブジェクト)
動機
数式をはてなブログで書きたいとする。はてなブログの編集方法は、見たまま、はてな記法、Markdownの3つあるが、数式を扱う場合ははてな記法、Markdownの2択になる。
このうちはてなブログのMarkdownは数式をうまく扱えない(とうか独自仕様で移植性が悪い)。そしてそもそもMarkdown自体はカスタマイズ性が低い。例えばMathJaxは重いので、将来的にはサーバーサイドで処理もしたい。ということではてな記法を選んだ。
ただ、また一方でプレビューしながら文章や数式を書きたいという欲望もある。そしてはてなブログのMarkdownプレビューは数式がプレビューされない、スクロール同期しないなど使いにくい。
そこで、VSCodeのMarkdown Preview EnhancedでMarkdownをプレビューしながら文章や数式を書き、それをはてな記法に変換することにしました。
注意
うまくパースできなくても責任は取れないです。あくまでこういう事ができるという例です。
必要環境
python3.8以上。pathilib
、markdown
モジュールを使います。
例
main.pyを実行するとSample.md
がパースされ、パースされたSample_hatena.txt
というファイルができるはずです。
対応しているもの、していないもの
$$
で囲まれたブロック数式、$
で囲まれたインライン数式、表、#
が2つか3つのヘッダーには対応しています。
基本的にmarkdown
モジュールがパースできるものはパースできるはずです。githubと同様、適度に改行しないとパースできないので注意(そのためmarkdown-preview-enhanced.breakOnSingleNewLine
はオフ推奨)
また画像には対応していません。はてなブログに対応した方法で画像を貼り付けたほうがいいと思われるので。
実装
もとのmd
ファイルをリスト化し、文章全体を標準ブロック、数式ブロックとブロックごとのリストに分けてます。そして、標準ブロックはインライン数式を一旦退避させて、markdown
モジュールで変換した後、退避させていたインライン数式を(はてな記法に変換した上で)変換後の文字列に戻しています。数式ブロックもはてなブログ用の数式フォーマットになるようにパースしています。そして最後に"".join()
で全部ドッキングしてます。
感想
標準ブロック中のインライン数式に手間取りました😅。インライン数式中の不等号はmarkdown
モジュールで解釈され勝手に変換されてしまうので、インライン数式を置換した後markdown
モジュールで変換しても、markdown
モジュールで変換した後インライン数式を置換してもダメなので、一度退避するという大掛かりなことをしなければなりませんでした。(markdown
モジュールの使い方次第でもっとシンプルにできそう。python-markdown-math
とかインストールすれば良いのか?ただ英語のレファレンスしか無く辛い。)
python-markdown
便利ですね。 いろいろできそう。
あとめっちゃre
モジュール(正規表現)使った。re
モジュールの使い方でこのサイトにはめちゃくちゃお世話になった。
Pythonの正規表現モジュールreの使い方(match、search、subなど) | note.nkmk.me
(というかnote.nkmkは公式リファレンスよりわかりやすいよね)
参考にしたサイト
水素原子のシュレーディンガー方程式とスピン
小出昭一郎, 量子力学(I)p89 §4「中心力場内の粒子」、p219 §8「電子のスピン」について備忘録。いつものごとく式番号はこの参考書と同じ。細かい点は飛ばすのでこの参考書を見ながら読んでほしい。
水素原子のシュレーディンガー方程式の解とスピンについてはこの後の章でも度々使う。とくに球面調和関数と角運動量演算子の性質や、それと同じ性質を持ったスピン角運動量の性質は超頻出で、特に次の巻の量子力学(II)§10の「原子と角運動量」で原子の電子配置の性質の基礎とになる。つまりこの2つの章は超重要で、今後何度も読み返すことになるのでここにまとめておく。
極座標で表したシュレーディンガー方程式
ポテンシャルがのみの関数(中心力場)で、定常状態の場合のシュレーディンガー方程式は、
ただし、は、
である。式(1)の中心力場のシュレーディンガー方程式を解くためには、
と変数分離すると良いことが分かっている。そうすると、シュレーディンガー方程式から、
と二つの微分方程式が得られる。
球関数と角運動量
式(12)の固有値は
で各に対応する固有関数は球面調和関数と呼ばれ、ルジャンドル多項式とルジャンドル陪関数を用いて表せる。それらを
と表すと、
となる。これら球面調和関数の性質として、角運動量について、より、角運動量の2乗、の固有値はでその固有関数はである。また、角運動量のz成分、の固有値はで固有関数は同じくである。
、で定義される
をに作用させると、
とが上下する。また、やの時、つまり、に作用させると
中心力がクーロン力の時:水素原子
原子は中心力がクーロン力である。1電子の場合を考えるので、これは水素原子や原子を表す。原子核のクーロン力場にある電子のポテンシャルは
である。このを用いて式(11)を解く。ボーア半径を
と定義する。この時、ハミルトニアンの固有値、つまりエネルギーは
との値によってとびとびにとる。そして式(11)の固有関数は
となる。最終的にもとの式(1)中心力場のシュレーディンガー方程式のハミルトニアンの固有関数はとなる。
電子のスピン
電子は主量子数、方位量子数、磁気量子数で指定される状態の他に、スピンと呼ばれる2つの状態を取ることが分かっている。このスピンの状態で電子は2つの磁気モーメント、つまり角運動量を持っているとみなせる。スピンは相対論から導出できるもので、その詳細は立ち入らない。しかし、スピンは疑似的に角運動量とみなせるので、その角運動量を考えることができて、これは角運動量の類推でその固有値、固有関数の振舞いを特定できる。
これと同様に、
この時上の式で、一つの角運動量に対し、が種類存在するので、
一つの角運動量に対しの状態が取れることになる。一方、スピンにより電子は2つの状態を取るので、一つのスピン角運動量に対し、が2種類ある。
である。このを使えば
と2つの状態ができる。よって、に対応する固有関数をそれぞれ、、とすると
となる。
角運動量とスピン角運動量についてまとめ
2つの角運動量について結果を表にまとめると、
角運動量について、
演算子 | 固有値 | 作用した結果 |
---|---|---|
なし | ||
なし |
スピン角運動量について、
演算子 | 固有値 | 作用した結果 |
---|---|---|
なし | ||
なし |
思っていること
人は30代になると脳が衰えて、新しいことを勉強できなくなるらしい。そうならないように、勉強を続けていきたい。
実際の量子力学の理論は20代~30代の若手・中堅研究者によって1920年代に成し遂げられた。しかし、相対論を作り上げ、名声を手にしていたアインシュタインも40代ながら、ボーアなどとともに量子力学の発展に大きく寄与した。これはアインシュタインが名声に満足すること無く、若手の研究を貪欲に勉強していた証だと思う。
理系に生まれたからには一生のうちに量子力学、素粒子論くらいは解っていて死にたいものだと思う。それを理解しないで死ぬのは自動車工場に見学に来て、中でどう自動車が作られてるか見学せずに帰ってしまうようなものだ。
この変化が激しい世の中、トレンドとなる技術が目まぐるしく変わる。この50年を見ても、機械工学、原子力、電気工学、情報工学、そして機械学習とその時流行っている(そしてお金を取れる、給料が高い仕事がある)技術は大きく変わっている。技術を生業とする理系は一生勉強だと覚悟を決めたほうがいいと思う。
なにか勉強するだけでなく、サービスやプログラムとしてアウトプットもしていきたい。
やりたいこと
・プラズマ勉強
・SLAM勉強、多視点幾何勉強、ORBSLAM理解、実装
・レイトレーシング実装
調和振動子の固有関数の規格化について
- 作者:小出 昭一郎
- 発売日: 1990/10/05
- メディア: 単行本
小出昭一郎, 量子力学(I)p46 §2.6 調和振動子について備忘録。式番号はこの参考書と同じ。波動関数を規格化した際にp50の式(24a)になるまでを導出する。細かい点は飛ばすのでこの参考書を見ながら読んでほしい。
3次元空間上で、原点Oからの距離に比例する引力、
があったとき、時間に含まない定常状態を考えたシュレーディンガー方程式は
となる。これは変数分離すると、方向について、
古典的なばねと質点の単振動では、ばね定数がで運動方程式が
と表せるとき、単振動の角振動数はであった。ここで頭を柔軟に使って論理を飛躍させて、量子力学でも同じように表せると考え、と表すと式(9)は
となる。このように普通、量子力学ではと表す。この式を解くと、固有関数系として参考書p50の式(24a)を得る。
式(24a)の導出
式(11)は
と変数変換し、式変形していけば、
という式を解けばいいことになる。この式の解き方については、EMAN氏のサイトが詳しい。
eman-physics.net(EMANの、この物理数学の微分方程式シリーズは勉強になった。微分方程式(シュレーディンガー方程式も)を解く→固有値と固有関数を求めるというイメージが出来たので。一度式を地道に追ってみることをおすすめする。)
この式の解はとしたエルミートの多項式を用いて、
となる。ただし、は波動関数の規格化で後から決まる係数である。エルミート多項式の性質として
を満たす。これは後で規格化のとき使う。
このエルミートの多項式を用いると、式(11)の1次元調和振動子のシュレーディンガー方程式に対する固有関数系は、
となることが分かる。変数をとに戻し、式(23)を規格化、つまり、のときで積分したら1になるようにする。規格化するための係数をとすると、は
とできて、これについて
を計算する。積分変数を からに変換する。またであることと式(21)を用いる。
よって式(24a)を得る。
ここだけの話、初めてこの導出を確かめた際、を、と間違って式変形してしまい、式(24a)は誤植じゃないかと出版社に問い合わせてご迷惑をかけてしまった。