#################################################################
## 無限に深い量子井戸の固有関数の直交性の確認
#################################################################
import numpy as np
import scipy.integrate as integrate
#################################################################
## 物理定数
#################################################################
#プランク定数
h = 6.62607015 * 1.0E-34
hbar = h / (2.0 * np.pi)
#電子の質量
me = 9.1093837015 * 1.0E-31
#電子ボルト
eV = 1.602176634 * 1.0E-19
#################################################################
## 物理系の設定
#################################################################
#量子井戸の幅(m)
L = 1.0 * 10**-9
#計算区間
x_min = -L / 2.0
x_max = L / 2.0
#固有関数
def verphi(n, x):
kn = np.pi * (n + 1) / L
return np.sqrt(2.0 / L) * np.sin(kn * (x + L / 2.0))
#被積分関数
def integral_orthonomality(x, n, m):
return verphi(m, x) * verphi(n, x)
#状態数
NS = 3
for n in range( NS + 1 ):
for m in range( NS + 1 ):
#ガウス・ルジャンドル積分
result = integrate.quad(
integral_orthonomality, #被積分関数
x_min, x_max, #積分区間の下端と上端
args=( n, m ) #被積分関数へ渡す引数
)
#ターミナルへ出力
print( "(" + str(n) + ", " + str(m) + ") " + str( result[0]) )