对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
基于泰勒展开式的高精三角函数实现,方法三
最新推荐文章于 2024-08-21 17:06:07 发布