sk16 = [1.617271 1.622861 1.627559]; f4 = [1.611644 1.620578 1.628484]; bk7 = [1.514322 1.51680 1.522376]; baf10 = [1.665791 1.670028 1.679987]; sf10 = [1.720848 1.728250 1.746581]; global cv th rn dn; cv = [ 0 0 0 0 0 ]; th = [ 0 0 0 0 0 ]; rn = [ 1 sk16(2) 1 f4(2) 1]; dn = [ 0 sk16(3)-sk16(1) 0 f4(3)-f4(1) 0]; v=[1/50 -1/100]'; [A fz] = calculate_derivatives(@achromat1,v); v = v - A\fz; f = achromat1(v);
achromat_setup; load achromat; show_contour3; seek([0 5],@achromat2);
contour(u1,u2,map2,[0 0],'b'); axis square; hold on; contour(u1,u2,map1,[0 0],'k'); hold off; xlabel('first lens shape'); ylabel('second lens shape');
function f = achromat1(v) global cv th rn dn; cv(2:3)=lens_shape(v(1),1,rn(2)); cv(4:5)=lens_shape(v(2),0,rn(4)); yap = 50/8; uco = tan(2.0*pi/180); ya = parax([yap 0],cv,th,rn); usolve = -0.125; n=5; %yn=ya(n,1); %if (abs(yn)>1e-6) % cv(n)= -(rn(n)*usolve-rn(n-1)*ya(n-1,2))/((rn(n)-rn(n-1))*yn); %end %ya(n,2)=usolve; yc = parax([0 uco],cv,th,rn); power = -ya(n,2)/ya(1,1); perror = (yap*yap)*(power - 1/50); % power error [w wsurf petz] = ford(ya,yc,cv,th,rn,1); wv = chromatic(ya,yc,cv,th,rn,dn,1); f(1) = perror; f(2) = wv(1); f = f(:);
function f = achromat2(v) global cv th rn dn; pwr = get_powers; cv(2:3)=lens_shape(pwr(1),v(1),rn(2)); cv(4:5)=lens_shape(pwr(2),v(2),rn(4)); yap = 50/8; uco = tan(2.0*pi/180); ya = parax([yap 0],cv,th,rn); yc = parax([0 uco],cv,th,rn); w = ford(ya,yc,cv,th,rn,0.006); f(1) = w(1); % spherical aberration f(2) = w(2); % coma f = f(:);
Maintained by John Loomis, last updated 6 Feb 2003