Python 數學公式與函數大全
Python 提供了豐富的數學計算支持,包括內置函數、標準庫(math
、cmath
、numpy
)和第三方庫(sympy
、scipy
)。以下是常用數學公式和函數的分類整理:
1. 基本數學運算
1.1 算術運算
運算符/函數 描述 示例 +
, -
, *
, /
加減乘除 3 + 2 → 5
//
整除 7 // 2 → 3
%
取模(余數) 7 % 2 → 1
**
冪運算 2 ** 3 → 8
abs(x)
絕對值 abs(-5) → 5
pow(x, y)
冪運算(等價于 x ** y
) pow(2, 3) → 8
round(x, n)
四舍五入(n
位小數) round(3.14159, 2) → 3.14
1.2 分數與小數
from fractions import Fraction
from decimal import Decimal# 分數運算
a = Fraction(1, 3) # 1/3
b = Fraction(1, 2) # 1/2
print(a + b) # 輸出: 5/6# 高精度小數
c = Decimal('0.1') + Decimal('0.2')
print(c) # 輸出: 0.3(避免浮點誤差)
2. 數學函數庫(math
和 cmath
)
2.1 基本函數
函數 描述 示例 math.sqrt(x)
平方根 math.sqrt(4) → 2.0
math.exp(x)
自然指數(exe**x ) math.exp(1) → 2.718...
math.log(x, base)
對數(默認自然對數) math.log(8, 2) → 3.0
math.log10(x)
以 10 為底的對數 math.log10(100) → 2.0
2.2 三角函數
函數 描述 示例 math.sin(x)
正弦(弧度制) math.sin(math.pi/2) → 1.0
math.cos(x)
余弦 math.cos(0) → 1.0
math.tan(x)
正切 math.tan(math.pi/4) → 1.0
math.degrees(x)
弧度轉角度 math.degrees(math.pi) → 180.0
math.radians(x)
角度轉弧度 math.radians(180) → 3.14159...
2.3 復數運算(cmath
)
import cmathz = 1 + 2j
print(cmath.sqrt(z)) # 輸出: (1.272...+0.786...j)
print(cmath.phase(z)) # 輻角(弧度)
3. 高級數學庫(numpy
和 scipy
)
3.1 線性代數(numpy
)
import numpy as np# 矩陣運算
A = np.array([[1, 2], [3, 4]])
B = np.array([[5, 6], [7, 8]])
print(A @ B) # 矩陣乘法# 特征值與特征向量
eigenvalues, eigenvectors = np.linalg.eig(A)
3.2 科學計算(scipy
)
from scipy.integrate import quad
from scipy.optimize import minimize# 數值積分
result, error = quad(lambda x: x**2, 0, 1) # ∫x2 dx (0→1)
print(result) # 輸出: 0.333...# 優化問題
res = minimize(lambda x: (x[0]-1)**2 + (x[1]-2)**2, x0=[0, 0])
print(res.x) # 最優解: [1.0, 2.0]
4. 符號計算(sympy
)
用于解析數學公式(如求導、積分、解方程):
from sympy import symbols, diff, integrate, solvex, y = symbols('x y')
expr = x**2 + 2*x + 1# 求導
print(diff(expr, x)) # 輸出: 2*x + 2# 積分
print(integrate(expr, x)) # 輸出: x**3/3 + x**2 + x# 解方程
solution = solve(x**2 - 4, x)
print(solution) # 輸出: [-2, 2]
5. 統計與概率
5.1 隨機數(random
)
import randomprint(random.random()) # [0, 1) 隨機浮點數
print(random.randint(1, 10)) # 1~10 隨機整數
5.2 統計計算(statistics
)
from statistics import mean, median, stdevdata = [1, 2, 3, 4, 5]
print(mean(data)) # 平均值: 3.0
print(stdev(data)) # 標準差: 1.581...
6. 特殊函數
函數 描述 示例 math.gamma(x)
Gamma 函數 math.gamma(5) → 24.0
math.erf(x)
誤差函數 math.erf(1) → 0.842...
scipy.special.besselj(n, x)
貝塞爾函數 需安裝 scipy
總結
需求 推薦庫 示例 基本運算 內置函數 abs(-5)
三角函數/對數 math
math.sin(math.pi)
復數運算 cmath
cmath.sqrt(-1)
矩陣運算 numpy
np.linalg.inv(A)
符號計算 sympy
solve(x**2 - 1, x)
科學計算 scipy
scipy.integrate.quad
掌握這些工具后,你可以輕松實現從基礎算術到復雜科學計算的各類數學任務! 🚀