‘14일 만에 만드는 양자 컴퓨터’를 읽어 본다. 3일째
소개
이번은 중첩의 원리와 전자파속에 대해 정리한다.
3 전자파속의 관찰
중첩의 원리
겹치는 원리는 슈레딩거 방정식을 채우는 복수의 해를 더한 함수도 슈레딩거 방정식의 해가 되고 있다고 하는 원리입니다. 예를 들어, 다음과 같은 특정 분포에 따라 $\psi_k $를 겹친 파동 함수를 준비합니다.
$$
\psi(x,t)=\int_{-\infty}^{\infty}a(k)\varphi_k(x)e^{-i\omega(k)t}dk=\int_{-\infty} ^{\infty}a(k)e^{ikx-i\omega(k)t}dk
$$
이것을 슈레딩거 방정식에 대입해 보는, 이때 자유 공간이므로 포텐셜은 0 따라서
$$
i\hbar\frac{\partial}{\partial t}\int_{-\infty}^{\infty}a(k) e^{ikx-i\omega(k)t}dk=\frac{\hbar ^2}{2m}\frac{\partial^2}{\partial x^2}\int_{-\infty}^{\infty}a(k)e^{ikx-i\omega(k)t} dk
$$
$$
\int_{-\infty}^{\infty}a(k)\hbar\omega(k) e^{ikx-i\omega(k)t}dk=\int_{-\infty}^{\infty} a(k)\frac{\hbar^2k^2}{2m}e^{ikx-i\omega(k)t}dk
$$
$$
\int_{-\infty}^{\infty}a(k)\left[\hbar\omega(k)-\frac{\hbar^2 k^2}{2m}\right] e^{ikx-i\omega(k)t}dk=0
$$
모든 위치와 시간에 관계없이 좌변은 제로가 될 때 중첩의 원리는 성립하게 되므로, 괄호의 내용이 제로가 되는 조건에 대해 조사하면
$$
\omega(k)=\frac{\hbar k^2}{2m}
$$
이것은 $\omega$ 자체의 정의와 같기 때문에, 항상 성립한다. 즉, 항상 중첩의 원리가 성립되는 것으로 나타났다.
3.2 전자파속의 관찰
$a(k)$는 어떠한 분포라도 좋기 때문에, 적당한 정수$k_0$를 중심으로 하는 가우스 분포라고 하면 a(k)는
$$
a(k)=e^{-(\frac{k-k_0}{2\sigma})^2}
$$
이 때의 파동 함수를 플롯해 본다.
3.2.1 상수
여기서 새로 필요한 상수는
# 空間の分割数
NX = 500
# 空間分割サイズ
dx = 1.0e-9
# 計算区間
x_min = -10.0 * dx
x_max = 10.0 * dx
# 重ね合わせる数
NK = 200
# kの偏差
sigma = math.sqrt(math.log(2.0)) * 1.0e9
# kの分割
dk = 20.0 / NK
# 波束の中心エネルギー
E0 = 10.0 * eV
# 波束の中心
k0 = math.sqrt(2.0 * me * E0 / hbar ** 2)
omega0 = hbar / (2.0 * me) * k0 ** 2
# 計算時間の幅
ts = -50
te = 50
# 時間間隔
dt = 1.0e-16
# 虚数単位
I = 1.0j
3.2.2 함수 정의
플롯을 만드는 데 필요한 것은 어느 시점 t에서 그래프의 배열을 출력하는 함수가 필요하기 때문에,
def dist_t(xl, t):
psi_real = []
psi_imag = []
psi_abs = []
for x in xl:
# スケーリング
psi_c = psi(x, t) * dx * dk / 10.0
psi_real.append(psi_c.real)
psi_imag.append(psi_c.imag)
psi_abs.append(abs(psi_c))
return psi_real, psi_imag, psi_abs
그리고, (x, t)가 주어졌을 때의 확률 분포를 출력하는 함수 psi를 정의한다.
def psi(x, t):
psi_sum = 0.0 + 0.0j
for kn in range(NK):
# 定数を取得
k = k0 + dk * (kn - NK/2)
omega = hbar / (2.0 * me) * k ** 2
# 重ね合わせ
psi_sum += cmath.exp(I * (k * x - omega * t)) * cmath.exp(-((k - k0) / (2.0 * sigma)) ** 2)
return psi_sum
3.2.3 애니메이션 플롯
이들을 이용하여 플롯을 실시한다.
xl = np.linspace(x_min, x_max, NX)
# アニメーション作成用の配列
ims = []
fig1 = plt.figure(figsize=(10, 6))
for t in range(ts, te + 1):
t_real = t * dt
psi_real, psi_imag, psi_abs = dist_t(xl * dx, t)
# コマの描写
img = plt.plot(xl, psi_real, 'red')
img += plt.plot(xl, psi_imag, 'green')
img += plt.plot(xl, psi_abs, 'blue')
# コマの追加
ims.append(img)
# グラフの描画
plt.title("Gaussian wave packet(Spatial distribution)")
plt.xlabel("Position[nm]", fontsize=16)
plt.ylabel("Probability amplitude", fontsize=16)
# 描画範囲
plt.xlim([-10.0, 10.0])
plt.ylim([-0.3, 0.3])
# アニメーション生成
ani = animation.ArtistAnimation(fig1, ims, fontsize=16)
ani.save("g_wave_packet.html", writer=animation.HTMLWriter())
plt.show()
3.3 완성된 애니메이션
↓가 완성된 동영상. 시간이 갈수록 분포의 폭이 넓어지는 것을 관찰할 수 있다.
Reference
이 문제에 관하여(‘14일 만에 만드는 양자 컴퓨터’를 읽어 본다. 3일째), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/oki_uta_aiota/items/6bcee345dad16c526bfd
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
중첩의 원리
겹치는 원리는 슈레딩거 방정식을 채우는 복수의 해를 더한 함수도 슈레딩거 방정식의 해가 되고 있다고 하는 원리입니다. 예를 들어, 다음과 같은 특정 분포에 따라 $\psi_k $를 겹친 파동 함수를 준비합니다.
$$
\psi(x,t)=\int_{-\infty}^{\infty}a(k)\varphi_k(x)e^{-i\omega(k)t}dk=\int_{-\infty} ^{\infty}a(k)e^{ikx-i\omega(k)t}dk
$$
이것을 슈레딩거 방정식에 대입해 보는, 이때 자유 공간이므로 포텐셜은 0 따라서
$$
i\hbar\frac{\partial}{\partial t}\int_{-\infty}^{\infty}a(k) e^{ikx-i\omega(k)t}dk=\frac{\hbar ^2}{2m}\frac{\partial^2}{\partial x^2}\int_{-\infty}^{\infty}a(k)e^{ikx-i\omega(k)t} dk
$$
$$
\int_{-\infty}^{\infty}a(k)\hbar\omega(k) e^{ikx-i\omega(k)t}dk=\int_{-\infty}^{\infty} a(k)\frac{\hbar^2k^2}{2m}e^{ikx-i\omega(k)t}dk
$$
$$
\int_{-\infty}^{\infty}a(k)\left[\hbar\omega(k)-\frac{\hbar^2 k^2}{2m}\right] e^{ikx-i\omega(k)t}dk=0
$$
모든 위치와 시간에 관계없이 좌변은 제로가 될 때 중첩의 원리는 성립하게 되므로, 괄호의 내용이 제로가 되는 조건에 대해 조사하면
$$
\omega(k)=\frac{\hbar k^2}{2m}
$$
이것은 $\omega$ 자체의 정의와 같기 때문에, 항상 성립한다. 즉, 항상 중첩의 원리가 성립되는 것으로 나타났다.
3.2 전자파속의 관찰
$a(k)$는 어떠한 분포라도 좋기 때문에, 적당한 정수$k_0$를 중심으로 하는 가우스 분포라고 하면 a(k)는
$$
a(k)=e^{-(\frac{k-k_0}{2\sigma})^2}
$$
이 때의 파동 함수를 플롯해 본다.
3.2.1 상수
여기서 새로 필요한 상수는
# 空間の分割数
NX = 500
# 空間分割サイズ
dx = 1.0e-9
# 計算区間
x_min = -10.0 * dx
x_max = 10.0 * dx
# 重ね合わせる数
NK = 200
# kの偏差
sigma = math.sqrt(math.log(2.0)) * 1.0e9
# kの分割
dk = 20.0 / NK
# 波束の中心エネルギー
E0 = 10.0 * eV
# 波束の中心
k0 = math.sqrt(2.0 * me * E0 / hbar ** 2)
omega0 = hbar / (2.0 * me) * k0 ** 2
# 計算時間の幅
ts = -50
te = 50
# 時間間隔
dt = 1.0e-16
# 虚数単位
I = 1.0j
3.2.2 함수 정의
플롯을 만드는 데 필요한 것은 어느 시점 t에서 그래프의 배열을 출력하는 함수가 필요하기 때문에,
def dist_t(xl, t):
psi_real = []
psi_imag = []
psi_abs = []
for x in xl:
# スケーリング
psi_c = psi(x, t) * dx * dk / 10.0
psi_real.append(psi_c.real)
psi_imag.append(psi_c.imag)
psi_abs.append(abs(psi_c))
return psi_real, psi_imag, psi_abs
그리고, (x, t)가 주어졌을 때의 확률 분포를 출력하는 함수 psi를 정의한다.
def psi(x, t):
psi_sum = 0.0 + 0.0j
for kn in range(NK):
# 定数を取得
k = k0 + dk * (kn - NK/2)
omega = hbar / (2.0 * me) * k ** 2
# 重ね合わせ
psi_sum += cmath.exp(I * (k * x - omega * t)) * cmath.exp(-((k - k0) / (2.0 * sigma)) ** 2)
return psi_sum
3.2.3 애니메이션 플롯
이들을 이용하여 플롯을 실시한다.
xl = np.linspace(x_min, x_max, NX)
# アニメーション作成用の配列
ims = []
fig1 = plt.figure(figsize=(10, 6))
for t in range(ts, te + 1):
t_real = t * dt
psi_real, psi_imag, psi_abs = dist_t(xl * dx, t)
# コマの描写
img = plt.plot(xl, psi_real, 'red')
img += plt.plot(xl, psi_imag, 'green')
img += plt.plot(xl, psi_abs, 'blue')
# コマの追加
ims.append(img)
# グラフの描画
plt.title("Gaussian wave packet(Spatial distribution)")
plt.xlabel("Position[nm]", fontsize=16)
plt.ylabel("Probability amplitude", fontsize=16)
# 描画範囲
plt.xlim([-10.0, 10.0])
plt.ylim([-0.3, 0.3])
# アニメーション生成
ani = animation.ArtistAnimation(fig1, ims, fontsize=16)
ani.save("g_wave_packet.html", writer=animation.HTMLWriter())
plt.show()
3.3 완성된 애니메이션
↓가 완성된 동영상. 시간이 갈수록 분포의 폭이 넓어지는 것을 관찰할 수 있다.
Reference
이 문제에 관하여(‘14일 만에 만드는 양자 컴퓨터’를 읽어 본다. 3일째), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/oki_uta_aiota/items/6bcee345dad16c526bfd텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)