Schott Dispersion Formula

Matlab code for dispersion calculation

function  rn  = schott(a,wvln)
% SCHOTT  
% 
%    SCHOTT(A,WVLN) returns a matrix whose elements are the
%                   refractive indices calculated using the Schott
%                   dispersion formula.
%
%     SCHOTT(A)     returns the refractive index at 0.58756 (n_d) 
%  
%          A     vector of Schott coefficients
%       WVLN     vector of wavelengths (microns)
%
%
 if (nargin<2) 
    wvln = [0.58756];
 end
 ws = wvln.*wvln;
 rn = sqrt(a(1)+ws.*a(2)+ (a(3)+(a(4)+(a(5)+a(6)./ws)./ws)./ws)./ws);

Example Calculation

>> a = [2.2718929 -1.0108077e-2 1.0592509e-2 2.0816965e-4 -7.6472538e-6 4.9240991e-7];
>> wvl = [ 0.48613 0.58756 0.65627];
>> schott(a,wvl)

ans =

    1.5224    1.5168    1.5143

>> format long

>> rn = schott(a,wvl)

rn =

   1.52237718435987   1.51679977054573   1.51432312962362

>> abbe = (rn(2)-1)/(rn(1)-rn(3))

abbe =

  64.16640902867334

>> w = linspace(0.4,0.7,100);
>> plot(w,schott(a,w))
>> xlabel('wavelength   \lambda (\mu m)')
>> ylabel('index')
>> title('Refractive index vs \lambda for BK7 glass');
>> [fig1,map] = capture;
>> imwrite(fig1,map,'fig1.tif');


Maintained by John Loomis, last updated 10 Sept 1997