Давайте я на всякий случай приведу точный текст того, что закладывалось в Maple
Код:
# layer matrix propagator
m_prop:=(n,phi)->matrix(2,2,[cos(phi),I/n*sin(phi),I*n*sin(phi),cos(phi)]);
# transmission/reflection
R:=m->-(-m[2, 1] - m[2, 2] + m[1, 1] + m[1, 2])/
(-m[2, 1] + m[2, 2] + m[1, 1] - m[1, 2]);
T:=m->2/
(-m[2, 1] + m[2, 2] + m[1, 1] - m[1, 2]);
# seven-layer model of Rat
lambda0:=1.04; # mcm
n0:=1; d0:=0.4e6; #mcm
n1:=1.56+0.1*I; d1:=0.25*lambda0/1.56;
n2:=2.06+0.1*I; d2:=0.25*lambda0/2.06;
n3:=1.5; d3:=0.02e6; #mcm
phi0:=lambda->2*Pi/lambda*n0*d0;
phi1:=lambda->2*Pi/lambda*n1*d1;
phi2:=lambda->2*Pi/lambda*n2*d2;
phi3:=lambda->2*Pi/lambda*n3*d3;
m:=lambda->evalm(m_prop(n1,phi1(lambda)) &* m_prop(n2,phi2(lambda))
&* m_prop(n3,phi3(lambda)) &* m_prop(n0,phi0(lambda))
&* m_prop(n3,phi3(lambda)) &* m_prop(n2,phi2(lambda))
&* m_prop(n1,phi1(lambda)));
plotsetup(ps,plotoutput=`filter.ps`):
plot((abs(evalf(T(m(x)))))^2,x=1.0..1.00002);
Я проверил еще раз, что вычисление при Ваших первоначальных данных
Код:
n1:= 0.05 + 2.87*I;
n2:= 1.38;
n3:= n1;
lambda0:=500; # nm
d1:=0.0046*lambda0/Re(n1);
d2:=0.351*lambda0/n2;
d3:=0.0043*lambda0/Re(n3);
phi1:=lambda->2*Pi/lambda*n1*d1;
phi2:=lambda->2*Pi/lambda*n2*d2;
phi3:=lambda->2*Pi/lambda*n3*d3;
m:=lambda->evalm(m_prop(n3,phi3(lambda)) &* m_prop(n2,phi2(lambda))
&* m_prop(n1,phi1(lambda)));
plotsetup(ps,plotoutput=`filter.ps`):
plot((abs(evalf(T(m(x)))))^2,x=200..800);
воспроизводит картинку из Вашего первого поста.
Посмотрите внимательно, может, мы при разных параметрах считаем?