スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
スポンサー広告 | --/--/-- --:--

調和振動子の行列理論 (3)

だいぶ間が空いてしまいましたが、
調和振動子の行列理論の続き。

前回のこの式から
\[
\left[
\begin{array}{cc}
E_l - E_k & -i\hbar/m \\
i\hbar K & E_l -E_k
\end{array}
\right]
\left[
\begin{array}{c}
\langle k|x|l \rangle \\
\langle k|p|l \rangle
\end{array}
\right] = 0
\tag{1}
\]
今度は、1行目に $-im\omega_c$ を乗じて、2行目を加えると、
\[
(E_l - E_k - \hbar\omega_c) \langle k |(p - im\omega_c x)| l \rangle = 0
\tag{2}
\]
この式変形じたいはいたって簡単なのですが、
数学的にはいったい何をやってるんだろう???
ということが分からずに時間がかかっていました。

つまり、前記事の変形では、
非自明な解が存在するために、行列式がゼロという条件を置いたわけですが、
今回は、線形代数的にどういう操作をやってるのかが分かりません。

まあ、結局分からずじまいですが、
とりあえず、あまりこだわるのはやめて、先に進むことにします。

式(2)を見ると、この行列要素が非零になりうるのは、
\[
E_k = E_l - \hbar\omega_c
\tag{3}
\]
の場合だけである。
つまり、演算子 $p-im\omega_c x$ は、エネルギー固有状態を 
$\hbar\omega_c$ だけ低いエネルギー固有状態にする働きをもつ。


ところで、調和振動子のエネルギー固有値は必ず正であったから、
ある最低エネルギー固有状態 $|0\rangle$ が存在して、
\[
(p - im\omega_c x)|0\rangle = 0
\tag{4}
\]とならなければ、矛盾が生じる。
この両辺に演算子 $p+im\omega_c x$ を施して、
\[
(p + im\omega_c x)(p - im\omega_c x)|0\rangle = 0
\tag{5}
\]
交換関係 $[x,p] = i\hbar$ を用いて整理すると、
\[
\left( H - \frac{1}{2}\hbar\omega_c \right) |0\rangle = 0
\tag{6}
\]となり、
\[
H |0\rangle = \frac{1}{2}\hbar\omega_c |0\rangle
\tag{7}
\]となる。つまり、基底状態 $|0\rangle$ のエネルギーは $\hbar\omega_c/2$ である。

今度は、(2)を導いたのと同様の手法で、1行目に $+im\omega_c$ を乗じて、2行目を加えることにより、
\[
(E_l - E_k + \hbar\omega_c) \langle k |(p + im\omega_c x)| l \rangle = 0
\tag{8}
\]という結果を得、行列要素が非零となるのは、
\[
E_k = E_l + \hbar\omega_c
\tag{9}
\]の場合に限るから、演算子 $p+im\omega_cx$ は、エネルギー固有状態を 
$\hbar\omega_c$ だけ高いエネルギー固有状態にする働きをもつ。

この演算子を順次、$|0\rangle$ に施していくことにより、$|1\rangle, |2\rangle, \cdots, |n\rangle, \cdots$ と、
エネルギー固有値が $\hbar\omega_c$ 間隔のエネルギー固有状態を作ることができる。
この時、$|n\rangle$ に対するエネルギー固有値は、
\[
E_n = \left( n + \frac{1}{2} \right) \hbar\omega_c
\tag{10}
\]である。

これらの演算子に係数をかけて無次元化したものを上昇演算子・下降演算子と呼ぶ。

上昇演算子
\[
a^\dagger = -\frac{i}{\sqrt{2m\hbar\omega_c}} ( p + im\omega_c x)
= \sqrt{\frac{m\omega_c}{2\hbar}} x - \frac{i}{\sqrt{2m\hbar\omega_c}} p
\tag{11.1}
\]
下降演算子
\[
a = \frac{i}{\sqrt{2m\hbar\omega_c}} ( p - im\omega_c x)
= \sqrt{\frac{m\omega_c}{2\hbar}} x + \frac{i}{\sqrt{2m\hbar\omega_c}} p
\tag{11.2}
\]
x と p はエルミートであるから、$a$ と $a^\dagger$ はエルミート共役の関係にあることが分かる。

参考文献
[1] シッフ「量子力学」(上)
スポンサーサイト
ジャンル:[学問・文化・芸術]  テーマ:[自然科学
調和振動子 | コメント(0) | 2014/06/19 12:43

数値計算プログラミング

以前の記事で書いたように、日頃実験データの解析や簡単な数値計算などには、
Wave Metrics 社の Igor Pro というソフトを使用しています。

このソフト、グラフ描画や数値解析機能には申し分ないのですが、
内部の専用プログラミング言語が劣悪すぎて、
プログラミングにストレスがたまりまくるんです。

計算の時は、このソフトを使わずに、C++で書くこともあるのですが、
できれば、計算途中にリアルタイムでグラフ表示をさせたんですよね。

その Igor というソフトにも別売りでC++とのインターフェースも存在するようなのですが、
その使用サンプルを眺めてみると、かなりめんどくさそう・・・
それならば、いっそのこと、C++でグラフ表示まで自作するか、
既存のグラフ描画ライブラリーを使用するか・・・
ということで、NPlot というライブラリーを使ってみようかなというのが前回の話でした。

で、グラフ描画の話はさておいて、
この Igor のデータ構造、非常に使い勝手がいいんです。

実際の数値データを扱うのですから、通常、1次元配列のようなものになりますが、
Igor の場合、それに加えて個々のデータが独自の横軸(X軸)情報を保有しているんです。

考えてみれば、自然科学ではほとんどのデータに横軸が存在してるんですよね。
たとえば、オシロスコープで取った波形では、横軸は時間ですし、
I-V特性のようなデータは、横軸が電圧ですね。
横軸の存在しないデータといえば、クラス50人分の身長データのような
統計的サンプルぐらいしか思い浮かびません。

Excel などを使っていると、通常、グラフにするとき、
横軸と縦軸の2本のデータ配列を使って、XYプロットをすると思います。
でも、横軸というのはたいていの場合、等間隔で並んだ数値列になっているだけなんですよね。

たとえば、オシロで取った波形を考えると、横軸は等間隔に並んだ時刻の羅列です。
結局、有意な情報は最初(画面左端)の時刻と最後(画面右端)の時刻だけです。
あるいは、最初の時刻と刻み間隔(○s/divの値)でもいいかもしれません。

要は電圧の値の時間変化の1次元配列に、
この最初と最後の時刻情報だけ追加しておけば、事足りるんですね。

個々のデータにこの横軸情報をインクルードしておけば、
XYプロットのように、2つのデータの紐づけをいちいち管理しなくても、
個々のデータを個別に管理するだけでよいというわけです。

たとえば、こちらは Igor のグラフプロットの例ですが、
Igor-wave-02.png
赤い方のデータは、[0,10]、青い方のデータは[-5,5]という横軸情報を独自に持っているので、
2本のデータをプロットするだけで、しかるべき横軸の場所にプロットされます。

また、データ自身が横軸を持っているので、
微分や積分やフーリエ変換など、横軸を必要とする演算はすべて、
そのデータに付属するメソッドとして、インプリメントできます。

というわけで、話が長くなりましたが、
自作ライブラリを作るうえで、このデータ構造を採用したいと思うのです。

つまり、データ配列に加えて、横軸情報を追加したものをクラスとして定義してやって、
そこに微分、積分、フーリエ変換などの演算をメソッドとして追加する
というイメージを考えています。
配列間における四則演算なども演算子の多重定義で実現したいですね。

Igor では、このデータ構造を「ウェーブ」と呼んでいるので、
double型(実数)のデータ配列に対して、 DWave というクラスでカプセル化して、

DWave d1, d2, d3;
・・・
d1 = 0; //すべての要素に 0 を入れる
d1.SetScale(-100,100); //横軸を [-100,100]に設定
・・・
double x = d2.Integrate(-1,1); //d2 を [-1,1]で積分して、x に入れる
d3 = d1 + d2;   //すべての要素で、d3[i] = d1[i] + d2[i]
・・・

というような感じで扱えるようにできれば・・・と思っています。

実は以前から作成していて、もうほとんど完成して実際に使っているのですが・・・
もう一度見直してみて、改良しながら、ここに記録していきたいなと思います。

ちなみに、僕はプログラミングはド素人なので、
かなり我流で危なげでプログラミングをしていると思いますが、
その点は、ご容赦ください^^;
ジャンル:[学問・文化・芸術]  テーマ:[自然科学
C++プログラミング | コメント(0) | 2014/06/06 12:22

群論の教科書

群論の教科書は既に3冊所有しているのですが、
ついに4冊目を買ってしまいました(笑)

最近のこちらの記事でもちらっと触れましたが、
今持っているのが以下の3冊。

[1] 吉川圭二「群と表現」(岩波理工系の数学シリーズ)

[2] 志賀浩二「群論への30講」(数学30講シリーズ)

[3] Morton Hamermesh "Group Theory and Its Application to Physical Problems"
   (Dover Books on Physics and Chemistry)


[1]は、物理に必要な回転群やユニタリ群やリー群の基礎まで載っていて、
内容としては魅力的なのですが、
やはりこの分量をこのページ数に収めるのは無理があるのかもしれません。
数学的な定義があまりしっかり書かれていない気がして、
どうもついていくことができませんでした。

[2]は、読み物チックでさすが評判通り、分かりやすいです。
たとえば、一般の n ではなく、3個の場合で証明して、あとは推して知るべし
みたいな思い切った割り切りがあったりして、読みやすいし、
ポイントを押さえるのにはなかなかいいと思いました。
ただ、あまり物理向けではなくて、数学寄りなので、
回転群とかユニタリ群については書かれていません。

そこで、ずっと昔に買ってあった[3]を読もうと思ったのですが、
なかなかの分量の超骨太な本で、読み切れるかどうか不安で
なかなか読み始められない本です。

数学的な基礎もしっかりと書きつつ、
物理における点群の話や回転群・ユニタリ群の話も
書かれているようです。
リー群やリー代数の基礎も書かれているっぽいです。

アマゾン・レビューを見ると、古典的名著のようで、
これを読破すればかなり力がつくようですね。
ただ、読破できるかどうか・・・・^^;

特に、点群の章とか、
The second chapter almost drive me crazy.
と書いている人もいますし・・・^^;;

そして、このレビューである人がすすめていたのがこちらの本。

[4] Michael Tinkham "Group Theory and Quantum Mechanics"
  (Dover Books on Chemistry)


かなり物理応用をメインとして書かれてるっぽくて、
レビューを見ても非常にわかりやすそうだったので、買ってみました!
今日、手元に届いたので、ちらちら眺めてみたら、
初めのイントロダクションから、シュレディンガー方程式が出てきて、
なぜ、物理に群論が必要かということから書かれていて、とても興味深いです。

とりあえず、この本はアメリカ出張に持っていこうと思います。

[3] と違って、純粋な数学的部分のウェイトは小さいようなので、
[3] はまた別にいつか読んでみたいところですね!(じゃ、いつ読むの?笑)

ジャンル:[学問・文化・芸術]  テーマ:[数学
数学>代数系・群論 | コメント(0) | 2014/06/04 23:51

高校時代の疑問 (2) 気体分子運動論の謎

高校時代に抱いていた疑問シリーズ、その2。

今回は、疑問でも謎でもなんでもなく、
高校時代に既に解決していて、単なる教科書への不満です。
こんなこと書いてたら、分からんやろーー!!!って話です(笑)

熱力学で登場する気体分子運動論の話。

一辺の長さ $L$ の立方体の箱を想定して、
その中を運動する一つの気体原子(一原子分子)を考える。

ある瞬間、気体原子の速度の $x$ 成分を $v_x$ とする。
壁で衝突すると、弾性衝突を仮定すれば、
この原子は衝突後、逆方向に同じ速度で運動する。
つまり、速度の $x$ 成分は、$-v_x$ となる。

原子の質量を $m$ とすると、衝突前後における運動量の $x$ 成分の変化は
\[
\Delta p_x = m(-v_x) - mv_x = -2mv_x
\tag{1}
\]
この運動量変化は、壁との衝突により、壁から受けた力積によるものである。

ここまではいいのですが、この後、教科書ではこのように続きます・・・

両端の壁との往復時間は、$2L/v_x$ であるから、
時間 $\Delta t$ の間に、一方の壁には
\[
\frac{\Delta t}{2L/v_x} = \frac{v_x\Delta t}{2L}
\]回衝突する。
よって、気体原子が壁から受ける力を $F$ とすると、
\[
-F \Delta t = \frac{v_x\Delta t}{2L} \times ( -2mv_x)
\tag{2}
\]すなわち、
\[
F = \frac{mv_x^2}{L}
\tag{3}
\]
そして、この後、N 個の原子について足し合わせて、
マクロの状態方程式との関連を論じていきます(そこは省略)

これを高校時代初めて読んだ時、
頭が????になって、ちょっと待って下さい!
という感じでした。

なぜなら、力が働いているのは、ほんの一瞬の衝突の瞬間だけで、
この $\Delta t$ の時間のほとんどは壁と壁の間を飛行している時間ですよね。

$F$ を求めるのに、この $\Delta t$ で割っていいの???

当時はかなり悶々としましたが、解決してくれたのはZ会の解説でした。
(さすが、Z会!笑)

ここはおそらく、以下のようにすべきだと思います。

箱の中には$N$ 個の原子が存在するとすると、
$\Delta t$ の間に壁が与える全体の力積 $I$ は
\[
I = N \frac{m \langle v_x^2 \rangle }{L} \Delta t
\tag{4}
\]
ただし、$v_x$ は個々の原子によって異なるため、統計平均を取った。

ここで、$N$ は $10^{23}$ 程度の巨大な数なので、
統計的ふるまいをすると考えてよい。
一個一個の原子に関しては、衝突している間は一瞬であるが、
全原子を考えた時には、定常的にいずれかの原子が壁に衝突していて、
その衝突箇所も壁の中でランダムな位置に衝突しているので、
マクロで見た時には、時間的・空間的に一様に力が働いていると考えてよい。
その一様な力を $F$ とすると、
\[
I = F \Delta t
\tag{5}
\]
あとは、(4) と (5) を等値して、以下は同じ変形になります。

何がポイントかいうと・・・
力積のまま、原子集団で統計的に足し合わせてしまうというところです。
これは何の問題もないわけです。

しかし、まだ1個の状態で力積から力に変えてしまうと、
1個1個に加わっている力は、瞬間瞬間の撃力的な力であって、
しかも、空間的に衝突箇所も局所的
なわけなので、
思い描くイメージと合わなくなるんです。

不思議なことに、初めに書いた教科書のような説明が
あちこちで見受けられるんです。

もちろん、書いた人は、統計的な解釈を踏まえたうえで書いている
ということは十分に分かってるんですよ。

大学レベルの物理をやっている人間になら、適当にそのあたりは
補完的解釈できるから、それでよいのですが、
まだ物理脳になりきっていない高校生に、この説明で理解しろ!
というのは、ちょっと無理があるかなあと思います。

というわけで、久しぶりに、気体分子運動論を思い出しました(笑)
ジャンル:[学問・文化・芸術]  テーマ:[自然科学
物理>高校+α | コメント(0) | 2014/06/02 12:45
 | HOME | 

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。