最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

3維波函數(shù)相關(guān)代碼

2023-01-13 23:28 作者:湛藍(lán)色的彼岸花  | 我要投稿

3維波函數(shù)相關(guān)

% 粒子質(zhì)量 m 、普朗克常數(shù) hbar都取為 1

% 位矢空間格點(diǎn)

L = 10; % 立方形位矢空間邊長(zhǎng)


N = 200; % 設(shè)置 N*N*N 格點(diǎn)

if N>300

? ? error('huge N');

end


x = linspace(-L/2,L/2-L/N,N)'; % 1 維格點(diǎn)


dx = x(2) - x(1); % 格點(diǎn)最小間距


[X,Y,Z]=meshgrid(x); % 3 維位矢空間格點(diǎn)


% 時(shí)間數(shù)組

dT = 0.01;

TF = 50;?

T = 0:dT:TF; % 離散化時(shí)間

NT = length(T);

%*****************************************


% 選擇方向建立球坐標(biāo)

% 定義旋轉(zhuǎn)矩陣 in O(3)

% 使用 Euler 角

Alpha = pi/80;

Ry = [cos(Alpha),0,sin(Alpha);...

? ? 0,1,0;...

? ? -sin(Alpha),0,cos(Alpha)];

Beta = pi/2-0.05*pi;

Rx = [1,0,0;...

? ? 0,cos(Beta),-sin(Beta);...

? ? 0,sin(Beta),cos(Beta)];

Gamma = -pi/80;

Rz = [cos(Gamma),-sin(Gamma),0;...

? ? sin(Gamma),cos(Gamma),0;...

? ? 0,0,1];

Rt = Ry*Rx*Rz; % 完整的旋轉(zhuǎn)矩陣

% 將球坐標(biāo) theta 為 0 的方向選擇為 Rt^(-1)*[0;0;1]

% 用自定義函數(shù)得到3維位矢格點(diǎn)中各個(gè)點(diǎn)的 r,theta,phi

R = xyz2rho(Rt(1,1)*X+Rt(1,2)*Y+Rt(1,3)*Z,...

? ? Rt(2,1)*X+Rt(2,2)*Y+Rt(2,3)*Z,...

? ? Rt(3,1)*X+Rt(3,2)*Y+Rt(3,3)*Z);

Tt = xyz2theta(Rt(1,1)*X+Rt(1,2)*Y+Rt(1,3)*Z,...

? ? Rt(2,1)*X+Rt(2,2)*Y+Rt(2,3)*Z,...

? ? Rt(3,1)*X+Rt(3,2)*Y+Rt(3,3)*Z);

P = xyz2phi(Rt(1,1)*X+Rt(1,2)*Y+Rt(1,3)*Z,...

? ? Rt(2,1)*X+Rt(2,2)*Y+Rt(2,3)*Z,...

? ? Rt(3,1)*X+Rt(3,2)*Y+Rt(3,3)*Z);


% 設(shè)置勢(shì)能

% 至少在波函數(shù)振幅顯著非零的區(qū)域內(nèi),

% 讓勢(shì)能函數(shù)盡量平緩

% 下面僅僅是一個(gè)例子

Am = 50;

al = 2;

SphP =@(x) -Am./(exp(-al*x)+exp(al*x)); % 一個(gè)勢(shì)阱函數(shù)

Up = SphP(R); % 一個(gè)球?qū)ΨQ勢(shì)能


G = 2000;

d = 0.28*L;

Hat = @(y) ((atan(y*6)+pi/2)/pi).^4; % 一個(gè)連續(xù)化的“階梯”函數(shù)

BOX =@(x,y,z) G*(Hat(x-d)+ Hat(-x-d))+...

? ? G*(Hat(y-d)+ Hat(-y-d))+...

? ? G*(Hat(z-d)+ Hat(-z-d)); % 邊長(zhǎng)為 2*d 的立方形勢(shì)阱

Ub = BOX(Rt(1,1)*X+Rt(1,2)*Y+Rt(1,3)*Z,...

? ? Rt(2,1)*X+Rt(2,2)*Y+Rt(2,3)*Z,...

? ? Rt(3,1)*X+Rt(3,2)*Y+Rt(3,3)*Z); % 將原本定義的勢(shì)阱旋轉(zhuǎn) Rt^(-1)


Ut = Up+Ub;% 總勢(shì)能


% 時(shí)間平移算符的勢(shì)能部分

UVh = exp(-1i*Ut*dT/2); % exp(-i*U*dT/2),處于位矢表象


% 時(shí)間平移算符的動(dòng)能部分

e1 = ones(N,1);?


% for even N

K = [2*pi*(-N/2:-1)/L,2*pi*(0:N/2-1)/L]';


% % for odd N

% K = [2*pi*(-N/2+1/2:-1)/L,2*pi*(0:N/2-1/2)/L];

% Kx = zeros(N,N,N);Ky = zeros(N,N,N);Kz = zeros(N,N,N);


[Kx,Ky,Kz] = meshgrid(K);% 3維動(dòng)量空間格點(diǎn)


UMmt = exp(-1i*dT*(Kx.^2+Ky.^2+Kz.^2)/2); % exp(-i*(-0.5*Laplacian)*dT), 處于動(dòng)量表象


%*****************************************

% 設(shè)置初態(tài)波函數(shù)

% 有相當(dāng)多種選擇,下面給出兩種


% 球?qū)ΨQ勢(shì)能的能量本征態(tài)

% 構(gòu)造比較精細(xì)的1維位矢格點(diǎn)

N1 = 2000;?

x1 = linspace(1e-2,L/2,N1)'; % 最好避開(kāi) 0,具體范圍和格點(diǎn)數(shù)可以視情況調(diào)整

l = 1; % 選擇角動(dòng)量量子數(shù)

m = 0; % 沿 Rt^(-1)*[0;0;1] 方向的角動(dòng)量分量量子數(shù)

nl = 1;% 該角動(dòng)量(l)下的第n個(gè)能級(jí)(按照能量從低到高),取1~5

% 計(jì)算徑向波函數(shù)

[En,Vl] = RadEig(x1,SphP(x1),l); %可以用En觀察能量本征值

% 注意 nl 對(duì)應(yīng)于束縛態(tài)還是非束縛態(tài)

% 完整的波函數(shù)

psi3 = spline(x1,Vl(:,nl).*(x1).^(-1),R).*...% 插值得到徑向波函數(shù)

? ? YLM(R,Tt,P,l,m);% 球諧函數(shù)


% %高斯波包

% % 球坐標(biāo)下的動(dòng)量中心,

%% 注意極軸方向仍是[0;0;1]

% ko = 2;

% Th = 0.5*pi;

% Ph = 0.5*pi;

% kxo = ko*sin(Th)*cos(Ph);

% kyo = ko*sin(Th)*sin(Ph);

% kzo = ko*cos(Th);

% % 球坐標(biāo)下的位矢中心

%% 注意極軸仍是[0;0;1]

% ao = 1;% 控制波包大小

% R0 = 3;

% Thr = 0.5*pi;pi/3;atan(sqrt(2));

% Phr = -pi/3;0;pi/4;

% xo = R0*sin(Thr)*cos(Phr);

% yo = R0*sin(Thr)*sin(Phr);

% zo = R0*cos(Thr);

% % 高斯波包波函數(shù)

% psi3 = exp(-((X-xo).^2+(Y-yo).^2+(Z-zo).^2)/(ao^2))...

%? ? ?.*exp(1i*(X*kxo+Y*kyo+Z*kzo));?


psi3 = psi3/sqrt(sum(sum(sum(abs(psi3).^2)))); %歸一化


%*****************************************

% 時(shí)間演化并繪圖,Strang 方法

% exp(-i*H*dT)=exp(-i*U*dT/2)*exp(-i*(-0.5*Laplacian)*dT)*exp(-i*U*dT/2)+O(dT^3)


%建立 figure 和 axes

fig=figure;

fig.Position = [0 0 2000 1000];

ax = axes(fig);

ax.Position = [0.2 0.05 0.7 0.9];

whitebg(fig,'black');

alphamap(ax,'default' );


Z0 = zeros(N,N);

Al = 5e4; % 控制顏色深度(其實(shí)是不透明度)的參數(shù)

scale = 1;% 控制球坐標(biāo)輪廓的大小比例的參數(shù)


% 密度分布

rho3 = abs(psi3).^2;

rho2 = sum(rho3,3); % 沿 [0;0;1] 方向投影為二維


% 顯示初態(tài)波函數(shù)

Pr = surf(ax,x,x,Z0,Z0,...

? ? 'FaceColor','interp','EdgeColor','none',...

? ? 'AlphaData',rho2*Al,'FaceAlpha','interp',...

? ? 'AlphaDataMapping','direct');


ax.XAxis.Visible = 'off';

ax.YAxis.Visible = 'off';

grid(ax,'off');

hold(ax,'on')


% 球坐標(biāo)輪廓

theta = 0:0.01*pi:2*pi;? ??

plot(ax,scale*4*(1/al)*cos(theta),...

? ? scale*4*(1/al)*sin(theta),'y.','linewidth',0.01);

reqx = scale*4*(1/al)*cos(theta);

reqy = scale*4*(1/al)*sin(theta);

reqz = 0*reqx;

req = [reqx;reqy;reqz];

req = Rt'*req;

plot3(ax,req(1,:),req(2,:),req(3,:),'y--','linewidth',0.01);

va = Rt'*[0;0;1];

ls = -2*scale*(4/al):1e-1*scale*(4/al):2*scale*(4/al);

plot3(ax,va(1)*ls,va(2)*ls,va(3)*ls+2.1*scale*(4/al),...

? ? 'y--','linewidth',0.01);

plot3(ax,va(1)*[ls(1)/2,ls(end)/2],...

? ? va(2)*[ls(1)/2,ls(end)/2],...

? ? va(3)*[ls(1)/2,ls(end)/2]+2.1*scale*(4/al),...

? ? 'yo','linewidth',0.01);

plot3(ax,0,0,0+2.1*scale*(4/al),'y*','linewidth',0.01);


% 繪圖的一些參數(shù)

pbaspect([1 1 1]);

campos([0 0 L])

camtarget([0 0 0])

axis(ax,[-0.5*L 0.5*L -0.5*L 0.5*L]);


drawnow


delete(Pr);


% 時(shí)間演化

for t = 1:NT

? ? % exp(-i*U*dT/2)

? ? psi3 = full(UVh.*psi3);

? ? %exp(-i*(-0.5*Laplacian)*dT)

? ? psik = full(UMmt.*fftshift(fftn(psi3)));

? ? % exp(-i*U*dT/2)

? ? psi3 = full(UVh.*ifftn(ifftshift(psik)));

? ??

? ? % 密度分布

? ? rho3 = (abs(psi3)).^2;

? ? rho2 = sum(rho3,3);% 投影至二維

? ? % 繪圖

? ? Pr = surf(ax,x,x,Z0,Z0,'FaceColor','interp','EdgeColor','none',...

? ? ? ? 'AlphaData',rho2*Al,'FaceAlpha','interp','AlphaDataMapping','direct');

? ??

? ? TxtT = text(ax,-1.1*L,0.2*L,...

? ? ? ? ['$T=',num2str(dT*t,'%.3f'),'$'],...

? ? ? ? 'Interpreter','latex','FontSize',30);% 顯示時(shí)間

? ??

? ??

? ? axis(ax,[-0.5*L 0.5*L -0.5*L 0.5*L]);

? ? pbaspect([1 1 1]);

? ? campos([0 0 L])

? ? camtarget([0 0 0])

? ??

? ? drawnow

? ??

? ? delete(Pr);

? ? delete(TxtT);

end


hold(ax,'off')


%*****************************************

%自定義函數(shù)

function Rho = xyz2rho(x,y,z) % Cartesian 坐標(biāo) to 球坐標(biāo)的 r

Rho = sqrt(x.^2+y.^2+z.^2);

end


function th = xyz2theta(x,y,z)% 球坐標(biāo)的theta

r = sqrt(x.^2+y.^2+z.^2);

c = z./r;

c(isinf(c))=0;

c(isnan(c))=0;

th = acos(c);

end


function ph = xyz2phi(x,y,z) % 球坐標(biāo)的phi

ph = atan2(y,x);

end


function [En,V] = RadEig(x1,U1,l)?

% 計(jì)算球?qū)ΨQ情形的等效 1 維本征函數(shù),l 為角動(dòng)量量子數(shù)

% 要求格點(diǎn) x1 間隔均勻,間隔不能過(guò)小,但數(shù)組長(zhǎng)度不宜過(guò)大

% x1 中元素應(yīng)當(dāng)都是正實(shí)數(shù),最小值接近 0

N1 = length(x1);

dx1 = x1(2)-x1(1);

e = ones(N1,1);?

% 離散化二階導(dǎo)數(shù),硬邊界

Lap1 = spdiags([e -2*e e],[-1 0 1],N1,N1)/dx1^2;?

% 有效勢(shì)能

xp2 = x1.^(-2);

% xp2(isinf(xp2)) = dx1^(-2);% 截?cái)酂o(wú)窮大值

U1 = U1+0.5*l*(l+1).*xp2;

% 1維 Hamiltonian

H0 = -0.5*Lap1+spdiags(U1+100,0,N1,N1);

% 計(jì)算 |En+100| 最小的 5 個(gè)本征矢和相應(yīng)的 本征值+100

% 因此基態(tài)能量最好大于 -100??勺孕行薷木唧w數(shù)值

[V,D]=eigs(full(H0),5,'smallestabs');

% 本征能量

En = diag(D)-100;

end


function Ylm = YLM(R,T,P,l,m) % 球諧函數(shù) Ylm(r,theta,phi)

Nx = size(R);?

Nx = Nx(1);


C1 = sqrt(((2*l+1)*factorial(l-abs(m)))/(4*pi*factorial(l+abs(m))));

lgd = legendre(l,cos(T));

if l

? ? Ylm = C1*reshape(lgd(abs(m)+1,:,:,:),Nx,Nx,Nx)...

? ? ? ? .*exp(1i*m*P);

else

? ? Ylm = C1*lgd...

? ? ? ? .*exp(1i*m*P);

end

end


3維波函數(shù)相關(guān)代碼的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
都安| 枞阳县| 琼海市| 资溪县| 泊头市| 邳州市| 东丽区| 姜堰市| 宁武县| 雷山县| 雅江县| 深圳市| 宁津县| 五莲县| 宁南县| 台中县| 科技| 阳西县| 陇南市| 六安市| 新巴尔虎右旗| 钦州市| 合阳县| 贵南县| 蒙阴县| 东源县| 松阳县| 崇文区| 平塘县| 麦盖提县| 北碚区| 右玉县| 天水市| 曲阳县| 江陵县| 德安县| 陕西省| 驻马店市| 乐安县| 桂平市| 昌邑市|