Table of Contents

Error Propagation

誤差伝搬

独立な事象の場合は基本的に以下の一般式を使用すれば間違いない
変数が2回出てくると独立ではなくなるので別の式になる

x,y,zの関数で計算されるQ(x,y,z)の誤差 (dxはxの誤差、dq/dxは偏微分)

dQ == sqrt(((dq/dx)*dx)^2) + ((dq/dy)*dy)^2) + ((dq/dz)*dz)^2))
dQ <= ((dq/dx)*dx) + ((dq/dy)*dy) + ((dq/dz)*dz)

四則演算のみの誤差伝搬なら以下の式でも代用できる
和や差は絶対誤差、積や商は相対誤差なので計算するときに変換が必要
逐次伝搬は計算する順で行えば良く、その際の誤差は有効数字1桁で良い

Q    == A+B+C-(X+Y+Z)
dQ   == sqrt(((dA)^2)+((dB)^2)+((dC)^2)+((dX)^2)+((dY)^2)+((dZ)^2))
dQ   <= ((dA)^2)+((dB)^2)+((dC)^2)+((dX)^2)+((dY)^2)+((dZ)^2)
Q    == (A*B*C)/(X*Y*Z)
dQ/Q == sqrt(((dA/A)^2)+((dB/B)^2)+((dC/C)^2)+((dX/X)^2)+((dY/Y)^2)+((dZ/Z)^2))
dQ/Q <= ((dA/A)^2)+((dB/B)^2)+((dC/C)^2)+((dX/X)^2)+((dY/Y)^2)+((dZ/Z)^2)

誤差伝搬の例

(X*Y)              = (X*Y)*sqrt(((dX/X)^2)+((dY/Y)^2))
(X/Y)              = (X/Y)*sqrt(((dX/X)^2)+((dY/Y)^2))
(H-S)/(H+S)        = sqrt(((((2*S)/((H+S)^2))*dH)^2)+((((2*H)/((H+S)^2))*dS)^2))
(S-(B*(ES/EB)))*F  = (F)*sqrt((dS^2)+((dB*(ES/EB))^2))
## x1,x1e,y1,y1e,x1,x1e,y2,y2e の場合の割算 (y1/y2)
awk '{print $1,$2,$3/$7,($3/$7)*sqrt((($4/$3)^2)+(($8/$7)^2))}'
## x1,x1e,y1,y1e,x1,x1e,y2,y2e の場合の割算で少ないカウント数 (y1/y2)
awk '($3!=0.0)&&($7!=0.0){print $1,$2,$3/$7,($3/$7)*sqrt((($4/$3)^2)+(($8/$7)^2))};($3==0.0){print $1,$2,$3,$4}'