三角関数

p.17
0° ≦ \theta ≦ 360° である角度 \theta に対して、x線上の線分OQを反時計方向に \theta だけ回転した線分をOPとする。OP = r であり、Pの座標が(x, y)のとき、\cos \theta = \frac{x}{r},\, \sin \theta = \frac{y}{r},\, \tan \theta = \frac{y}{x} と定義する。r=1 のとき、\cos \theta = x,\,\sin \theta = y,\,\tan \theta = \fra{y}{x} のように簡単になる。この式を三角関数の定義としてもよい。


例:\theta=0° のとき、点Pの座標は(1, 0)だから x = 1、y = 0 である。よって、
\sin \, 0^\circ = 0,\, \cos \, 0^\circ = 1,\, \tan \, 0^\circ = \frac{0}{1} = 0

   deg=:(1p1%180)&*
   deg 180
3.14159
   sin=:1&o.
   cos=:2&o.
   sin 0
0
   cos 0
1
   tan=:3&o.
   tan 0
0

例2: \theta=90°のとき点Pの座標は( 0, 1 )だから、x = 0 、y = 1である。よって
sin\,90^\circ = 1,\,\cos\,90^\circ = 0
である。\tan\,90^\circの値は定義されない。

   sin deg 90
1
   cos deg 90
6.12323e_17
   tan deg 90
1.63312e16

APL/J言語で、とても小さい数を0、大きい数は_(無限大)と表示させるにはどうしたらいいのだろう。
調べて追記します。


追記:0は0以外と一致せず、無限大は無限大以外と一致しないとのことです。このままでいきましょう。


p.18 問:180°と270°と360°の時の正弦、余弦正接を求めよ。

   sin=:1&o.@deg
   sin 180
1.22465e_16
   cos=:2&o.@deg
   cos 180
_1
   tan=:3&o.@deg
   tan 180
_1.22465e_16
   sin 270
_1
   cos 270
_1.83697e_16
   sin 360
_2.44929e_16
   cos 360
1
   tan 360
_2.44929e_16