if (i==1|i==N)
n(1)=one;
n(N)=last;
e(1)=n(1)^2;
e(N)=n(N)^2;
% R_n(N)=R_N;
h(1)=0;
h(N)=0;
gama(1)=one*cos(arg1);
gama(N)=sqrt(last^2-(one*sin(arg1))^2);
else
n(i)= 1.416;%n(i)=sqrt(one*last);
e(i)=n(i)^2;
h(i)=height/(N-2);
gama(i)=sqrt(e(i)-(one*sin(arg1))^2);
end
end
R_ns(N)=R_N;
R_np(N)=R_N;
upzs(1)=1;
upzp(1)=1;
for i=(N-1):-1:1
Rs(i)=(gama(i)/u-gama(i+1)/u)/(gama(i)/u+gama(i+1)/u);
Rp(i)=(gama(i)/e(i)-gama(i+1)/e(i+1))/(gama(i)/e(i)+gama(i+1)/e(i+1));
Rzgs(i)=(Rs(i)+R_ns(i+1))/(1+Rs(i)*R_ns(i+1));
Rzgp(i)=(Rp(i)+R_np(i+1))/(1+Rp(i)*R_np(i+1));
Tzgs(i)=(1+Rs(i))/(1+Rs(i)*R_ns(i+1));
Tzgp(i)=(1+Rp(i))/(1+Rp(i)*R_np(i+1));
R_ns(i)=exp(xu*k0*gama(i)*h(i))*Rzgs(i)*exp(xu*k0*gama(i)*h(i));
R_np(i)=exp(xu*k0*gama(i)*h(i))*Rzgp(i)*exp(xu*k0*gama(i)*h(i));
end
for i=1:(N-1)
upfs(i+1)=Tzgs(i)*upzs(i);
upfp(i+1)=Tzgp(i)*upzp(i);
downs(i)=Rzgs(i)*upzs(i);
downp(i)=Rzgp(i)*upzp(i);
upzs(i+1)=exp(xu*k0*gama(i+1)*h(i+1))*upfs(i+1);
upzp(i+1)=exp(xu*k0*gama(i+1)*h(i+1))*upfp(i+1);
end
Rs=abs(Rzgs(1))^2;
Ts=abs(upfs(N)/upzs(1))^2*real(gama(N)*u/(gama(1)*u));
Rp=abs(Rzgp(1))^2;
Tp=abs(upfp(N)/upzp(1))^2*real(gama(N)*e(1)/(gama(1)*e(N)));
Rsp=(Rs+Rp)/2;