function JKl2(l,mod,tvar,n1,n2,lambda,a)
%JKl2(l,mod,tvar,n1,n2,lambda,a)
%Kresli levou a pravou stranu rovnice resici existenci modu a velikost veliciny h 
% pro jednotlive mody v optickem vlakne.
%l je (celociselny) rad, mod je bud 'EH' nebo 'HE', tvar = 1 nebo -1 oznacuje, ktery
% tvar rovnice se ma kreslit, n1 je index lomu jadra, n2 index lomu plaste,
% lambda vlnova delka ve vakuu, a polomer jadra. 

ximax=10;
disp('Normovana frekvence:');
V=2*pi*a*sqrt(n1^2-n2^2)/lambda %Normovana frekvence
if mod ~= 'EH' & mod ~= 'HE'
 error('mod musi byt EH nebo HE');
end
if tvar ~= 1 & tvar ~= -1
 error('tvar musi byt rovny +1 nebo -1');
end
xi=0:0.001:ximax; xi2=0:0.001:V; %xi a xi2 je ve skriptech oznaceno h*a. xi2 konci u V a je pouzito pro pocitani vyrazu obsahujicich q.a

%Vypocet a vygrafeni leve strany:
J=tvar*besselj(l+tvar,xi)./(xi.*besselj(l,xi)); %Leva strana rovnice
plot(xi,J,'b.'); hold on;
xlabel('ha'); grid;
axis([min(xi) max(xi) -2 2]); %Rozmery grafu. Pro reseni nad ha=10 se musi zvetsit ximax. 

%Vypocet a vygrafeni prave strany:
qa=sqrt(V^2 - xi2.^2);
K=l./(qa.^2) - besselk(l+1,qa)./(qa.*besselk(l,qa));
L=(l*lambda/(2*pi))^2 * (n1^2*4*pi^2/lambda^2 - xi2.^2/a^2) .* (1./xi2.^2 + 1./qa.^2).^2;
N1=(n1^2+n2^2)/(2*n1^2);
N2=(n1^2-n2^2)/(2*n1^2);
if mod =='EH'
 modv=1;
elseif mod =='HE'
 modv=-1;   
end
P=N1*K +tvar*l./xi2.^2 - modv*sqrt((N2*K).^2 + L/n1^2); %Prava strana rovnice
plot(xi2,P,'r');
hold off;
return;

%Pripadne ulozeni krivek:
MJ=[xi' J']; MK=[xi2' P'];
save('leva.dat','MJ','-ascii');
save('prava.dat','MK','-ascii');