栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

对数如何编程?[关闭]

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

对数如何编程?[关闭]

在任何体面的数学库中实现诸如自然对数之类的函数,都会使误差保持在ulp(最低精度单位)以下。数学库函数的实现者的目标是找到一些最佳近似值,该近似值可以通过尽可能少的计算来达到所需的精度。泰勒级数通常是一个糟糕的选择,因为要获得所需的精度需要太多的项。

选择的典型武器是将所有可表示的实数的范围减小到某个很小的区域,然后使用一些最佳近似值,从而在此窄范围内产生所需函数的精确近似值。最佳逼近的典型选择武器是多项式或有理多项式(两个多项式的比率)。该实现仅包含多项式系数。这些系数是通过某种优化技术(例如Remes交换算法)构建的。

在自然对数的情况下,有一种简单的方法可以减小范围。实数几乎普遍用尾数和指数表示: x = m * 2 p,其中 p 是整数, m
在1到2之间。因此log( x )= log( m )+ p * log( 2)。后一项, p *log(2)只是一个已知常数的乘法。因此,问题减少到找到1到2(或1/2到1)之间的对数。通过使用√2在[1,2)中间对数的事实,可以进一步减小范围。因此,所需要的只是一种计算1到√2之间的对数的方法。通常使用有理多项式来完成此操作。为此,二阶多项式多项式与三阶多项式的比率非常好。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/427682.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号