600字范文,内容丰富有趣,生活中的好帮手!
600字范文 > 大气复折射率matlab Matlab 计算DBR折射率 - 计算模拟 - 小木虫 - 学术 科研 互动社区...

大气复折射率matlab Matlab 计算DBR折射率 - 计算模拟 - 小木虫 - 学术 科研 互动社区...

时间:2019-06-12 12:36:34

相关推荐

大气复折射率matlab Matlab 计算DBR折射率 - 计算模拟 - 小木虫 - 学术 科研 互动社区...

取大步长 降低矩阵次方 试了一下,可以运行,你可以改回去 慢慢算。。

另外,建议不要用 循环,直接 向量化 计算可以加快运算效率

n0=1;

a0=0*pi/180;

n1=3.1;

n2=3.6;

N=2;

Lamda=700:5:900;

RR=zeros(1,length(Lamda));

for i=1:length(Lamda)

lamda=Lamda(i);

d1=68.5;

d2=59.02;

a1=asin(n0*sin(a0)/n1);

a2=asin(n1*sin(a1)/n2);

a3=asin(n2*sin(a2)/n0);

p1=2*pi*n1*d1*cos(a1)/lamda;

p2=2*pi*n2*d2*cos(a2)/lamda;

u0=4*pi*1e-7;

e0=1e-9/(36*pi);

b=sqrt(e0/u0);

c1=b*n1*cos(a1);

c2=b*n2*cos(a2);

c0=b*n0*cos(a0);

c00=b*n0*cos(a3);

A1=cos(p1);B1=-i*sin(p1)/c1;C1=-i*c1*sin(p1);D1=cos(p1);

M1=[A1 B1;C1 D1];

A2=cos(p2);B2=-i*sin(p2)/c2;C2=-i*c2*sin(p2);D2=cos(p2);

M2=[A2 B2;C2 D2];

M=(M1*M2)^N;

A=M(1,1);B=M(1,2);C=M(2,1);D=M(2,2);

r=(A*c0+B*c0*c00-C-D*c00)/(A*c0+B*c0*c00+C+D*c00);

t=(2*c0)/(A*c0+B*c0*c00+C+D*c00);

R=r*conj(r);

T=t*conj(t);

RR(i)=real(R);

end

figure;

plot(Lamda,RR);,

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。