基于泰勒展开式的高精三角函数实现,方法三

对sin()的高精算法又进一步改进,分享一下,欢迎吧友们指正。
还是针对sin()函数的泰勒展开式进行计算:
到改进公式:sinx=x−x⋅x^2(4⋅5⋅6⋅7⋅8⋅9−x^2(6⋅7⋅8⋅9−x^2(8⋅9−x^2)))/9!.............  此公式为本人原创,适合泰勒展开式中一部分公式加速运算,缺点是需要预先根据精度估算出所需的泰勒级数,程序变得复杂,冗余量很大,我在程序中最后没有采用了,此处只是作为参考。         
倍角公式:       sin3x=3sinx-4(sinx)^3     这里用到的原理是:使自变量x尽量缩小到0附近,可以极大减少泰勒公式项数,降低了计算量
倍角公式理论上可以无限把角x分小,而无限趋近于零,在设定精度减少泰勒级数,但这里没有两全其美的事,随着倍角公式的细分,细分级数增加,泰勒公式计算结果返回后的运算量也在急剧增加,我粗略调试了一下,
针对一万精度,倍角公式细分60次,泰勒级数设为精度除以30,运算速度相对我的算法二,速度提高8倍,基础乘法也改进了一下,速度提高一倍,现在的速度是一万精度sinx,用时6秒左右,下面是流程:
                x = x MOD  2pi                           '弧度化简,x \2pi,取余数,余数为角x,  sinx值不变,x 现在小于2pi
                x = x MOD  pi                            '弧度化简,x \pi,取余数,余数为角x,  sinx绝对值不变, x 现在小于pi 
                使  x 小于pi/2                            ‘这一步有点不好表达,咱用中文编程                 
                temp = 3^60
                x = x /  temp
                x = mySin (x)                            ' 通过优化的泰勒公式计算sinx的值  ,步骤见我的第一遍文章。             
                For i = 1 To 60                        '倍角公式返回后运算部分,是不是太简单!
                     x=3x-4x^3
                Next
               

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值