資源簡(jiǎn)介
使用matlab實(shí)現(xiàn)對(duì)高階邦加球的實(shí)驗(yàn)驗(yàn)證,調(diào)試通過(guò),代碼詳細(xì)
代碼片段和文件信息
%產(chǎn)生高階邦加球光場(chǎng)
clc;
close?all;
clear?all;
X=linspace(-11256);?
XX=repmat(X2561);
Y=linspace(1-1256);
YY=repmat(Y‘1256);
pha=atan(YY./XX);
i=sqrt(-1);
P=sqrt(XX.^2+YY.^2);
for??m=1:256
????for?n=1:256
????????if?P(mn)<=1;
????????????Mx(mn)=1;%左旋瓊斯矢量
????????????My(mn)=-i;
????????????Nx(mn)=1;%右旋瓊斯矢量
????????????Ny(mn)=i;
???????????Lx(mn)=1/sqrt(2)*exp(-i*pha(mn)).*Mx(mn);%高階球的基矢量?左旋表達(dá)式
???????????Ly(mn)=1/sqrt(2)*exp(-i*pha(mn)).*My(mn);
???????????Rx(mn)=1/sqrt(2)*exp(i*pha(mn)).*Nx(mn);%右旋表達(dá)式
???????????Ry(mn)=1/sqrt(2)*exp(i*pha(mn)).*Ny(mn);
????????else?
????????????Mx(mn)=0;
????????????My(mn)=0;
????????????Nx(mn)=0;
????????????Ny(mn)=0;
????????????Lx(mn)=0;
????????????Ly(mn)=0;
????????????Rx(mn)=0;
????????????Ry(mn)=0;
????????end
????end
end
for?m=1:256
????for?n=1:256
????????if?P(mn)>2/3&&P(mn)<=1;
????????????Ax(mn)=0.707*Rx(mn)+0.707*Lx(mn);
????????????Ay(mn)=0.707*Ry(mn)+0.707*Ly(mn);
????????elseif?P(mn)>1;
????????????Ax(mn)=0;
????????????Ay(mn)=0;
????????elseif?P(mn)>1/3&&P(mn)<=2/3;
????????????Ax(mn)=1.307*Rx(mn)+0.541*exp(i*pi/2).*Lx(mn);
????????????Ay(mn)=1.307*Ry(mn)+0.541*exp(i*pi/2).*Ly(mn);
????????elseif?P(mn)<=1/3;
????????????Ax(mn)=2*Rx(mn);
????????????A
- 上一篇:卡方檢驗(yàn)代碼
- 下一篇:均勻球體剖面重力異常正演模擬Matlab代碼
評(píng)論
共有 條評(píng)論