100 / (100+α) みたいな割り算の手計算を、近似でラクする
100や1000などのキリの良い数を、「それプラスちょっと」の数で割る、という手計算を迫られる場面が、 少なからず(少なからず?)ある。
ぱっと浮かぶ例としては、税込金額における税別金額の比率を求める、とか。
100 / 108 = ? (※食品テイクアウトは、いまも、8 %のはず。)
電卓なければ筆算なりをする訳だが、
108という桁多き数に9を掛けて、引き算して…と、初手から気が進まない。
しかも、分母分子が逆なら一瞬て答えが出るだけに、なんか癪に思う。
で、それなら割り算しないで近似すれば良いじゃん、という 気づきがあったので、ここに紹介する。
計算方法
キリのいい数字を$p$、加える"ちょっと"の数を$α$ とし、元の分数を $\frac{p}{p + α}$ で表す。
ここで、$x = \frac{α}{p}$ を計算する。
これはすなわち、$\frac{p}{p + α} = \frac{1}{1 + x}$を満たすxを求めていることに他ならない。# 先ほどの例(p=100、α=8)。 100 / 108 = 100 / (100 + 8) = 1 / (1 + 0.08) x = 0.08
近似式 $\frac{1}{1 + x} ≃ 1 - x + x ^ 2$ に基づいて、右辺を計算する。以上。
1 - x + x^2 = 1 - 0.08 + 0.08^2 = 1.0000 - 0.0800 + 0.0064 = 0.9264 よって、1/(1 + x) ≒ 0.9264
電卓で求めると 100 / 108 = 0.925925925... となって、誤差は 0.00048 ぐらいに収まる。
理屈
$f(x) = \frac{1}{1 + x}$のマクローリン展開による。
$\frac{1}{1 + x} = 1 - x + x ^ 2 - x ^ 3 + ...$
xのべき乗が並び、符号が交互に変わることに注意。 2乗の項までで近似したのが、先ほどの近似式である。
誤差$E$を計算すると、
$E = \left| \frac{1}{1 + x} - (1 - x + x ^ 2) \right| $
$\quad = \left| \frac{1}{1 + x} \{ 1 - (1 - x ^ 3) \} \right| = \left| \frac{x ^ 3}{1 + x} \right| $
となって、おおよそxの3乗のレベルの誤差となることが分かる。 $1 \gg x$なら、十分近似になる。
もちろん、精度を求めるなら、更に$x ^ 3$乗を引けば良い。αが1桁なら暗算でも何とかなるはず。
発展
p / (p - α) のパターンにも応用できる(例:1000/997)。
符号を変えた場合($x → -x$)でも当然成り立つから、
$\frac{p}{p - α} = \frac{1}{1 - x} ≃ 1 + x + x ^ 2$
を使えば良い。
また、α / (p + α) のパターン(例:8 / 108)であれば、 1から引く形に式変形すれば良い。
8 / 108 = 1 - 100/108 ≃ 1 - 0.9264 = 0.0736 (近似)
8 / 108 = 0.0740740... (真値)