Python部落(python.freelycode.com)组织翻译,禁止转载,欢迎转发。

当我们在日常生活中编写程序时,我们通常遇到需要使用数学来完成任务的情况。像其他编程语言一样,Python提供了各种基本运算操作,如*代表乘法,%代表求模运算,//代表整除。

如果您正在编写一个程序来执行特定任务,如研究周期运动或模拟电路,您将需要使用三角函数以及复数。虽然您不能直接使用这些功能,但您可以先导入两个数学模块来访问它们。这两个模块是math和cmath。

第一个模块允许您访问实数的双曲线,三角函数和对数函数,而后者允许您使用复数。在本教程中,我将讨论这些模块提供的所有重要功能。除非明确提到,返回的所有值都是浮点数。

算术函数

这些函数执行各种算术运算,如向下取整,向上取整,取绝对值,分别对应floor(x),ceil(x)以及fabs(x)。ceil(x)函数将返回大于或等于x的最小整数。同样地,floor(x)返回小于或等于x的最大的整数。fabs(x)返回的x的绝对值。

还可以执行非平凡的操作,如使用factorial(x)计算一个数的阶乘。一个正整数的阶乘是所有小于及等于该数的正整数的乘积。它在处理组合和排列时被广泛使用。它也可以用于计算正弦和余弦函数的值。

math模块中另一个有用的函数是gcd(x,y),求两个数x和y的最大公约数(GCD)。当x和y均为不为零,则该函数返回可以整除x和y的最大正整数。您可以使用以下公式间接计算两个数字的最小公倍数:

下面是Python提供的一些算术函数:

三角函数

这些函数将三角形的角度与其边相关。它们有很多应用,包括研究三角形和周期性现象,如声音和光波的建模。请记住,您提供的角度以弧度表示。

可以直接使用此模块计算sin(x),cos(x)和tan(x)。然而,没有直接的公式来计算cosec(x),sec(x)和cot(x),但是它们的值分别等于sin(x),cos(x)和tan(x)返回值的倒数。

你也可以做逆运算,通过使用asin(x),acos(x)和atan(x)计算给定值的角度,而不是计算某个角度的三角函数的值。

你熟悉勾股定理吗?它指出,斜边长度的平方(与直角相对的一侧)等于其他两边的平方和。斜边也是直角三角形的最大边。math模块提供hypot(a, b)函数计算斜边长度。

双曲函数

双曲线函数是基于双曲线而不是圆的三角函数的类似物。在三角函数中,点(cos b,sin b)代表单位圆的点。在双曲函数的情况下,点(cos b,sin b)表示形成等边双曲线的右半部分。

像三角函数一样,就可以直接计算出sinh(x),cosh(x)和tanh(x)的值。其余值可以使用这三个值之间的各种关系来计算。也有其他的函数,如asinh(x),acosh(x)和atanh(x),其可被用于计算相应的双曲值的倒数。

幂函数和对数函数

你可能会比双曲或三角函数更频繁地处理幂和对数。幸运的是,math模块提供了很多函数来帮助我们计算对数。

您可以使用log(x,[base])计算给定基数的值x的对数。如果省略可选基数参数,则x的对数计算以e为基数。在这里,e是一个数学常数,其值是2.71828182 ....它可以使用math.e访问。顺便说一句,Python还允许您使用math.pi访问另一个常量π。

如果要计算以2为底或以10为底的对数值,使用log2(x)和log10(x)会返回比log(x, 2)和log(x, 10)更精确的结果。请记住,没有log3(x)的函数,所以你必须使用log(x, 3)来计算以3为底的对数值。同样适用于所有其他基数。

如果您正在计算的对数值非常接近1,就可以使用log1p(x)。log1p中1p代表1加。因此,log1p(x)计算的是log(1+x),其中x接近于零。用log1p(x)结果更准确。

还可以使用pow(x, y)计算一个数字x的y次幂。在计算之前,此函数将两个参数转换为float类型。如果你想最终的结果以精确整数幂来计算,你应该使用内置的pow()功能或**操作符。

还可以使用sqrt(x)计算任何给定数x的平方根,但同样的事情,也可以通过使用pow(x, 0.5)来完成。

复数

复数使用矩形或笛卡尔坐标存储在内部。复数z笛卡尔坐标表示为z = x + iy,其中点x表示实部和y表示虚部。另一种表示方法是使用极坐标。

在这种情况下,复数z将被定义为模数r和相位角phi的组合。模数r是复数z和原点之间的距离。角度phi是从正x轴到连接z和原点的线段以弧度测量的逆时针角度。

虽然cmath模块处理复数可以有很大的帮助。复数的模数可以使用内置函数abs()来计算,并且可以使用cmath模块中提供的函数phase(z)计算出其相位。可以使用polar(z)将复数从矩形形式转换为极坐标形式,这将返回一个元组(r, phi),其中r是abs(z),phi是phase(z)。

同样,您可以用rect(r, phi)将复数从极坐标形式转换成矩形形式。该函数返回的复数为  r * (math.cos(phi) + math.sin(phi)*1j)。

cmath模块还允许我们用复数使用普通的数学函数。例如,您可以使用sqrt(z)计算复数的平方根或使用cos(z)计算复数的余弦。

最后的想法

我们上面讨论的所有这些函数都有其特定的应用。例如,您可以使用factorial(x)函数来解决排列组合问题。您可以使用三角函数将矢量分解为笛卡尔坐标。您还可以使用三角函数来模拟周期函数,如声音和光波。

类似地,可以使用双曲函数来确定悬挂在两极之间的绳索的曲线。由于所有这些功能都是直接用数学模块,它可以很容易地创建执行所有这些任务的小程序。

我希望你喜欢这个教程。如果你有任何问题,可以在评论里让我知道。

英文原文:https://code.tutsplus.com/tutorials/mathematical-modules-in-python-math-and-cmath--cms-26913

译者:flqzdzxx

python数学库函数包括求最大公约数函数吗_pythonmathcot函数_math库是python语言的数学模块吗_Python中的数学模块:...相关推荐

  1. python signal模块作用_Python中的signal模块和Ctrl+C操作

    Python中的signal模块处理OS级别的信号.例如Ctrl+C会进程发送信号. Linux上查看信号的方法: [appadmin@BJLTPGPLM1007T ~]$ kill -l 1) SI ...

  2. pythonmathcot函数_math库是python语言的数学模块吗_Python中的数学模块:Math和Cmath

    Python部落(python.freelycode.com)组织翻译,禁止转载,欢迎转发. 当我们在日常生活中编写程序时,我们通常遇到需要使用数学来完成任务的情况.像其他编程语言一样,Python提 ...

  3. python matplotlib模块教程_Python中的Matplotlib模块入门教程

    1 关于 Matplotlib 模块 Matplotlib 是一个由 John Hunter 等开发的,用以绘制二维图形的 Python 模块.它利用了 Python 下的数值计算模块 Numeric ...

  4. 练习-定义和调用求最大公约数和最小公倍数的函数

    第1关:定义和调用求最大公约数和最小公倍数的函数 任务描述 本关任务:编写程序,自定义两个函数分别求两个正整数的最大公约数和最小公倍数,用主函数调用这两个函数并输出结果. #include <s ...

  5. python编程练习:求最大公约数和最小公倍数

    # coding:utf-8 """ 求最大公约数和最小公倍数 两个数的最大公约数是两个数的公因子中最大的那个数: 两个数的最小公倍数是能够同时被两个数整除的那个数. & ...

  6. math库是python语言的数学模块吗_math库是python语言的数学模块。

    [单选题]for i in range(10): ...... 中 ,i的循环终值是 (). [简答题]人生观的主要内容 [填空题]下面程序的运行结果是( ). b, c=2, 4 def g_fun ...

  7. python函数模块概念_python中模块和包的概念

    1.模块 一个.py文件就是一个模块.这个文件的名字是:模块名.py.由此可见在python中,文件名和模块名的差别只是有没有后缀.有后缀是文件名,没有后缀是模块名. 每个文件(每个模块)都是一个独立 ...

  8. python中mod运算符_Python中的数学运算操作符使用进阶

    Python中对象的行为是由它的类型 (Type) 决定的.所谓类型就是支持某些特定的操作.数字对象在任何编程语言中都是基础元素,支持加.减.乘.除等数学操作. Python的数字对象有整数和浮点数, ...

  9. python配置文件解析_Python中配置文件解析模块-ConfigParser

    Python中有ConfigParser类,可以很方便的从配置文件中读取数据(如DB的配置,路径的配置). 配置文件的格式是: []包含的叫section, section 下有option=valu ...

最新文章

  1. Vcastr 2.2 flv 网络播放器 参数设置
  2. 带有128KB缓存的AD7606模拟采集板
  3. ML之kNNC:基于iris莺尾花数据集(PCA处理+三维散点图可视化)利用kNN算法实现分类预测daiding
  4. UVA 1210 Sum of Consecutive Prime Numbers
  5. 20172329 2017-2018-2 《程序设计与数据结构》实验一报告
  6. [转]Oracle中字符集的类型决定varchar2的字符长度
  7. 在Quartus下仿真FIFO的读写
  8. 解决jupyter notebook输出显示不完整问题
  9. Win7系统更新错误代码80073712的解决办法
  10. php加ajax,PHP – AJAX 与 PHP | 菜鸟教程
  11. 微信网页video播放视频不全屏的解决方法
  12. springboot获取到的MySQL数据少了8小时
  13. Python实现日程表
  14. 关于计算机的发展史手抄报图片,历史手抄报精选图片内容
  15. [gdc13]古墓丽影DirectX11技术
  16. ppp协议 服务器,PPP(点对点协议(Point to Point Protocol))_百度百科
  17. 用HTML绘制哆啦A梦
  18. python re模块_python 正则表达式 (重点) re模块
  19. 实验四+070+胡阳洋
  20. 8位并行左移串行转换电路_双向移位寄存器 8位双向移位寄存器电路设计

热门文章

  1. Windows和iPad传输
  2. Java代码给csv文件加水印_如何给CSV数据包的图片批量加上水印
  3. java8新特性之lambda表达式--超级详细版本
  4. 软件开发中的《清单革命》
  5. 基于宜搭的《T恤尺码收集》应用搭建
  6. Python——飞机大战(day10)
  7. Chrome安装插件提示 出现错误 image decode failed
  8. python 删除pdf页面_Python脚本使用pyPDF删除空白页面
  9. js给网页中所有p元素添加onclick事件
  10. 计算机专业课题 结题报告,《有效技能研究与实践》课题结题报告