mpmath是一个替代Python的浮点/复杂类型和数学/ CMATH模块具有无限的精度和尺寸指数。该mpmath软件是用Python编写完全不需要任何外部的依赖,因此运行几乎任何地方,而不需要编译。
要安装,解压mpmath存档并运行
蟒蛇setup.py安装
文档和使用:
进口mpmath与
从mpmath进口*
这提供了类强积金和MPC其工作类似Python的浮点和复杂类型:
>>> MPF(2)/ MPF(3)
MPF('0.66666666666666663“)
>>> MPC(0,-1)
MPC(实际='0',IMAG =' - 1')
>>> MPF(-0.6)** MPF(-0.2)
MPC(实际='0.89603999408558288',IMAG =' - 0.65101116249684809“)
对于漂亮的输出(也隐藏小舍入误差),使用打印或STR():
>>>打印MPF(2)/ MPF(3)
0.666666666666667
>>>打印MPC(1 + 2J)** 0.5
(1.27201964951407 + 0.786151377757423j)
精度是由属性mpf.prec(比特数)和mpf.dps(小数点后的位数)来控制。这些特性有联系,所以改变一个自动更新等相匹配。设置PREC或DPS的改变在其中所有操作都进行和的位数打印数时,显示的精度。缺省值是
PREC = 53和DPS = 15,同Python的花车。
>>> mpf.dps = 30
>>> MPF(2)/ MPF(3)
MPF('0.66666666666666666666666666666663“)
>>>打印_
0.666666666666666666666666666667
>>> mpf.dps = 15#恢复出厂
您可以从Python的数字创造MPFS和MPCS,或结合MPFS和MPCS与Python在数字运算操作,但要知道,常规的Python彩车只具有有限的精度。要初始化一个完整的精度值强积金,使用字符串:
>>> MPF(0.1)
MPF('0.10000000000000001“)#相同精度浮点
>>> mpf.dps = 50
>>> MPF(0.1)
MPF('0.1000000000000000055511151231257827021181583404541016')#垃圾
>>> MPF('0.1')
MPF('0.1000000000000000000000000000000000000000000000000001')#OK
下列标准功能提供支持真实和复杂的参数:
SQRT,EXP,日志,电力,COS,罪恶,棕褐色,COSH,双曲正弦,正切,
ACOS,ASIN,ATAN,ACOSH,ASINH,ATANH
例如:
>>> mpf.dps = 15
>>>打印COS(1)
0.540302305868140
>>> mpf.dps = 50
>>>打印COS(1)
0.54030230586813971740093660744297660373231042061792
一些不太常用的功能也都具备:伽玛(伽玛功能),阶乘,ERF(误差函数),lower_gamma / upper_gamma(不完全伽马函数)和Zeta(黎曼zeta函数)。
最后,便利的功能hypot和ATAN2可(定义为唯一真正的数字)。
常数圆周率,e和cgamma(欧拉常数)是行为像MPFS可作为特殊的对象,但其值自动调整为精度。
>>> mpf.dps = 15
>>>打印PI
3.14159265358979
>>> mpf.dps = 50
>>>打印PI
3.1415926535897932384626433832795028841971693993751
>>> mpf.dps = 15
>>> e **( - PI * 1J)
MPC(实际=' - 1',IMAG =' - 1.2289836075083701E-16')
>>> mpf.dps = 50
>>> e **( - PI * 1J)
MPC(实际=“ - 1”,IMAG =“1.0×10 6 [...] E-51')
导演四舍五入部分实现。例如,此计算和验证一个15位的近似时间间隔为圆周率:
>>> mpf.dps = 15
>>> mpf.round_down(); PI1 = + PI
>>> mpf.round_up(); PI2 = + PI
>>> PI1
MPF('3.1415926535897931“)
>>> PI2
MPF('3.1415926535897936“)
>>> mpf.dps = 30
>>> PI1
什么在此版本中是新的:
- 常规
- 现在可以创建多个上下文对象,并使用上下文本地方法,而不是全局状态/功能(如MP2 = mp.clone(); mp2.dps = 50; mp2.cos(3))。并非所有的功能都被转换为背景的方法,也有一些缺陷,所以这一功能目前处于试验阶段。
- 如果mpmath安装在圣人4.0或更高版本,mpmath将现在使用的,而不是Python的sage.Integer长内部。
- 删除实例。
- runtests.py可以用-coverage生成覆盖率统计数据运行。
- 类型和基本运算
- 修正了-inf比较。
- 的MPI间隔类型的改变再版格式,使的eval(再版(X))==的X.
- 在区间的改进的打印,可配置的输出格式(贡献的Vinzent斯坦伯格唐彼得森基于代码)。
- 将mpmathify()和NSTR()(贡献的Vinzent斯坦伯格)的支持区间。
- 在MPC现在哈希。
- 添加了更多格式选项的内部功能to_str。
- 更快纯Python的平方根。
- 修正后的空白给在STR-GT和错误的价值观。MPF转换
- 微积分
- 固定nsum()与欧拉麦克劳林求和这将以前忽略来自N = 1的起始索引和总和。
- 在实现牛顿法findroot()(贡献的Vinzent斯坦伯格)。
- 线性代数
- 固定LU_decomp()来识别奇异矩阵(贡献的Vinzent斯坦伯格)。
- 的各种规范的功能是由通用矢量范数函数范数(X,p)和通用矩阵范数函数mnorm(的x,p)的替换。
- 特殊功能:
- 在一些内部缓存被改变总是微微overallocate精度。此修复最坏情况下的行为,而在以前的缓存值对每个函数调用重新计算。
- 修正日志(极少数)高精度返回废话。
- 固定伽玛()和衍生功能,如二项式()返回的整数输入错误的结果是整除的2大动力。
- 固定ASIN()不是引发异常的高精度(贡献的Vinzent斯坦伯格)。
- 优化了股东周年大会代码为自然对数,使得以前使用的方法牛顿在中等精度已经过时了。
- 算术几何平均函数AGM()现在是一个数量级的速度在低精度。
- ellipk()和ellipe更快的实现()。
- 分析延续ellipe的()对| x |> = 1实施
- 实施LOG伽玛功能(对数伽玛())与正确的分支切割(慢,占位符执行)。
- hyperfac的固定支切口()。
- 实施了黎曼 - 西格尔Z-功能(siegelz())。
- 实施了黎曼 - 西格尔THETA功能(siegeltheta())。
- 的革兰氏点实现计算(grampoint())。
- 在黎曼ζ函数零点的实现计算(zetazero())。
- 实施的主要计数功能:一个缓慢的,确切的版本(primepi())。和快速近似版本(primepi2()),给出了一个边界区间。
- 实施了黎曼 - [R首要计数功能(riemannr())。
- 实施Bell数和多项式(钟())。
- 实施的expm1()函数。
- 实施了“polyexponential功能'(polyexp())。
- 实施的孪生素数常数(twinprime)和梅尔滕斯“常数(梅尔滕斯)。
- 实施的首要zeta函数(primezeta())。
从代码库旧式整数除法
什么是在0.10版本新:
- 在增加包括绘图的技术支持,矩阵和线性代数函数,新求根和正交算法,增强区间算术,以及一些新的特殊功能。
- 在许多的速度提升一直致力于(少数功能幅度比0.9快一个数量级),以及各种bug已经修复。
- 重要的是,此版本修复mpmath与Python 2.6的工作。
要求:
- 在Python的
评论没有发现