LoginSignup
0
0

More than 5 years have passed since last update.

PyMieScatt > Mie_ab() > nmax = np.round(2+x+4*(x**(1/3))), MieS1S2()にもある

Last updated at Posted at 2018-03-12
動作環境
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()においても同じ式が使われている。

式だけ関数に切り出して、その関数に式の説明(と参考文献)を入れると、実装者以外の人にも分かりやすくなるだろう。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0