逆関数
三角関数にはもうひとつ tan があります。これはつぎのように定義されます。
tanθ = 高さ/底辺 = sinθ/cosθ
X軸-Y軸の直交座標で表現すると、X軸の距離1の点 (1, 0) から立てた垂線と角度 θ の線分との交点の高さになります。元々は、太陽の角度と物体の影から、物体の実際の高さを計算するという用途で考えられたようです。影の長さがDなら、物体の高さは D*tanθ になるわけです。
ところで関数には、一般に逆関数というものが考えられます。そして三角関数にも逆関数があります。これは三角関数の値から、逆に角度を返す関数です。数学では3つの三角関数それぞれについて、逆関数が定義されています。ただ Lingo では、逆関数は ‘tan()’ についてのみ提供されています。これが ‘atan()’ 関数です (アークタンジェントと呼びます)。座標から三角関数を計算する場合、tan が一番簡単です (sin や cos を求めるには、ピタゴラスの定理を使って原点から座標までの距離を計算しなけ ればなりません)。座標が (x, y) のとき、角度をθするとつぎの式が成り立ちます。
tanθ = y / x
そこで逆関数 atan を使えば、角度θはつぎの式で求められます。
θ = atan(tanθ) = atan(y / x)
ところが、atan 関数には重要な制約があります。角度が 45度のとき tan は1です。しかし角度が 135度のときも、やはり tan は1になるのです。つまり、三角関数 tan の値からは、X座標が正の場合と負の場合とを区別できません。一般に、関数はかならずひとつの値を返さなければなりません。そこで、逆関数 atan の値は、X座標が正の場合の -90度から 90度の値にするという制約が与えられたのです。したがって、’atan()’ 関
数を使って座標から角度を求めたいときには、座標xとyそれぞれの正負を合わせて考える必要があります。