加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

Python 2 Decimal的Sin,cos等?

发布时间:2020-12-20 12:40:22 所属栏目:Python 来源:网络整理
导读:在 Python 2.6中,我发现sqrt(pi)的Decimal等价物是 Decimal(pi).sqrt() 是否有类似sin,cos或其他(反)三角函数的东西? docs只提到了如何计算cos和sin.十进制(pi).cos()不存在,也不存在十进制导入cos 更新:使用默认三角函数的问题是,如果我每次想要计算某些
在 Python 2.6中,我发现sqrt(pi)的Decimal等价物是

Decimal(pi).sqrt()

是否有类似sin,cos或其他(反)三角函数的东西?

docs只提到了如何计算cos和sin.十进制(pi).cos()不存在,也不存在十进制导入cos

更新:使用默认三角函数的问题是,如果我每次想要计算某些东西时将它们从float和back转换它就会失败使用Decimal的点. (在每次计算周围输入Decimal都很烦人,但我想我可以做一个包装函数)

解决方法

sin(a)和cos(a)的值仅对于特定角度是有理数(见 http://planetmath.org/encyclopedia/RationalSineAndCosine.html),因此您不能将sin(a)或cos(a)的值存储为Decimal而不会丢失精度.这违背了将sin和cos值转换为Decimal并具有将sin和cos值作为Decimal返回的内置函数的目的.

此外,你不能将所有有理数存储为十进制而不会丢失精度,因为python的小数是(-1)** _ sign * _int * 10 ** _ exp所以有理数的除数必须为10才能使Decimal存储为满精确.

我猜@ carrot-top的mpmath建议或一些数值算法(如Taylor系列近似)是你能得到的最好的.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读