おそらく、無人島の先生がこの直角三角形のアバウトな角度出しなさいという問題に答える生徒しか使わない気がしますが一応書いておきます。
無人島で直角三角形ABCの角度をアバウトに図りたい時は
角度 = 60 * 高さ / 底辺
を計算します。計算した角度から大まかな誤差を求めます。
誤差は
40°で約20%
20°で約10%
10°で約5%
となります。
この誤差をみて使えるか使えないか判断するとよいでしょう。
誤差が大きい場合は別の手法を使いましょう。
この数式の背景にあるもの:
x が 0 に限りなく近い時以下が成り立ちます。
x = tan(x)
私の疑問として、
- x が 0 に近くないときも使ってみたとしたら誤差がどれくらいになるのか、
- 計算を簡単にするため円周率を3.14ではなく3にしてみたらどれくらいになるのか
というのがあり、それを計算機で計算し誤差を求めた結果、上記数式が使えない使えることを発見しました。
検証は以下のコードでで行いました。
import numpy as np import matplotlib.pyplot as plt def rad_to_degree(rad): return rad * 60 end_degree = 45 xdegree = np.linspace(0.000000000000001,end_degree,100) xrad = np.pi * 2 * xdegree / 360 guess_degree = rad_to_degree(np.tan(xrad)) true_degree = xdegree diff = guess_degree - true_degree fig = plt.figure() ax = fig.add_subplot(111) ax.set_xlabel("x [Degree]", fontsize=14, fontweight='bold') ax.set_ylabel("gosa [%]", fontsize=14, fontweight='bold') ax.plot(xdegree, abs(diff)/true_degree*100) plt.show()
以上です。