空気の屈折率、Calculation of Refraction Index of light in the air.

Equation (n_{s}-1)10^{8}=C(\lambda )P/T(1+P(57.9\times 10^{-8}-9.325\times 10^{-4}/T+0.25844(1/T)^{2}))(1-0.16F/P)C(\lambda)=2371.34+683939.7(130-1/\lambda^{2})^{-1}+4547.3(38.9-1/\lambda^{2})^{-1}Scilab 2270122702 2270322704
 -->clear;
-->function Result=func()
-->    C=2371.34+683939.7*(130-1/lambda^2)^-1+4547.3*(38.9-1/lambda^2)^-1;
-->    n0=C*P/T*(1+P*(57.9*10^-8-9.325*10^-4*1/T+0.25844*(1/T)^2))*(1-0.16*F/P);
-->    n0=n0/10^8+1;
-->    n0=(n0-1)*10^3;
-->    Result=n0;
-->endfunction
-->for www=1:4;
-->    funcprot(0);
-->    NNN=10;
-->    equation='Result=func()';
-->    xset("window",www);clf();xgrid();
-->    /////////////////////////////////////
-->    P=1013.25;//Atmospheric pressure(hPa)
-->    F=10;//Water vapor pressure(hPa)
-->    T=300;//Temperature(K)
-->    lambda=0.5;//Observation wavelenght of light(μm)
-->    graphtitle='Atmospheric Refraction.※0.25→1.00025.';
-->    if www==1 | www==2 then
-->        lambda=linspace(0.38,0.75,NNN);
-->        T=linspace(280,300,NNN);
-->        xtitle(graphtitle+'P=1013.25,F=10','λ(μm)','T(K)','RI',boxed=1);
-->        fnt='[Result]=func1(lambda,T)';
-->        deff(fnt,equation);
-->        if www==1 then 
-->            R=245;G=255;B=250;color(R,G,B);idcolor=color(R,G,B);
-->            fplot3d(lambda,T,func1,flag=[idcolor , 2 , 4]);
-->            func1(0.38,280)    
-->            func1(0.75,300)    
-->        elseif www==2 then
-->            nz=30;
-->            contour(lambda,T,func1,nz,flag=[2,2,4]);
-->            axe=gca();
-->            for iii=1:nz;
-->                cnt=axe.children(iii).children;
-->                eee=length(cnt);
-->                if eee==2 then
-->                    cnt(2).font_size=4;
-->                end
-->            end
-->        end
-->    else
-->        P=linspace(1000,1020,NNN);
-->        F=linspace(10,15,NNN);
-->        xtitle(graphtitle+'T=300,λ=10','P(hPa)','F(hPa)','RI',boxed=1);
-->        fnt='[Result]=func2(P,F)';
-->        deff(fnt,equation);
-->        if www==3 then 
-->            R=245;G=255;B=250;color(R,G,B);idcolor=color(R,G,B);
-->            fplot3d(P,F,func2,flag=[idcolor , 2 , 4]);
-->            func2(1000,10)    
-->            func2(1020,15)    
-->        elseif www==4 then
-->            nz=30;
-->            contour(P,F,func2,nz,flag=[2,2,4]);
-->            axe=gca();
-->            for iii=1:nz;
-->                cnt=axe.children(iii).children;
-->                eee=length(cnt);
-->                if eee==2 then
-->                    cnt(2).font_size=4;
-->                end
-->            end
-->        end
-->    end 
-->    currentaxes=gca();
-->    currentaxes.font_size=6;
-->    currentaxes.title.font_size=6;
-->    currentaxes.x_label.font_size=6;
-->    currentaxes.y_label.font_size=6;
-->    currentaxes.z_label.font_size=6;
-->    currentaxes.tight_limits="on";
-->    currentaxes.cube_scaling="on";
-->    currentaxes.auto_clear="on";
-->    currentaxes.auto_scale="on";
-->//    if www==1 | www==3 then
-->        //zlim=currentaxes.data_bounds(:,3)
-->        //zlim(1)
-->        //zlim(2)
-->//    end
-->end
 ans  =
 
    0.2917569  
 ans  =
 
    0.2640598  
 ans  =
 
    0.2639917  
 ans  =
 
    0.2690703  
SciNotes
clear;
function Result=func()
    C=2371.34+683939.7*(130-1/lambda^2)^-1+4547.3*(38.9-1/lambda^2)^-1;
    n0=C*P/T*(1+P*(57.9*10^-8-9.325*10^-4*1/T+0.25844*(1/T)^2))*(1-0.16*F/P);
    n0=n0/10^8+1;
    n0=(n0-1)*10^3;
    Result=n0;
endfunction
for www=1:4;
    funcprot(0);
    NNN=10;
    equation='Result=func()';
    xset("window",www);clf();xgrid();
    /////////////////////////////////////
    P=1013.25;//Atmospheric pressure(hPa)
    F=10;//Water vapor pressure(hPa)
    T=300;//Temperature(K)
    lambda=0.5;//Observation wavelenght of light(μm)
    graphtitle='Atmospheric Refraction.※0.25→1.00025.';
    if www==1 | www==2 then
        lambda=linspace(0.38,0.75,NNN);
        T=linspace(280,300,NNN);
        xtitle(graphtitle+'P=1013.25,F=10','λ(μm)','T(K)','RI',boxed=1);
        fnt='[Result]=func1(lambda,T)';
        deff(fnt,equation);
        if www==1 then 
            R=245;G=255;B=250;color(R,G,B);idcolor=color(R,G,B);
            fplot3d(lambda,T,func1,flag=[idcolor , 2 , 4]);
            func1(0.38,280)    
            func1(0.75,300)    
        elseif www==2 then
            nz=30;
            contour(lambda,T,func1,nz,flag=[2,2,4]);
            axe=gca();
            for iii=1:nz;
                cnt=axe.children(iii).children;
                eee=length(cnt);
                if eee==2 then
                    cnt(2).font_size=4;
                end
            end
        end
    else
        P=linspace(1000,1020,NNN);
        F=linspace(10,15,NNN);
        xtitle(graphtitle+'T=300,λ=10','P(hPa)','F(hPa)','RI',boxed=1);
        fnt='[Result]=func2(P,F)';
        deff(fnt,equation);
        if www==3 then 
            R=245;G=255;B=250;color(R,G,B);idcolor=color(R,G,B);
            fplot3d(P,F,func2,flag=[idcolor , 2 , 4]);
            func2(1000,10)    
            func2(1020,15)    
        elseif www==4 then
            nz=30;
            contour(P,F,func2,nz,flag=[2,2,4]);
            axe=gca();
            for iii=1:nz;
                cnt=axe.children(iii).children;
                eee=length(cnt);
                if eee==2 then
                    cnt(2).font_size=4;
                end
            end
        end
    end 
    currentaxes=gca();
    currentaxes.font_size=6;
    currentaxes.title.font_size=6;
    currentaxes.x_label.font_size=6;
    currentaxes.y_label.font_size=6;
    currentaxes.z_label.font_size=6;
    currentaxes.tight_limits="on";
    currentaxes.cube_scaling="on";
    currentaxes.auto_clear="on";
    currentaxes.auto_scale="on";
//    if www==1 | www==3 then
        //zlim=currentaxes.data_bounds(:,3)
        //zlim(1)
        //zlim(2)
//    end
end

参考文献 国立天文台(2008).『理科年表 机上版第81冊』.丸善アプリケーション URL Scilab http://www.scilab.org/