首頁技術(shù)文章正文

math數(shù)學(xué)模塊中的常數(shù)和數(shù)字函數(shù)

更新時間:2022-07-05 來源:黑馬程序員 瀏覽量:

數(shù)字類型不僅可以參與簡單的加減乘除等基本運算,還可以參與更加復(fù)雜的數(shù)學(xué)運算,比如求弦、求根、求對數(shù)等,在Python程序中實現(xiàn)這些運算需要用到Python的一個數(shù)學(xué)模塊——math。在使用math模塊之前,需要先用import語句導(dǎo)入math模塊:

import math

math模塊提供了幾個數(shù)學(xué)常量和眾多數(shù)學(xué)函數(shù),接下來將帶領(lǐng)大家從這兩方面認識一下math模塊。

1.常數(shù)

在眾多數(shù)字運算中都會用到一些特別的常數(shù),例如,圓周率m、自然對數(shù)的底e等。math模塊提供了4個常數(shù):pi、e、inf、nan,它們對應(yīng)的數(shù)學(xué)符號和表示的含義如表1所示。

表1math常數(shù)
math

下面利用math模塊來輸出圓周率m和自然常數(shù)e的值(精確到小數(shù)點后20位):

# 03_calculation.py
import math
print("圓周率π:%.20f"% math.pi)    #精確到小數(shù)點后20位
print("自然常數(shù)e: %.20f" %math.e)      #精確到小數(shù)點后20位

2.數(shù)值表示函數(shù)

數(shù)學(xué)中除了基本的運算以外,還支持一些特殊運算,比如求絕對值、階乘,最大公約數(shù)等。ma山模塊提供了一些數(shù)值表示函數(shù)。這些涵數(shù)的數(shù)學(xué)符號和功能描述如表所示。
數(shù)值表示函數(shù)

Python中浮點數(shù)的精度有限,無法支持高精度浮點數(shù)的運算。為了解決這個問題,math庫提供了一個計算多個浮點數(shù)和的函數(shù)math.fsum(iterable)。這個函數(shù)不僅高效,還可以減少因計算導(dǎo)致的誤差。

數(shù)學(xué)中10個0.1相加的結(jié)果為1.0,下面分別用Python中的運算符和math模塊中的fsum()函數(shù)進行計算,代碼如下:

>>> 0.1+0.1+0.1+0.1+0.1+0.1+0.1+0.1+0.1+0.1
0.9999999999999999
>>> math.fsum([0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1])
1.0

由上述示例結(jié)果可知,直接使用運算符計算的結(jié)果不是1.0,而使用fsum()函數(shù)計算的結(jié)果為1.0。產(chǎn)生這種情況,主要是因為Python中表示0.1時小數(shù)點后存在若干位的精度尾數(shù),在0.1參與加法運算時,這個精度尾數(shù)可能會影響輸出結(jié)果。因此,在涉及到浮點數(shù)運算和結(jié)果比較時,建議使用math模塊中提供的函數(shù)。

3.冪函數(shù)與對數(shù)函數(shù)

數(shù)學(xué)中的冪運算和指數(shù)運算是比較常見的,math模塊針對這些運算提供了相應(yīng)的函數(shù),關(guān)于這些函數(shù)所對應(yīng)的數(shù)學(xué)符號和功能說明如表3所示。

表3冪函數(shù)和對數(shù)函數(shù)
冪數(shù)函數(shù)

在指數(shù)運算中,如果調(diào)用pow()函數(shù)時傳入的指數(shù)小于1,則表示該函數(shù)做的是開根運算。例如,對27執(zhí)行開立方根運算:

>>> math.pow(27, 1/3)    #返回27的立方根
3.0

4.三角函數(shù)

三角函數(shù)將三角形中的角與其邊長相互關(guān)聯(lián)。在標準庫中,所有的三角函數(shù)的輸入都是弧度。math模塊中三角函數(shù)的數(shù)學(xué)表示與功能說明如表4所示。
三角函數(shù)

5.高等特殊函數(shù)

除此之外,mA山模塊中還增加了一些具有特殊功能的函數(shù),關(guān)于它們的功能說明如表所示。

高等特殊函數(shù)

高斯誤差函數(shù)在概率論、統(tǒng)計學(xué)以及偏微分方程中有著廣泛的應(yīng)用,而伽瑪函數(shù)在分析學(xué)、概率論、偏微分方程和組合數(shù)學(xué)中有著廣泛的應(yīng)用,它們均不屬于初等數(shù)學(xué),但是非常有趣。例如,利用伽瑪函數(shù)計算浮點數(shù)的“階乘”,代碼如下:

>>> math.gamma (6)      +求0~5范圍內(nèi)的整數(shù)階乘
120.0





分享到:
在線咨詢 我要報名
和我們在線交談!