代码改变世界

math- 数学函数

2018-01-20 22:41  bruce0425  阅读(1559)  评论(0编辑  收藏  举报

该模块始终可用。它提供对由C标准定义的数学函数的访问。

这些函数不能用于复数; cmath如果您需要支持复数,请使用模块中的同名功能支持复数的函数和不支持的函数之间的区别是由于大多数用户不想学习理解复数所需的太多数学。接收一个异常而不是一个复杂的结果,可以更早地检测到用作参数的意外复数,这样程序员就可以确定如何以及为什么生成它。

以下功能由该模块提供。除非另外明确指出,否则所有返回值都是浮点数。

9.2.1。数论和表示函数

math.ceil

返回x的最大值,x是大于或等于x的最小整数如果x不是浮点数,则委托给它x.__ceil__(),这应该返回一个 Integral值。

math.copysignx

返回一个浮点,其大小(绝对值)为x,但是y的符号 在支持带符号的零的平台上, 返回-1.0copysign(1.0, -0.0)

math.fabs

返回x的绝对值

math.factorial

返回x factorial。ValueError如果x不是整数或者是负数,则引发

math.floor

返回x的最小整数,小于或等于x如果x不是浮点数,则委托给它x.__floor__(),这应该返回一个 Integral值。

math.fmodx

返回,由平台C库定义。请注意,Python表达式可能不会返回相同的结果。C标准的意图是完全(在数学上达到无限精度)等于某个整数n,使得结果的符号与x和幅度小于Python的 返回结果是y的符号,并且对于float参数可能不是完全可计算的。例如,,但Python的的结果,它不能被精确为float表示,并且四舍五入为令人惊讶的为此,功能fmod(x, y)yfmod(x, y)n*yabs(y)yfmod(-1e-100, 1e100)-1e-100-1e-100 1e1001e100-1e-1001e100fmod()在使用浮点数的时候通常是首选的,而在使用整数的时候Python 是首选的。y

math.frexp

返回x的尾数和指数作为对。 m是一个浮点数,e是一个整数如果x为零,则返回,否则返回这用于以便携方式“分离”浮点的内部表示。(m,e)== 2**e(0.0, 0)0.5 <= abs(m) 1

math.fsum可迭代

在迭代器中返回一个精确的浮点和值。通过跟踪多个中间部分和来避免精度损失:

>>> sum([.1, .1, .1, .1, .1, .1, .1, .1, .1, .1])
0.9999999999999999
>>> fsum([.1, .1, .1, .1, .1, .1, .1, .1, .1, .1])
1.0

该算法的精度取决于IEEE-754算术保证和舍入模式为半均匀的典型情况。在一些非Windows版本中,底层的C库使用扩展的精度加法,偶尔会使中间和加倍,导致它在最低有效位关闭。

有关进一步讨论和两种替代方法,请参阅ASPN食谱配方以获得精确的浮点总和

math.gcda

返回整数ab的最大公约数如果 ab不为零,那么值是除ab之外的最大正整数。 返回 gcd(a, b)gcd(0, 0)0

3.5版本的新功能

math.iscloseab*rel_tol = 1e-09abs_tol = 0.0 

返回True如果值b接近对方, False否则。

根据给定的绝对公差和相对公差确定两个值是否被认为是接近的。

rel_tol是相对公差 - 它是ab之间允许的最大差值,相对于ab的绝对值较大例如,要设置5%的容差,请通过rel_tol=0.05默认容差是1e-09,这确保了这两个值在大约9个十进制数字内是相同的。 rel_tol必须大于零。

abs_tol是最小绝对公差 - 对比较接近于零有用。abs_tol必须至少为零。

如果没有错误发生,结果将是: abs(a-b) <= max(rel_tol max(abs(a), abs(b)), abs_tol)

的IEEE 754特殊值NaNinf以及-inf将根据IEEE规则处理。具体来说,NaN不被认为是接近任何其他价值,包括NaN。 inf并且-inf只考虑靠近自己。

3.5版本的新功能

也可以看看

 

PEP 485 - 测试近似相等的函数

math.isfinite

返回True如果X既不是无穷大也不是NaN和 False其他。(注意0.0 认为是有限的。)

3.2版本的新功能

math.isinf

True如果x是正或负无穷,则返回, False否则返回。

math.isnan

返回True如果X为NaN(非数字),以及False其他。

math.ldexpx

回来这实质上是功能的反面 (2**i)frexp()

math.modf

返回x的小数部分和整数部分两个结果都带有x的符号,并且是浮动的。

math.trunc

截断 Realx返回Integral(通常是一个整数)。代表来 x.__trunc__()

注意,frexp()modf()具有比它们的C当量的不同调用/返回的模式:它们采取单参数和返回的一对值,而不是通过“输出参数”返回其第二返回值(有在Python没有这样的事情)。

对于ceil()floor()modf()功能,请注意,所有的 足够大的幅度的浮点数字是准确的整数。蟒漂浮通常携带没有精度超过53位(相同于平台C双键型),在这种情况下任何浮点数X 一定没有小数位。abs(x) >= 2**52

9.2.2。功率和对数函数

math.exp

回来e**x

math.expm1

回来对于小浮点数x,减法 可能导致精度显着损失 ;  函数提供了一种以完全精确的方式计算该数量的方法:e**x 1exp(x) 1expm1()

>>>
>>> from math import exp, expm1
>>> exp(1e-5) - 1  # gives result accurate to 11 places
1.0000050000069649e-05
>>> expm1(1e-5)    # result accurate to full precision
1.0000050000166668e-05

3.2版本的新功能

math.log[base 

用一个参数,返回x的自然对数(以e为底)。

用两个参数,将x的对数返回给定的基数,计算如下log(x)/log(base)

math.log1p

返回1 + x的自然对数(基数e)。计算结果的计算方法对于接近零的x是准确的

math.log2

返回x的基数2的对数这通常比...更准确 log(x, 2)

3.3版本中的新功能

也可以看看

 

int.bit_length() 返回表示二进制整数所需的位数,不包括符号和前导零。

math.log10

返回x的基数为10的对数这通常比...更准确log(x, 10)

math.powx

返回x提升到权力y例外情况应尽可能遵循C99标准的附件“F”。特别是, 总是返回,即使是零或为NaN。如果两个是有限的, 是负的,而不是整数然后 是未定义的,并提高pow(1.0, x)pow(x, 0.0)1.0xxyxypow(x, y)ValueError

与内置**运算符不同,math.pow()将其参数转换为类型float使用**或内置 pow()函数来计算精确的整数幂。

math.sqrt

返回x的平方根

9.2.3。三角函数

math.acos

以弧度返回x的反余弦值

math.asin

以弧度返回x的反正弦值

math.atan

返回x的反正切,以弧度表示。

math.atan2y

返回,以弧度。结果是在之间从原点到点的平面中的矢量与正X轴形成此角度。重点是两个输入的符号都是已知的,所以它可以计算角度的正确象限。例如,并且都是,但就是atan(y x)-pipi(x, y)atan2()atan(1)atan2(1, 1)pi/4atan2(-1, -1)-3*pi/4

math.cos

返回x弧度的余弦

math.hypotx

返回欧几里得规范这是从原点到点的矢量的长度sqrt(x*x y*y)(x, y)

math.sin

返回x弧度的正弦值

math.tan

返回x弧度的正切值

9.2.4。角转换

math.degrees

将角度x从弧度转换为度数。

math.radians

将角度x从度数转换为弧度。

9.2.5。双曲函数

双曲函数 是基于双曲线而不是圆的三角函数的类比。

math.acosh

返回x的反双曲余弦

math.asinh

返回x的反双曲正弦

math.atanh

返回x的反双曲正切

math.cosh

返回x的双曲余弦

math.sinh

返回x的双曲正弦

math.tanh

返回x的双曲正切

9.2.6。特殊功能

math.erf

x处 返回错误函数

erf()函数可以用来计算传统的统计函数,如累积的标准正态分布

DEF  X ):
    '为标准正态分布的累积分布函数' 
    返回 1.0  +  ERF X  /  SQRT 2.0 ))) /  2.0

3.2版本的新功能

math.erfc

x处返回补充错误函数互补误差函数被定义为 它被用于x值较大的地方,其中一个减法会导致重要的损失1.0 erf(x)

3.2版本的新功能

math.gamma

返回伽玛功能的 X

3.2版本的新功能

math.lgamma

x处返回Gamma函数绝对值的自然对数

3.2版本的新功能

9.2.7。常量

math.pi

数学常数π= 3.141592 ...,可用精度。

math.e

数学常数e = 2.718281 ...,可用精度。

math.tau

数学常数τ= 6.283185 ...,可用精度。Tau是一个等于2π的圆常量,即一个圆的周长与其半径之比。要了解更多关于Tau的信息,请查看Vi Hart的视频Pi(仍然)错了,开始庆祝 Tau的日子,吃两次馅饼!

3.6版本的新功能

math.inf

浮点正无限。(对于负无限,使用 -math.inf。)等于输出float('inf')

3.5版本的新功能

math.nan

浮点“不是数字”(NaN)值。相当于输出 float('nan')

3.5版本的新功能

CPython实现细节:math模块主要由平台C数学库函数周围的精简包装器组成。在特殊情况下的行为适用于C99标准附录F. 当前的实现将提高ValueError对于像无效操作sqrt(-1.0)log(0.0) (其中C99附件F建议信令无效操作或分频零),OverflowError对于结果溢出(例如,exp(1000.0))。除非一个或多个输入参数是NaN,否则NaN不会从上述任何函数返回。在这种情况下,大多数函数会返回一个NaN的,但(后再次C99附件F)也有一些例外情况,例如或 pow(float('nan'), 0.0)hypot(float('nan'), float('inf'))

请注意,Python不会将信号NaN与安静的NaN区分开来,而信号NaNs的行为仍然没有说明。典型的行为是把所有的NaN当作安静的。