您當前的位置:首頁 > 動漫

【MATLAB虛擬模擬】二維自由粒子波函式演化

作者:由 流浪的星星 發表于 動漫時間:2021-10-05

顏色由藍到黃表示機率密度由低到高。

高斯波包的移動與擴散

【MATLAB虛擬模擬】二維自由粒子波函式演化

兩個相同的高斯波包發生干涉

【MATLAB虛擬模擬】二維自由粒子波函式演化

兩個不同的高斯波包發生干涉

【MATLAB虛擬模擬】二維自由粒子波函式演化

別的形狀的波包

【MATLAB虛擬模擬】二維自由粒子波函式演化

【MATLAB虛擬模擬】二維自由粒子波函式演化

亂七八糟的波包的演化

【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檔案。普朗克常數等係數在程式碼中已省去。

標簽: 波包  EXP  pic  num  GIF