400nm以下是紫外线波段,
根据透光率可以看出是基本满足uv400标准的。
###################################################################################################
############################################################################################################
透光率拟合.py
-
import numpy
as np
-
import matplotlib.pyplot
as plt
-
#定义x、y散点坐标(下面这个是波长)
-
x = [
380,
390,
400,
410,
420,
430,
440,
450,
460,
470,
480,
490,
500]
-
x = np.array(x)
-
print(
'波长范围 is :\n',x)
-
num = [
0.1,
0.1,
0.1,
2.9,
8.1,
10.3,
11.2,
13.1,
15.7,
19.4,
26.3,
33.4,
46.8]
-
y = np.array(num)
-
print(
'y is :\n',y)
-
#用3次多项式拟合
-
f1 = np.polyfit(x, y,
5)
-
print(
'f1 is :\n',f1)
-
p1 = np.poly1d(f1)
-
print(
'p1 is :\n',p1)
-
-
#也可使用yvals=np.polyval(f1, x)
-
yvals = p1(x)
#拟合y值
-
print(
'yvals is :\n',yvals)
-
#绘图
-
plot1 = plt.plot(x, y,
's',label=
'original values')
-
plot2 = plt.plot(x, yvals,
'r',label=
'polyfit values')
-
plt.xlabel(
'x')
-
plt.ylabel(
'y')
-
plt.legend(loc=
4)
#指定legend的位置右下角
-
plt.title(
'polyfitting')
-
plt.show()
加权阻隔率计算.py
-
import numpy
as np
-
from scipy.interpolate import InterpolatedUnivariateSpline
-
-
λ = np.
array([
380,
385,
390,
395,
400,
405,
410,
415,
420,
425,
430,
435,
440,
445,
450,
455,
460,
465,
470,
475,
480,
485,
490,
495,
500])
#波长λ
-
W_λ=np.
array([
2 ,
4 ,
10 ,
22 ,
47,
112,
269,
564,
660,
722,
771,
849,
911,
930,
946,
933,
864,
776,
706,
639,
532,
479,
266,
194,
122])
#WB(λ)
-
# 下面是透射率(一部分是插值后得到的数据)
-
τ=np.
array([
0.1*
0.01,
#380
-
0.1*
0.01,
#385
-
0.1*
0.01,
#390
-
0.1*
0.01,
#395
-
0.1*
0.01,
#400
-
1.5*
0.01,
#405
-
2.9*
0.01,
#410
-
5.2*
0.01,
#415
-
8.1*
0.01,
#420
-
9.5*
0.01,
#425
-
10.3*
0.01,
#430
-
10.6*
0.01,
#435
-
11.2*
0.01,
#440
-
11.9*
0.01,
#445
-
13.1*
0.01,
#450
-
13.9*
0.01,
#455
-
15.7*
0.01,
#460
-
16.7*
0.01,
#465
-
19.4*
0.01,
#470
-
21.0*
0.01,
#475
-
26.3*
0.01,
#480
-
29.2*
0.01,
#485
-
33.4*
0.01,
#490
-
39.3*
0.01,
#495
-
46.8*
0.01
#500
-
])
-
-
f = InterpolatedUnivariateSpline(λ, W_λ, k=
3)
#分母曲线拟合
-
a=f.integral(
380,
500)
#积分运算分母
-
print(
"分母:",a)
-
-
-
f2=InterpolatedUnivariateSpline(λ,np.multiply(τ,W_λ),k=
3)
#分子曲线拟合
-
b=f2.integral(
380,
500)
#积分运算分子
-
print(
"分子:",b)
-
-
print(
"加权透射率:",b/a)
-
print(
"加权阻隔率:",
1-b/a)
上述是对外宣称阻隔率70%的蓝光眼镜。
该品牌(为了通过csdn审核,已经取消名字)阻隔蓝光99%的蓝光眼镜也只有30元不到的售价。
转载:https://blog.csdn.net/appleyuchi/article/details/116457063
查看评论