🎯线性波散射非线性神经计算算法 | 🎯耦合神经元模式动态矩阵,傅里叶变换相干探测场得到频域中的动力学方程 | 🎯递归解散射问题 | 🎯散射算法对比传统神经网络分类器算法:数字识别收敛和训练速度 | 🎯化学散射算法
散射理论是研究和理解波和粒子散射的框架。通常来说,波散射对应于波与某些物体的碰撞和散射,例如雨滴散射形成的彩虹(阳光)。散射还包括台球在桌子上的相互作用、金原子核对阿尔法粒子的卢瑟福散射(或角度变化)、原子团对电子和 X 射线的布拉格散射(或衍射),以及裂变碎片穿过薄箔时的非弹性散射。更准确地说,散射包括研究偏微分方程的解如何自由传播“在遥远的过去”,聚集在一起并相互作用或与边界条件相互作用,然后传播到“遥远的未来”。
当目标是一组相对位置不可预测地变化的多个散射中心时,通常会考虑一个范围方程,其参数在不同的应用领域中采用不同的形式。在最简单的情况下,考虑一种相互作用,该相互作用以均匀的速率从“未散射光束”中移除粒子,该速率与单位时间内每单位面积的入射粒子数 (𝐼) 成比例,即
“弹性散射”一词意味着散射粒子的内部状态不会改变,因此散射过程中粒子不会发生变化。相反,在非弹性散射中,粒子的内部状态会发生变化,这可能相当于激发散射原子的一些电子,或者散射粒子完全湮灭并产生全新的粒子。
Copy import numpy as np
import matplotlib . pyplot as plt
import mp
x = np . linspace ( 0.1 , 100 , 1000 )
plt . figure (figsize = ( 8 , 4.5 ))
qext , qsca , qback , g = miepython . mie ( 1.5 , x)
plt . plot (x, qext, color = 'red' , label = "$n=1.5$" )
qext , qsca , qback , g = miepython . mie ( 1.5 - 0.1 j , x)
plt . plot (x, qext, color = 'blue' , label = "$n=1.5-0.1j$" )
plt . title ( "吸收球和非吸收球" )
plt . xlabel ( "尺寸参数 [–]" )
plt . ylabel ( "消光效率 $Q_ {ext} $ [–]" )
plt . legend ()
plt . show ()
Copy import numpy as np
import matplotlib . pyplot as plt
import mp
def n_bk7 ( wavelength ):
m_squared = 1 + 1.03961212 / ( 1 - 0.00600069867 / lambda0 ** 2 )
m_squared += 0.231792344 / ( 1 - 0.0200179144 / lambda0 ** 2 )
m_squared += 1.01046945 / ( 1 - 103.560653 / lambda0 ** 2 )
refractive_index = np . sqrt (m_squared)
return refractive_index
radius = 2
lambda0 = np . linspace ( 0.2 , 1.2 , 1000 )
x = 2 * np . pi * radius / lambda0
m = n_bk7 (lambda0)
plt . figure (figsize = ( 8 , 4.5 ))
qext , qsca , qback , g = miepython . mie (m, x)
plt . plot (lambda0 * 1000 , qsca)
plt . title ( "4 微米玻璃球" )
plt . xlabel ( "波长 [nm]" )
plt . ylabel ( "散射效率 [–]" )
plt . show ()
Copy import numpy as np
import matplotlib . pyplot as plt
import mp
def n_water ( wavelength ):
m_squared = 1.0
m_squared += 5.666959820E-1 / ( 1.0 - 5.084151894E-3 / wavelength ** 2 )
m_squared += 1.731900098E-1 / ( 1.0 - 1.818488474E-2 / wavelength ** 2 )
m_squared += 2.095951857E-2 / ( 1.0 - 2.625439472E-2 / wavelength ** 2 )
m_squared += 1.125228406E-1 / ( 1.0 - 1.073842352E1 / wavelength ** 2 )
refractive_index = np . sqrt (m_squared)
return refractive_index
diameter = 1 # microns
radius = diameter / 2 # microns
num = 200 # points to plot
lambda_range = np . linspace ( 0.2 , 1.2 , num)
ref_index = n_water (lambda_range)
x = 2 * np . pi * radius / lambda_range
qext , qsca , qback , g = miepython . mie (ref_index, x)
plt . figure (figsize = ( 8 , 4.5 ))
plt . plot (lambda_range * 1000 , qsca)
plt . title ( " %.2f µm 水滴" % diameter)
plt . xlabel ( "波长 [nm]" )
plt . ylabel ( "散射截面 [µm²]" )
plt . show ()
Copy import numpy as np
import matplotlib . pyplot as plt
import mp
ref_lam = np . array ([ 0.1879 , 0.1916 , 0.1953 , 0.1993 , 0.2033 , 0.2073 , 0.2119 , 0.2164 ,
0.2214 , 0.2262 , 0.2313 , 0.2371 , 0.2426 , 0.2490 , 0.2551 , 0.2616 ,
0.2689 , 0.2761 , 0.2844 , 0.2924 , 0.3009 , 0.3107 , 0.3204 , 0.3315 ,
0.3425 , 0.3542 , 0.3679 , 0.3815 , 0.3974 , 0.4133 , 0.4305 , 0.4509 ,
0.4714 , 0.4959 , 0.5209 , 0.5486 , 0.5821 , 0.6168 , 0.6595 , 0.7045 ,
0.7560 , 0.8211 , 0.8920 , 0.9840 , 1.0880 , 1.2160 , 1.3930 , 1.6100 , 1.9370 ])
ref_n = np . array ([ 1.28 , 1.32 , 1.34 , 1.33 , 1.33 , 1.30 , 1.30 , 1.30 , 1.30 , 1.31 , 1.30 ,
1.32 , 1.32 , 1.33 , 1.33 , 1.35 , 1.38 , 1.43 , 1.47 , 1.49 , 1.53 , 1.53 ,
1.54 , 1.48 , 1.48 , 1.50 , 1.48 , 1.46 , 1.47 , 1.46 , 1.45 , 1.38 , 1.31 ,
1.04 , 0.62 , 0.43 , 0.29 , 0.21 , 0.14 , 0.13 , 0.14 , 0.16 , 0.17 , 0.22 ,
0.27 , 0.35 , 0.43 , 0.56 , 0.92 ])
ref_k = np . array ([ 1.188 , 1.203 , 1.226 , 1.251 , 1.277 , 1.304 , 1.350 , 1.387 , 1.427 ,
1.460 , 1.497 , 1.536 , 1.577 , 1.631 , 1.688 , 1.749 , 1.803 , 1.847 ,
1.869 , 1.878 , 1.889 , 1.893 , 1.898 , 1.883 , 1.871 , 1.866 , 1.895 ,
1.933 , 1.952 , 1.958 , 1.948 , 1.914 , 1.849 , 1.833 , 2.081 , 2.455 ,
2.863 , 3.272 , 3.697 , 4.103 , 4.542 , 5.083 , 5.663 , 6.350 , 7.150 ,
8.145 , 9.519 , 11.21 , 13.78 ])
radius = 0.1
m = ref_n - 1.0 j * ref_k
x = 2 * np . pi * radius / ref_lam
cross_section_area = np . pi * radius ** 2
mu_a = 4 * np . pi * ref_k / ref_lam # nm
qext , qsca , qback , g = miepython . mie (m, x)
sca_cross_section = qsca * cross_section_area
abs_cross_section = (qext - qsca) * cross_section_area
plt . subplots ( 3 , 1 , figsize = ( 8 , 8 ))
plt . subplot ( 311 )
plt . plot (ref_lam * 1000 , ref_n, 'ob' , markersize = 2 )
plt . plot (ref_lam * 1000 , - ref_k, 'sr' , markersize = 2 )
plt . title ( "金球 200nm 直径" )
plt . text ( 700 , 1 , "real refractive index" , color = 'blue' )
plt . text ( 1100 , - 6 , "imaginary refractive index" , color = 'red' )
plt . subplot ( 312 )
plt . plot (ref_lam * 1000 , 1000 / mu_a, 'ob' , markersize = 2 )
plt . ylabel ( "吸收长度 [nm]" )
plt . subplot ( 313 )
plt . plot (ref_lam * 1000 , abs_cross_section, 'ob' , markersize = 2 )
plt . plot (ref_lam * 1000 , sca_cross_section, 'sr' , markersize = 2 )
plt . xlabel ( "波长 (nm)" )
plt . ylabel ( "截面 [µm²]" )
plt . text ( 700 , 0.01 , "吸收" , color = 'blue' )
plt . text ( 750 , 0.1 , "散射" , color = 'red' )
plt . show ()