📄 ozdeger3.m
字号:
%----------------------------------------------------------------------------
% Optik Filmin TE Tipi 謟degerleri
%-----------------------------------------------------------------------------
%
% gerekli function alt programlari : foz.m, slab.m, alan.m, normal.m, tabint.m
%
% giris parametreleri :
% n1 film b鰈gesi
% n2(ust bolge) ve n3(alt bolge) dis b鰈geler
% t =h/lamda
% d1=D1/lambda alt bolgenin kalinligi
% d2=D2/lambda ust bolgenin kalinligi
function data=ozdeger2(fig, tag)
data=get(fig, 'UserData');
global koksayisi;
global kokler;
global modnumarasi;
switch tag
case 'edit1'
data.n1=get(data.h(17), 'String');
case 'edit2'
data.n2=get(data.h(18), 'String');
case 'edit3'
data.n3=get(data.h(19), 'String');
case 'edit4'
data.nmin=get(data.h(20), 'String');
case 'edit5'
data.t=get(data.h(21), 'String');
case 'edit6'
data.d1=get(data.h(22), 'String');
case 'edit7'
data.d2=get(data.h(23), 'String');
case 'edit12'
data.modno=get(data.h(28), 'String');
case 'edit14'
data.mod=get(data.h(40), 'String');
case 'izgara'
izgara=get(data.h(38),'value');
if izgara == 0
set(data.h(33),'Xgrid','off');
set(data.h(33),'Ygrid','off');
else
set(gca,'Xgrid','on');
set(gca,'Ygrid','on');
end
case 'push1'
if (isempty(data.n1)) | (isempty(data.n2)) | (isempty(data.n3)) | (isempty(data.nmin)) | (isempty(data.t)) | (isempty(data.d1)) | (isempty(data.d2))
HataMesaj; return;
end
n1=str2num(data.n1);
n2=str2num(data.n2);
n3=str2num(data.n3);
nmin=str2num(data.nmin);
t=str2num(data.t);
d1=str2num(data.d1);
d2=str2num(data.d2);
if ( n1<n2 | n1<n3 | n2<n3 ) | (n1==0 | n2==0 | n3==0 | t==0 | d1==0 | d2==0)
HataMesaj; return;
end
% N=200;
% eps = 1.e-8;
clear kokler;
u=n1;
m=0;
sayac=0;
while nmin>sayac
z=foz(u,t,d1,d2,n1,n2,n3);
kok=z;
if (kok<=n2) & (kok~=0)
break;
end
if kok~=0
m=m+1;
kokler(m)=kok;
sayac=sayac+1;
end
u=u-0.001;
if u<=n2
break;
end
end
R=riv3(m,n1,n2,n3,t,d1,d2,kokler);
for i=1:1:m
for v=1:1:m
if i==v
ZZZ(i,v)=R(i,v)+(kokler(v)^2);
else
ZZZ(i,v)=R(i,v);
end
end
end
[OzVek,DDD]=eig(ZZZ);
for i=1:1:m
for v=1:1:m
if i==v
Beta(i)=sqrt(DDD(i,i));
end
end
end
Buyuk_Mod=0;
Buyuk_Beta=0;
for i=1:1:m
if Beta(i) > Buyuk_Beta
Buyuk_Beta=Beta(i);
Buyuk_Mod=i;
end
end
[BS,I]=sort(Beta);
m_floor=floor(m/2);
for i=0:1:(m_floor-1)
gecici=BS(m-i);
BS(m-i)=BS(i+1);
BS(i+1)=gecici;
gecici2=I(m-i);
I(m-i)=I(i+1);
I(i+1)=gecici2;
end
data.R=R;
data.BS=BS;
data.I=I;
data.OzVek=OzVek;
data.ZZZ=ZZZ;
data.DDD=DDD;
data.m=m;
koksayisi=m;
data.kokler=kokler;
set(data.h(24), 'String',num2str(m));
set(data.h(25), 'String',num2str(kokler,6));
% Normalizasyon Katsay齦ar齨齨 Hesab
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -