Oracle® Solaris Studio 12.4:数值计算指南

退出打印视图

更新时间: 2015 年 1 月
 
 

3.6.2 三角函数的参数约简

弧度参数在 [–π/4,π/4] 范围之外的三角函数通常可通过将参数约简到指定范围(减去 π/2 的整数倍)来进行计算。

因为 π 不是计算机可表示的数字,所以对其求近似值。三角函数的最终计算中的误差取决于参数约简中造成的舍入误差(使用近似的 π 值和舍入值)以及计算使用约简参数的三角函数时的近似误差。即使是非常小的参数,最终结果的相对误差可能取决于该参数的约简误差;而对于较大的参数,参数约简造成的误差可能并不比其他误差大。

通常,人们误认为所有使用大参数的三角函数本身准确性很低,而所有小参数的准确性相对高一些。这是基于简单的观察:计算机可表示的非常大的数字是由大于 π 的距离分隔的。

计算的三角函数值没有准确性突然变差的内在界限,不准确的函数值也没有变得无法使用的内在界限。假设参数始终不断进行约简,实际上很难发现使用 π 近似值完成的参数约简这一情况,这是因为为大参数和小参数都保留了所有基本的恒等式和关系。

libmlibsunmath 三角函数使用“无限”精确的 π 进行参数约简。 将值 2/π 的计算结果取 916 位十六进制数字,并将其存储在查找表中以在参数约简过程中使用。

sinpicospitanpi 函数组(请参见Table 3–3)使用 π 来对输入参数进行约简,以避免由于范围约简而产生的误差。