物理の駅 Physics station by 現役研究者

テクノロジーは共有されてこそ栄える

直交座標から球面座標系(極座標)に変換するときの誤差伝搬

Error propagation when converting from rectangular coordinate system to spherical coordinate system

飛跡のベクトルが次のように得られたとする

Assume that a vector of trajectory is obtained as follows

 \displaystyle

V_x = x \pm \delta x \\
V_y = y \pm \delta y \\
V_z = z \pm \delta z \\

Range、Theta、Phiは次のようになる

Range, Theta, Phi are as follows

 \displaystyle
Range = r = \sqrt{x^2+y^2+z^2}\\
Theta = \theta =  acos(z/r)\\
Phi = \phi = atan(y/x)\\

ただし、C++の実装では、下記を使ったほうが良い。

 \displaystyle
Phi = \phi = sign(y)\times acos(x/sqrt(x^2+y^2))\\

誤差伝搬を計算すると誤差は次のようになる

By calculating the error propagation, the error becomes as follows

 \displaystyle
\delta r = \frac{ \sqrt{  (x\,\delta x)^2+ (y\,\delta y)^2+ (z\,\delta z)^2 }}{r} \\

\delta \theta = \frac { \sqrt{ (x^2 \, \delta x^2+y^2 \, \delta y^2)z^2      + (x^2+y^2)^2\delta z^2    }    }                {r^2\sqrt{x^2+y^2}}\\

\delta \phi =        \frac{\sqrt{(y \, \delta x)^2+(x \, \delta y)^2}}       {x^2+y^2}

検索用

参照

Derivative Calculator with Steps

 \displaystyle
x = r \sin\theta \cos\phi \\
y = r \sin\theta \sin\phi\\
z = r \cos\theta\\

Rangeを1に規格化するとき、

 \displaystyle
\delta x_{norm} = \sqrt{ (\cos\theta \cos\phi \cdot \delta \theta)^2+(\sin\theta\sin\phi\cdot\delta \phi)^2 }\\
\delta y_{norm} = \sqrt{ (\cos\theta \sin\phi \cdot\delta \theta)^2+(\sin \theta\cos \phi \cdot\delta \phi)^2}\\
\delta z_{norm} = \sqrt{(\sin\theta \cdot\delta \phi)^2}\\