📄 multi_media.m
字号:
%multi-meida perpendicular input%电场对理想介质的垂直入射;
%copyright 属于研学论坛bbs.matwav.com和plasma
clear all;
k1=1;
k2=2;
k3=4;
ei10=1;
mu0=4*pi*1.e-7;
epsilon0=1.e-9/(36*pi);
epsilonr1=2;%二区的相对介电常数
epsilonr2=8;%三区的相对介电常数
%epsilonr2大则inta2小,inta2=sqrt(mu0/epsilon2);
%并且导致intad变化,同时改变了3区的分布情形。
d=-10;
%注意!!!!!!!!!!!
%当d=npi/k2并且inta3=inta0的时候反射为零。
inta0=sqrt(mu0/epsilon0);
inta1=inta0;
inta2=inta0/sqrt(epsilonr1);%1-2-3区的波阻抗
inta3=inta0/sqrt(epsilonr2);%三区的相对介电常数
%如果inta3=inta0那么k3=k1;
%!!!!!!!!!!!!!!!!!!!!!!!!!!!
%lambla/2介质演示;d=-10*pi/k2;inta3=inta1;k3=k1;
%这里做调节就可以了。
%如果inta3!=inta0,那么也会有发射发生。
%!!!!!!!!!!!!!!!!!!!!!!!!!!!
gama2=(inta3-inta2)/(inta3+inta2);%1区反射系数
intad=inta2*((exp(i*k2*d)+gama2*exp(-i*k2*d))/(exp(i*k2*d)-gama2*exp(-i*k2*d)));%等效波阻抗
%!!!!!!!!!!!!!!!!!!!!!!!!!!!
%做lambla/4介质的演示。d=-4*pi-pi/(2*k2);inta3=inta0/sqrt(5);inta2=sqrt(inta1*inta3);intad=inta1;
%!!!!!!!!!!!!!!!!!!!!!!!!!!!
framemax=500;
omega=20*pi/framemax;
delz=.2;
z1min=-30;
z1max=d;%the first zone;
z1=[z1min:delz:z1max];
z2min=d;
z2max=0;%the second zone;
z2=[z2min:delz:z2max];
y2area=[-1:2/length(z2):1-2/length(z2)];
y2area=y2area';
area2=y2area*z2;%画出一个介质区(2区);
area2(:,:)=1.;
area2(:,1)=0.;area2(:,length(z2))=0.;
area2(1,:)=0.;area2(length(z2),:)=0.;
z3min=0;
z3max=20;%the third zone;
z3=[z3min:delz:z3max];
jr1=0;ji1=0;ji2=0;jr2=0;ji3=0;
for t=1:framemax;
contourf(z2,y2area,area2);
colormap winter;%画出一个介质区(2区);
hold on; grid on;
ei1=ei10*exp(i*omega*t-i*k1*(d+z1));
%1区入射波;
er1=((intad-inta1)/(intad+inta1))*ei10*exp(i*omega*t+i*k1*(d+z1));
%1区反射波;
%公式:er1=((intad-inta1)/(intad+inta1))*ei10*exp项
ei2=(1-abs(gama2))*ei10*exp(i*omega*t-i*k2*(d+z2));
%2区入射波;
%公式:ei2=(1-gama2)*ei10*exp项;
er2=abs(gama2)*(1-abs(gama2))*ei10*exp(i*omega*t+i*k2*(d+z2));
%2区反射波;
%公式:gama2*ei20*exp项;
ei3=inta3*((1-abs(gama2))-abs(gama2)*(1-abs(gama2)))*ei10*exp(i*omega*t-i*k3*(d+z3))/inta3;
%公式:ei3=(ei20+er20)*exp项;
if t<=length(z1)
if ji1<length(z1);
ji1=ji1+1;
for jij=t:1:length(z1);
ei1(jij)=0;
end
end
end
plot(z1,real(ei1), 'MarkerFaceColor','r',...
'MarkerEdgeColor','k', 'Color','blue',...
'LineWidth',2,...
'MarkerSize',50); %1区入射波
hold on;
if t>length(z1)
if jr1<length(z1);
jr1=jr1+1;
for jr1j=1:length(z1)-jr1;
er1(jr1j)=0;
end
end
plot(z1,real(er1), 'MarkerFaceColor','r',...
'MarkerEdgeColor','k', 'Color','red',...
'LineWidth',2,...
'MarkerSize',50); %1区反射波
plot(z1,ei1+er1, 'MarkerFaceColor','r',...
'MarkerEdgeColor','k', 'Color','black',...
'LineWidth',2,...
'MarkerSize',50); %1区反射波和入射波叠加。
end
hold on;
if t>=length(z1);
if ji2<length(z2);
ji2=ji2+1;
for ji2j=t+1-length(z1):1:length(z2);
ei2(ji2j)=0;
end
end
plot(z2,real(ei2), 'MarkerFaceColor','r',...
'MarkerEdgeColor','k', 'Color','magenta',...
'LineWidth',2,...
'MarkerSize',50); %2区入射波。
end
hold on;
if t>=length(z1)+length(z2);
if jr2<length(z2);
jr2=jr2+1;
for jr2j=1:length(z2)-jr2;
er2(jr2j)=0;
end
end
plot(z2,real(er2), 'MarkerFaceColor','r',...
'MarkerEdgeColor','k', 'Color','yellow',...
'LineWidth',2,...
'MarkerSize',50); %2区反射波。
end
hold on;
if t>=length(z1)+length(z2);
if ji3<length(z3);
ji3=ji3+1;
for ji3j=t+1-length(z1)-length(z2):1:length(z3);
ei3(ji3j)=0;
end
end
plot(z3,real(ei3), 'MarkerFaceColor','r',...
'MarkerEdgeColor','k', 'Color','green',...
'LineWidth',2,...
'MarkerSize',50); %3区入射波。
end
title('蓝色1区正向行波,红色为1区负向行波(反射波),黑色为1区形成的驻波。');
text(z1min+3,1.8*ei10,'粉红为2区正向行波,黄色为2区反向行波。','FontSize',18,'EdgeColor','red');
text(z1min+3,1.3*ei10,'绿色为3区正向行波。','FontSize',18,'EdgeColor','red');
axis([z1min z3max -2 2]);
grid on;
hold off
getframe;
% t=t/2.;
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -