nano_exit

基礎的なことこそ、簡単な例が必要だと思うのです。

matplotlibで二文字以上の変数を上付きにする。

matplotlibで普通に

from matplotlib import pyplot as plt
atomic_number = 29
plt.title( 'Cu$^{}$'.format( atomic_number ) )

とやると、「Cu ^29」となってしまう。

これは、内部で「$^29$」と書かれたと見做されているためである。
ベタ打ちするならば、「$^{29}$」で回避出来る。
しかし、今の場合は変数を入れたいので、「$^{{}}$」などが思い付くが、認識されずに上手く行かない。

そのため、これを避けるには、一文字ずつに分けるしかない、という結論に至った。

from matplotlib import pyplot as plt
atomic_number = 29
an = str( atomic_number )
plt.title( 'Cu$^{0}$$^{1}$'.format( an[0], an[1] )

もっと良い方法があれば知りたい。

微分係数の逆数は逆の微分?(続き)

前回、 x \equiv x( u ), \, x_v=0の時に、 u_x = x_u^{-1} であることを示した。
koideforest.hatenadiary.com

しかし、前回得られた式をよく見ると、 x_v \neq 0, \, y_u = 0 でも  u_x = x_u^{-1} になることがわかる。

\displaystyle
u_x = \frac{ y_v }{ x_u y_v - x_v y_u } = \frac{ y_v }{ x_u y_v } = x_u^{-1}

 x_v \neq 0 はつまり  x \equiv x( u, v ) であるわけだが、 x v に依存しているにも関わらず、 y_u =0 のために v_x = 0 となることがわかる。

\displaystyle
v_x = - \frac{ y_u }{ x_u y_v - x_v y_u } = - \frac{ 0 }{ x_u y_v } = 0 \neq x_v
これは、結構直感に反するのではないだろうか?

そこで、 y 微分についても調べることにする。
 u, v微分は連鎖律を用いて、 x, y微分で表せる。

\displaystyle
\frac{ d }{ du } = x_u \frac{ d }{ dx } + y_u \frac{ d }{ dy }
\\
\displaystyle
\frac{ d }{ dv } = x_v \frac{ d }{ dx } + y_v \frac{ d }{ dy }

ここから逆に x, y微分に分離すると、

\displaystyle
y_v \frac{ d }{ du } - y_u \frac{ d }{ dv } = \frac{ \partial ( x, y ) }{ \partial ( u, v ) } \frac{ d }{ dx }
\\
\displaystyle
x_v \frac{ d }{ du } - x_u \frac{ d }{ dv } = - \frac{ \partial ( x, y ) }{ \partial ( u, v ) } \frac{ d }{ dy }
\\
\displaystyle
\frac{ \partial ( x, y ) }{ \partial ( u, v ) } \equiv x_u y_v - x_v y_u

整理すると、

\displaystyle
\frac{ d }{ dx } = \left( \frac{ \partial ( x, y ) }{ \partial ( u, v ) } \right)^{-1} y_v \frac{ d }{ du } - \left( \frac{ \partial ( x, y ) }{ \partial ( u, v ) } \right)^{-1} y_u \frac{ d }{ dv }
\\
\displaystyle
\frac{ d }{ dy } = - \left( \frac{ \partial ( x, y ) }{ \partial ( u, v ) } \right)^{-1} x_v \frac{ d }{ du } + \left( \frac{ \partial ( x, y ) }{ \partial ( u, v ) } \right)^{-1} x_u \frac{ d }{ dv }

ここまでは一般的。ここで、 y_u = 0 の条件を課すと、

\displaystyle
\frac{ d }{ dx } = x_u^{-1} \frac{ d }{ du }
\\
\displaystyle
\frac{ d }{ dy } = - \frac{ x_v }{ x_u y_v } \frac{ d }{ du } + y_v^{-1} \frac{ d }{ dv }
と表せる。
 x u, v 両方に依存する影響が、 y の方に出ていることがわかる。

これが合っているのか、簡単な計算で確かめることにする。

\displaystyle
x = 2 u + v, \quad y = v
\\
\displaystyle
f = x + y = 2u + 2v
\\
\displaystyle
\frac{ d f }{ dx } = 1 = \frac{ 1 }{ 2 } \cdot 2 = x_u^{-1} \frac{ d f }{ du }
\\
\displaystyle
\frac{ d f }{ dy } = 1 = - 1 + 2 = - \frac{ 1 }{ 2 \cdot 1 } \cdot 2 + \frac{ 1 }{ 1 } \cdot 2 =  - \frac{ x_v }{ x_u y_v } \frac{ df }{ du } + y_v^{-1} \frac{ df }{ dv }
ちゃんと答えが一致した。
どちらかが一変数にしか依存しない場合、対角成分では逆数の関係が成り立つ( u_x = x_u^{-1}, \, v_y = y_v^{-1}) が、非対角成分には注意が必要である。
もちろん、 x,y の両方が  u,v に依存する場合には、逆数の関係は成り立たないので、逆数に期待し過ぎるとちょっと危険かもしれない。

微分係数の逆数は逆の微分?

以下の式は一般に正しいだろうか?

\displaystyle
\frac{ d u }{ d x } = \left( \frac{ d x }{ d u } \right)^{-1} \quad (?)

 x \equiv x( u )の時は正しい。

\displaystyle
\frac{ d }{ d u } = \frac{ d x }{ d u } \frac{ d }{ d x }
\\
\displaystyle
\frac{ d }{ d x } = \frac{ d u }{ d x } \frac{ d }{ d u }
\\
\displaystyle
\therefore
\frac{ d u }{ d x } = \left( \frac{ d x }{ d u } \right)^{-1}
 x uで定義されている場合、 \frac{ d x }{ d u }の方が求め易いことが多い。
なので、このような関係式をなるべく使いたい訳である。

では、多変数の場合にはどうか?

\displaystyle
x \equiv x( u, v ), \quad y \equiv y( u, v )
\\
\displaystyle
\frac{ d }{ d u } = x_u \frac{ d }{ d x } + y_u \frac{ d }{ d y }
\\
\displaystyle
\frac{ d }{ d v } = x_v \frac{ d }{ d x } + y_v \frac{ d }{ d y }

これを \frac{ d }{ dx }だけを抜き出すように式変形すると、

\displaystyle
y_v \frac{ d }{ d u } - y_u \frac{ d }{ d v } = ( x_u y_v - x_v y_u ) \frac{ d }{ d x } \equiv \frac{ \partial ( x, y ) }{ \partial ( u, v ) } \frac{ d }{ d x }
 \frac{ \partial ( x, y ) }{ \partial ( u, v ) } ヤコビアンと呼ばれているものである。
したがって、

\displaystyle
\frac{ d }{ d x } = \left( \frac{ \partial ( x, y ) }{ \partial ( u, v ) } \right)^{-1} y_v \frac{ d }{ d u } - \left( \frac{ \partial ( x, y ) }{ \partial ( u, v ) } \right)^{-1} y_u \frac{ d }{ d v }

一方で、 \frac{d}{dx} u,v微分で直接表せば、

\displaystyle
\frac{ d }{ d x } = u_x \frac{ d }{ d u } + v_x \frac{ d }{ d v }

したがって、

\displaystyle
u_x = \left( \frac{ \partial ( x, y ) }{ \partial ( u, v ) } \right)^{-1} y_v
\\
\displaystyle
v_x = - \left( \frac{ \partial ( x, y ) }{ \partial ( u, v ) } \right)^{-1} y_u

よって、一般には u_x \neq x_u^{-1}である。

 x_v = 0、すなわち、 x \equiv x( u ) のときに限りを確認すると、

\displaystyle
u_x = \frac{ y_v }{ x_u y_v - x_v y_u } = \frac{ y_v }{ x_u y_v } = x_u^{-1}
が成り立つことがわかる。

次回、もう少し複雑な場合を考える。

微分の連鎖律:係数は前?後?

微分の連鎖律

\displaystyle
x = x( u, v ), \quad y = y( u, v )
\\
\displaystyle
\frac{d}{du} = \frac{d}{dx} \frac{dx}{du} + \frac{d}{dy} \frac{dy}{du} 
\\
\displaystyle
\frac{d}{dv} = \frac{d}{dx} \frac{dx}{dv} + \frac{d}{dy} \frac{dy}{dv}

例えば、

\displaystyle
x = u^2, \quad y = v^2
\\
\displaystyle
\frac{dx}{du} = 2u, \quad  \frac{dx}{dv} = 0
\\
\displaystyle
\frac{dy}{du} = 0, \quad  \frac{dy}{dv} = 2v

この時、

\displaystyle
\frac{d}{du} = 2\sqrt{ x } \frac{d}{dx} \, or \, \frac{d}{dx} \, 2\sqrt{ x }
\\
\displaystyle
\frac{d}{dv} = 2\sqrt{ y } \frac{d}{dy} \, or \, \frac{d}{dy} \, 2\sqrt{ y }
で若干迷ったりすることはないだろうか?
後者だと、もう一回微分しないといけなくなり、答えは同じにならない。

これを f( x, y ) = x + y = u^2 + v^2微分で確認してみると、

\displaystyle
\frac{df}{du} = 2u = 2u \frac{df}{dx} = \frac{dx}{du} \frac{df}{dx}
\\
\displaystyle
\frac{df}{dv} = 2v = 2v \frac{df}{dy} = \frac{dy}{dv} \frac{df}{dy}

したがって、係数は微分の前に出しておくのが正解である。
公式を覚えてしまうのも良いが、自分で簡単な例を作って確認出来る方が安心感が強いと個人的には思う。

Green関数の遅延条件(因果律)について

以下のサイトで、一次元のGreen関数が分かり易くまとめられている。
slpr.sakura.ne.jp

 G(t,t')において t \neq t'のところでは簡単に一般形が求まるし、更に遅延条件(因果律)を課すことで具体的な形が求まるというのは、なるほどと思った。
それによって、自分が以前求めたものと一致したものが得られていた。
koideforest.hatenadiary.com

他サイトの導出と自分の導出を比較して、気が付いたことがある。
自分の場合には、問題に合った定義域の下端が設定される(例えば t \ge 0)ことによって、Green関数に制限が加わり、結果的に遅延条件になった。
一方、他サイトの方法では、遅延条件は完全に人間の都合によるものであるとして導入し、定義域は基本的に無限空間内( -\infty < t < \infty)を動くとしている。

もちろん、定義域の設定そのものが「人間の都合によるもの」でもあるのだが、Green関数に課される因果律よりも、むしろ定義域の方が問題設定として土台になっているのではないかと感じた。
そうでなければ、 t_0で自由落下を始めるとするとき、 t < t_0 での物体が自由落下し始める前のことを考えなければならなくなってしまう。
その意味で、因果律そのものは、我々が普段自然に設定する初期条件と切っても切れない関係にあると思う。

Crude adiabatic (Crude-Born-Oppenheimer) 近似

以前にBorn-Oppenheimer近似(BO近似)及び断熱(adiabatic)近似について言及した。
koideforest.hatenadiary.com

ここでは、またちょっと微妙に違うCrude-BO近似やCrude adiabatic近似を紹介する。

前回で肝となっていたのは、パラメータに依存した演算子を定義したところである。
電子-原子核相互作用演算子 \hat{V}_{en}とすると( \vec{r} = (\vec{r}_1, \vec{r}_2, \cdots)  \vec{R} = (\vec{R}_1, \vec{R}_2, \cdots) )、

\displaystyle
\hat{V}^{R_0}_{en} \neq \hat{V}_{en}
\\
\left. \hat{V}^{R_0}_{en}( \vec{r} ) \right|_{R_0 = \vec{R} } = \hat{V}_{en}( \vec{r}, \vec{R} )
つまり、パラメータ R_0を上手く調節すると、元の演算子に一致する電子位置空間の演算子 \hat{V}^{R_0}_{en}を定義した訳である。

この演算子を含む電子ハミルトニアンの固有状態 \Phi^{R_0}_{e}( \vec{r} ) で、任意の状態 \Psi( \vec{r}, \vec{R} ) を展開すると、

\displaystyle
\Psi( \vec{r}, \vec{R} ) = \sum_k C^{R_0}_{k}( \vec{R} ) \, \Phi^{R_0}_{e,k}( \vec{r} )
この展開係数は、結局は原子核波動関数そのもの C^{R_0}_{k}( \vec{R} ) = \Phi^{R_0}_{n,k}( \vec{R} )であることがわかる。

前回(BO or adiabatic)では R_0 \vec{R}に一致するように選ぶことで、原子核に対する微分方程式を得た。
Crude-BO or Crude-adiabatic では、 R_0を任意のベクトルに固定する(平衡位置に選ぶことがほとんどであろう)。
この場合、電子波動関数 \vec{R}に依存していないので、原子核位置で微分してもゼロになる。

\displaystyle
\nabla_{R_i} \Phi^{R_0}_{e,k}( \vec{r} ) = 0
そのため、BO近似やadiabatic近似で落とす項は元々含まれないことになる。

一方、電子-原子核相互作用は \vec{R_0}でしか完全に取り込めないので、余剰分が出てくる。

\displaystyle
\Delta V^{R_0}( \vec{r}, \vec{R} ) \equiv V_{en}( \vec{r}, \vec{R} ) - V^{R_0}_{en}( \vec{r} )
  = V_{en}( \vec{r}, \vec{R} ) - V_{en}( \vec{r}, \vec{R}_0 )
この余剰分が、非対角項をもたらすことになる。

これらを元に、原子核に対する微分方程式を求めると、

\displaystyle
\sum_k \left( \left(  -\sum_i \frac{\hbar^2}{2M_i} \nabla^2_{R_i} + E^{R_0}_{e,k} + V_{nn}(\vec{R}) \right) \delta_{k'k}
  + \Delta V^{R_0}_{k'k}( \vec{R} ) \right) \Phi^{R_0}_{n,k}( \vec{R} )
  = E \Phi^{R_0}_{n,k'}( \vec{R} )
\\
\displaystyle
\Delta V^{R_0}_{k'k}( \vec{R} )
  \equiv \int d\vec{r} \, \left( \Phi^{R_0}_{e,k'}( \vec{r} ) \right)^* \, \Delta V^{R_0}( \vec{r}, \vec{R} ) \, \Phi^{R_0}_{e,k}( \vec{r} )

そのため、Crude-BOでは \Delta V^{R_0}_{k'k}( \vec{R} )を完全に無視したり、Crude adiabaticでは対角項のみを拾ったりする。

こうしてみると、この原子核に対する方程式は、透熱的な場合における一つの極限のような状態に対応していることがわかる。
koideforest.hatenadiary.com
通常のBOやadiabaticの意味で落とす項は、今の場合には全く含まれていないため、通常のBOやadiabaticによる影響はゼロと言える。
その代わりに、ポテンシャル残差による非対角項が生じていて、ここをどうするかで近似の度合いを調節出来る。

 \vec{R} \approx \vec{R}_0の時には良い近似となると容易に想像付くが、 \vec{R}_0から離れると非対角項の影響が顕著になるため、平衡位置からの変位が大きい分子振動よりは、固体中のフォノンの扱いに適していると言える。

透熱的電子基底とBorn-Oppenheimer近似

前回は、断熱的電子基底(電子ハミルトニアンに対して対角)を用いたBorn-Oppenpheimer近似(BO近似)について解説した。
koideforest.hatenadiary.com
今回は、もう少し一般化した透熱的な場合を紹介する。

前回、ハミルトニアン

\displaystyle
\hat{H} = \hat{H}_e + \hat{H}_n + \hat{V}_{en}
\\
\hat{H}_e = \hat{T}_e + \hat{V}_{ee}
\\
\hat{H}_n = \hat{T}_n + \hat{V}_{nn}

と定義した。

ここで、 \hat{H}_eの中のポテンシャル項を都合の良いように分ける(or ポテンシャルを付け足す)。

\displaystyle
\hat{H}_e = \hat{T}_e + \hat{V}^{(0)}_{e} + \hat{V}^{(1)}_{e} \equiv \hat{H}^{(0)}_e + \hat{V}^{(1)}_{e}

 \vec{r} = ( \vec{r}_1, \vec{r}_2, \cdots )  \vec{R} = ( \vec{R}_1, \vec{R}_2, \cdots ) とし、 R原子核の位置をパラメータ化したものとすると、

\displaystyle
\hat{V}^R_{en} \neq \hat{V}_{en}
\\
\displaystyle
V^R_{en}( \vec{r} ) \equiv V_{en}( \vec{r}, \vec{R})
\\ 
\displaystyle
\hat{H}^R_e \equiv \hat{H}_e + \hat{V}^R_{en}
\\ 
\displaystyle
\hat{H}^{(0),R}_e \equiv \hat{H}^{(0)}_e + \hat{V}^R_{en}
と定義する。

前回の断熱的な場合(adiabatic)では、 \hat{H}^R_eの固有状態で展開したが、透熱的な場合(diabatic)ではより恣意的な \hat{H}^{(0),R}_eの基底で展開する。

\displaystyle
H^R_e( \vec{r} ) \Phi^{a,R}_{e,k}( \vec{r} ) =  E^{a,R}_{e,k} \Phi^{a,R}_{e,k}( \vec{r} )
\\ 
\displaystyle
H^{(0),R}_e( \vec{r} ) \Phi^{d,R}_{e,k}( \vec{r} ) =  E^{d,R}_{e,k} \Phi^{d,R}_{e,k}( \vec{r} )

よって、任意の状態 \Psiは次のように展開出来る。

\displaystyle
\Psi^{a,R}_{e,k}( \vec{r}, \vec{R} )
  = \sum_{k} C^{a, R}_k \Phi^{a,R}_{e,k}( \vec{r} )
  = \sum_{k} C^{d, R}_k \Phi^{d,R}_{e,k}( \vec{r} )

一見、ただ a dが入れ替わっただけに見えるが、違いを強調しておくと、

\displaystyle
< \Phi^{a,R}_{e,k'} | \hat{H}^R_e | \Phi^{a,R}_{e,k} > = E^{a,R}_{e,k} \delta_{k'k}
\\
\displaystyle
< \Phi^{d,R}_{e,k'} | \hat{H}^R_e | \Phi^{d,R}_{e,k} > = E^{d,R}_{e,k} \delta_{k'k} + V^{(1),d,R}_{e,k'k}
となり、透熱的な場合にはポテンシャルの非対角項が残る。

透熱的電子基底を用いた展開を、全ハミルトニアン \hat{H}シュレディンガー方程式に適用すると、

\displaystyle
\sum_k \left( T^d_{n,k'k}( \vec{R} ) + \left( E^{d}_{e,k}( \vec{R} ) + V_{nn}( \vec{R} ) \right)  \delta_{k'k} + V^{(1),d}_{e,k'k}( \vec{R} ) \right) \Phi^{(k)}_n( \vec{R} )
  = \Phi^{(k)}_n( \vec{R} )
\\
\displaystyle
T^d_{n,k'k}( \vec{R} ) = -\sum_i \frac{\hbar^2}{2M_i} \nabla^2_{R_i} + T^{(1),d}_{n,k'k}( \vec{R} ) \nabla_{R_i} + T^{(2),d}_{n,k'k}( \vec{R} )
 V^{(1),d}_{e,k'k}( \vec{R} ) が前回には無かった項である。

新しい項が加わって、問題が複雑になっただけのように感じられるが、 T^{(1)} T^{(2)}も基底の影響を受けている。
そのため、 V^{(1),d}_{e,k'k}( \vec{R} ) が導入される代わりに、 |T^{(i),d}| < |T^{(i),a}|と出来るような基底を見つければ、BO近似(  T^{(i)} = 0 )の影響を小さくする(精度を高める)ことが出来る。

どんな基底(もしくはポテンシャルの分け方)を選択すれば良いかは問題に依存するであろうが、基底を弄って近似を調節出来るのは面白いと思う。