用sellmeier方程计算蓝宝石的折射率

时间:2017-12-17 13:45:52

标签: python numpy

我试图用Sellmeier方程计算蓝宝石的refracrive指数。我定义了方程,但现在我无法弄清楚如何以纳米为单位输入波长。见下面的代码...

import numpy as np
import matplotlib.pyplot as plt

def nsell( lam ):

B1=1.023798
B2=1.058264
B3=5.280792
C1=0.0614482
C2=0.110700
C3=17.92656

lam=lam*10**-9

nsq = 1   + [B1] * lam**2 / (lam **2 - [C1])
nsq = nsq + [B2] * lam**2 / (lam **2 - [C2])
nsq = nsq + [B3] * lam**2 / (lam **2 - [C3])

return nsq**0.5


Lab=np.linspace(300,400,20)
test=nsell(Lab)
print(test)

我得到了奇怪的结果,或者我只是听不懂。

runfile('C:/Users/Kevin/Documents/Python Scripts/ligei.py', wdir='C:/Users/Kevin/Documents/Python Scripts')
[ 1.  1.  1.  1.  1.  1.  1.  1.  1.  1.  1.  1.  1.  1.  1.  1.  1.  1.
  1.  1.]

1 个答案:

答案 0 :(得分:1)

您使用的系数似乎基于千分尺,因此您还必须使用千分尺作为λ。只需使用

Lab=np.linspace(0.3,0.4,20)

因为看起来你想要300纳米到400纳米,这是0.3微米到0.4微米。

或者,您可以将系数转换为您想要使用的单位。

此外,系数周围的方括号是不必要的。