📄 bistable.m
字号:
% bistable 光学双稳特性曲线
% 调制作用:It=Ii*T(phi);
% 反馈作用:phi=phi_0+K*It;
% 得透射率T(phi)与相移phi的反馈关系是
% T(phi)=[phi-phi_0]/[K*Ii]
% 式中phi_0为初始相移
% 对于多干涉(F-P干涉)有:
% T(phi)=1/[1+F*(sin(phi/2))^2]
%
close all;
K=0.9;phi_0=0.1; F=0.98; Ii=linspace(6,9,200); Ik=20;
fi=linspace(0,16*pi,200);A=linspace(0,360,length(Ii));
ff=[fi-phi_0]/[K*Ik].*(1+F*sin(fi/2).^2)-1;
hp=plot(fi,ff);hold on;plot(xlim,[0,0],'r');
set(gcf,'DoubleBuffer','on');
% \copyright: Zhengjun Liu
% E-mail: zjliu2001@163.com
% Date: 2007/04/06
T1=text(sum([0.5,0.5].*xlim),sum(ylim.*[0.5,0.5]),'*******/\_/\',...
'rotation',35,'fontname','times new roman','fontsize',20,'color','m');
T2=text(5,sum([0.2,0.8].*ylim),...
'(\phi-\phi_0)/(K*I_i)\times[1+F*sin^2(\phi/2])-1',...
'fontsize',16,'fontname','times new roman');
for k=1:length(Ii);
Ik=Ii(k);
ff=[fi-phi_0]/[K*Ik].*(1+F*sin(fi/2).^2)-1;
fun=inline(['[(phi-',num2str(phi_0),')/',...
num2str(K*Ik),'].*(1+',num2str(F),...
'*sin(phi/2).^2)-1'],'phi');
Cc=ff(1:end-1).*ff(2:end);
[x]=find(Cc<0);
if length(x)==1;
ft=fzero(fun,fi(x));
It1(k)=Ik*(ft-phi_0)/[K*Ik];
It2(k)=It1(k);
elseif length(x)>1;
ft=fzero(fun,fi(x(1)));
It1(k)=Ik*(ft-phi_0)/[K*Ik];
ft=fzero(fun,fi(x(end)));
It2(k)=Ik*(ft-phi_0)/[K*Ik];
end
set(hp,'YData',ff);
title(['Ii=',num2str(Ik),'时, 有',num2str(length(x)),'个交点'],'color','r');
set(T1,'Rotation',A(k),'color',rand(1,3),...
'Position',[mean(xlim),mean(ylim),0]);
set(T2,'Position',[5,sum([0.2,0.8].*ylim),0]);
pause(0.2);
end
figure;plot(Ii,It1,'b');hold on;plot(Ii,It2,'r');
% text(sum([0.7,0.3].*xlim),sum(ylim.*[0.6,0.4]),'*******',...
% 'rotation',35,'fontname','times new roman','fontsize',20,'color','c');
xlabel('Input','fontsize',14,'fontname','Times new roman');
ylabel('Output','fontsize',14,'fontname','Times new roman');
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -