GeForce GTX 1070 (8GB)
ASRock Z170M Pro4S [Intel Z170chipset]
Ubuntu 16.04 LTS desktop amd64
TensorFlow v1.2.1
cuDNN v5.1 for Linux
CUDA v8.0
Python 3.5.2
IPython 6.0.0 -- An enhanced Interactive Python.
gcc (Ubuntu 5.4.0-6ubuntu1~16.04.4) 5.4.0 20160609
GNU bash, version 4.3.48(1)-release (x86_64-pc-linux-gnu)
scipy v0.19.1
geopandas v0.3.0
MATLAB R2017b (Home Edition)
ADDA v.1.3b6
gnustep-gui-runtime v0.24.0-3.1
Numpy実装による球粒子の光散乱コードPyMieScatt関連。
def Mie_ab(m,x):
nmax = np.round(2+x+4*(x**(1/3)))
この式は一体どこから来た?
@ 重松清さん その日の前に
"僕たちはいまどこにいる?
僕達は、これから、どこに向かう?
ずっとこの二つしか考えてなかった。それだけでじゅうぶんだとも思っていた。
僕達はどこから来た?
「明日」を断ち切られてしまって、初めて、その問いのかけがえのなさに気づいた。"
PDF: MATLAB Functions for Mie Scattering and Absorption by Christian Mätzler
2.2 Mie efficiencies and cross sections
For this number Bohren and Huffmann (1983) proposed the value
n_{max} = x + 4 x ^{1/3} + 2 ... (p.477)
Bohren C.F. and D. R. Huffmann, "Absorption and Scattering of Light by Small Particles", John Wiley, New York, NY (1983)
持っている本の中の記載を探したが見つからなかった。
Kindle版も持っていたかと思うが、数式の間違いだらけで参照しない方がいいだろう。
(3年程度たって修正されたかどうか)
検索が使用できません
申し訳ありません。この本では、検索がまだ使用できません。後でももう一度お試しください。
(追記 2018/03/14)
HC van de HulstのLight Scattering by Small Particlesを間違って読んでいた。。。 この本の電子版の数式間違いはどうなっているだろうか。
Bohren and Huffmann (1983)
p477
Appendix A
Homogeneous Sphere
Thus, series in BHMIE are terminated after NSTOP terms, where NSTOP is the integer closest to
x + 4 x^{1/3} + 2
A similar criterion was used by Wiscombe, who was guided by a suggestion by Khare and extensive computations.
関連しそうな論文は以下 (@ arxiv.org)。Wiscombeのcriteriaが掲載されている。
Effect of finite terms on the truncation error of Mie series
N = x + 4.05 x ^{1/3} + 2
MieS1S2()
(追記 2018/04/01)
nmax = np.round(2+x+4*np.power(x,1/3))
MieS1S2()においても同じ式が使われている。
式だけ関数に切り出して、その関数に式の説明(と参考文献)を入れると、実装者以外の人にも分かりやすくなるだろう。