如何快速制作正弦函数

问题描述 投票:-1回答:1

我已经尝试了以下方法,但是却使我难受

func sin (x: Double) -> Void {
     var z = 1000
     var n = 1.0
     var w = 0.0
     var b = (2*n-1)+1
     var c = 0.0
     while (b > 2){
       c *= (b-1)
       b -= 1

     }
     while (z > 0){

       w += (power(x:(-1), y:(n-1))*(power(x:x, y:(2*n-1)))/c)
       z -= 1
       n += 1
     }
     print(w)
    }  where
    power(x:base, y: exponent)
swift math trigonometry
1个回答
0
投票

示例:

func sin(_ x: Double) -> Double {

    func factorial(_ number: Int) -> Int {
        var result = 1
        for i in 2...number {
            result *= i
        }
        return result
    }

    let x2 = x * x
    let x4 = x2 * x2

    let t1 = x * (1.0 - x2 / Double(factorial(3)))
    let x5 = x4 * x
    let t2 = x5 * (1.0 - x2 / (6 * 7)) / Double(factorial(5))
    let x9 = x5 * x4
    let t3 = x9 * (1.0 - x2 / (10 * 11)) / Double(factorial(9))
    let x13 = x9 * x4
    let t4 = x13 * (1.0 - x2 / (14 * 15)) / Double(factorial(13))

    let result = t1 + t2 + t3 + t4
    return round(1000 * result) / 1000
}

用法:

let test = sin(90 * Double.pi / 180) // 90 degrees
print(test) // 1.0
© www.soinside.com 2019 - 2024. All rights reserved.