Swift 中的 Arcus 余切实现
Arcus Cotangent implementation in Swift
如何在swift中实现arcus cotangent (arccot)?
需要导入哪个库,我正在使用 Darwin,但在尝试调用时看不到它?
<math.h>
中的所有数学函数都可以在 Swift 中使用,如果您
import Darwin
(导入 Foundation 或 UIKit 时会自动导入)。
现在反余切函数不在其中,但您可以使用以下关系从 atan()
轻松计算它(参见示例 Inverse trigonometric functions):
arccot(x) = arctan(1/x) (for x > 0)
arccot(x) = π + arctan(1/x) (for x < 0)
arccot(x) = π/2 - atan(x)
前两个公式在数值上更适合 large
(绝对)值
的 x
,最后一个更适合 small 值,
所以您可以将 acot()
函数定义为
func acot(x : Double) -> Double {
if x > 1.0 {
return atan(1.0/x)
} else if x < -1.0 {
return M_PI + atan(1.0/x)
} else {
return M_PI_2 - atan(x)
}
}
对于 Swift 3 将 M_PI
替换为 Double.pi
。
在Swift 4 (iOS 11, Xcode 9)
放置import UIKit
后,可以这样写:
let fi = atan(y/x)
其中 x 和 y 类型为 CGFloat(在我的例子中)。
或者您可以根据需要使用其他人:
let abc = acos(y)
数学函数适用于参数类型:Double、Float、CGFloat 等
如何在swift中实现arcus cotangent (arccot)? 需要导入哪个库,我正在使用 Darwin,但在尝试调用时看不到它?
<math.h>
中的所有数学函数都可以在 Swift 中使用,如果您
import Darwin
(导入 Foundation 或 UIKit 时会自动导入)。
现在反余切函数不在其中,但您可以使用以下关系从 atan()
轻松计算它(参见示例 Inverse trigonometric functions):
arccot(x) = arctan(1/x) (for x > 0)
arccot(x) = π + arctan(1/x) (for x < 0)
arccot(x) = π/2 - atan(x)
前两个公式在数值上更适合 large
(绝对)值
的 x
,最后一个更适合 small 值,
所以您可以将 acot()
函数定义为
func acot(x : Double) -> Double {
if x > 1.0 {
return atan(1.0/x)
} else if x < -1.0 {
return M_PI + atan(1.0/x)
} else {
return M_PI_2 - atan(x)
}
}
对于 Swift 3 将 M_PI
替换为 Double.pi
。
在Swift 4 (iOS 11, Xcode 9)
放置import UIKit
后,可以这样写:
let fi = atan(y/x)
其中 x 和 y 类型为 CGFloat(在我的例子中)。
或者您可以根据需要使用其他人:
let abc = acos(y)
数学函数适用于参数类型:Double、Float、CGFloat 等