【MATLAB虛擬模擬】二維自由粒子波函式演化
顏色由藍到黃表示機率密度由低到高。
高斯波包的移動與擴散
兩個相同的高斯波包發生干涉
兩個不同的高斯波包發生干涉
別的形狀的波包
亂七八糟的波包的演化
clear
;
Xs
=
1
/
100
;
%傅立葉變換的取樣率
xm
=
10
;
%傅立葉變換的取樣範圍
x
=[
0
:
Xs
:
xm
-
Xs
];[
x
,
y
]=
meshgrid
(
x
,
x
);
psi0
=
15
*
exp
(
100
i
*
(
x
+
y
-
7
))
。*
exp
(
-
7
*
(
x
-
3。5
)
。^
2
-
7
*
(
y
-
3。5
)
。^
2
)
+
。。。
15
*
exp
(
300
i
*
(
x
+
y
-
4
))
。*
exp
(
-
20
*
(
x
-
2
)
。^
2
-
20
*
(
y
-
2
)
。^
2
);
%初始時刻波函式在座標空間的分佈
phi0
=
fft2
(
psi0
);
%初始時刻波函式在動量空間的分佈
Ps
=
1
/
Xs
;
p
=(
0
:
length
(
phi0
)
-
1
)
*
Ps
/
length
(
phi0
);[
px
,
py
]=
meshgrid
(
p
,
p
);
ts
=
1
/
1000
;
fig
=
figure
;
pic_num
=
1
;
for
i
=
1
:
300
phi
=
phi0
。*
exp
(
-
1
i
*
(
px
。^
2
+
py
。^
2
)
*
i
*
ts
);
psi
=
ifft2
(
phi
);
rho
=
abs
(
psi
)
。^
2
;
image
(
rho
);
axis
([
300
,
500
,
300
,
500
]);
axis
off
;
M
=
getframe
(
fig
);
C
{
pic_num
}=
frame2im
(
M
);
pic_num
=
pic_num
+
1
;
end
for
idx
=
1
:
pic_num
[
B
,
map
]=
rgb2ind
(
C
{
idx
},
256
);
if
idx
==
1
imwrite
(
B
,
map
,
‘quantum。gif’
,
‘gif’
,
‘Loopcount’
,
inf
,
‘DelayTime’
,
0。06
);
else
imwrite
(
B
,
map
,
‘quantum。gif’
,
‘gif’
,
‘WriteMode’
,
‘append’
,
‘DelayTime’
,
0。06
);
end
end
執行程式後會看到動畫,動畫結束後會生成一個gif檔案。普朗克常數等係數在程式碼中已省去。