三角関数の逆関数

変数xを与えられたときに tanθ=x なる θ を求めるのが逆正接(アークタンジェント)である。与えられたxに対して tanθ=x を満たすθは無数に存在するが、通常は1価関数とするために -π/2<θ<π/2 の範囲とする。ActiveBasicではAtn関数が用意されている。

このほかにも、sinθ=x を満たすθ(-π/2<θ<π/2)を求める逆正弦(アークサイン)や cosθ=x を満たすθ(0<θ<π)を求める逆余弦(アークコサイン)などもあるが、これらの関数はActiveBasicでは用意されていない。ただし、これら逆関数には以下のような関係が成り立つため容易に求めることができる。
arcsinθ=arctan(θ/Sqr(1-θ^2))
arccosθ=π/2-arcsinθ

#N88BASIC
Const N = 24 ' 連分数の繰り返し数
Const PI = 3.14159265358979323846264
Function latan(x As Double) As Double
Dim i As Integer, sgn As Integer
Dim a As Double
If x > 1 Then
sgn = 1
x = 1 / x
ElseIf x < -1 Then
sgn = -1
x = 1 / x
Else
sgn = 0
End If
a = 0
For i = N To 1 Step -1
a = (i * i * x * x) / (2 * i + 1 + a)
Next i
If sgn > 0 Then
latan = PI / 2 - x / (1 + a)
Exit Function
End If
If sgn < 0 Then
latan = -PI / 2 - x / (1 + a)
Exit Function
End If
latan = x / (1 + a)
End Function

'
Dim i As Integer
Dim x As Double, y As Double
Print Ex" x\t自家製atan()\t左の値のtan()=x"
For i = -10 To 10
x = i / 4
y = latan(x)
Print x, y, Tan(y)
Next i