- SymPy 教程
- SymPy - 首頁
- SymPy - 簡介
- SymPy - 安裝
- SymPy - 符號計算
- SymPy - 數值
- SymPy - 符號
- SymPy - 替換
- SymPy - sympify() 函式
- SymPy - evalf() 函式
- SymPy - Lambdify() 函式
- SymPy - 邏輯表示式
- SymPy - 查詢
- SymPy - 簡化
- SymPy - 導數
- SymPy - 積分
- SymPy - 矩陣
- SymPy - 函式類
- SymPy - 四元數
- SymPy - 求解器
- SymPy - 繪圖
- SymPy - 實體
- SymPy - 集合
- SymPy - 列印
- SymPy 有用資源
- SymPy - 快速指南
- SymPy - 有用資源
- SymPy - 討論
SymPy - 積分
SymPy 包包含 integrals 模組。它實現了計算表示式定積分和不定積分的方法。integrate() 方法用於計算定積分和不定積分。要計算不定積分或原函式,只需在表示式後傳遞變數。
例如 -
integrate(f, x)
要計算定積分,請按如下方式傳遞引數 -
(integration_variable, lower_limit, upper_limit)
>>> from sympy import *
>>> x,y = symbols('x y')
>>> expr=x**2 + x + 1
>>> integrate(expr, x)
以上程式碼片段給出的輸出等價於以下表達式 -
$\frac{x^3}{3} + \frac{x^2}{2} + x$
>>> expr=sin(x)*tan(x) >>> expr >>> integrate(expr,x)
以上程式碼片段給出的輸出等價於以下表達式 -
$-\frac{\log(\sin(x) - 1)}{2} + \frac{\log(\sin(x) + 1)}{2} - \sin(x)$
定積分的示例如下 -
>>> expr=exp(-x**2) >>> integrate(expr,(x,0,oo) )
以上程式碼片段給出的輸出等價於以下表達式 -
$\frac{\sqrt\pi}{2}$
您可以傳遞多個極限元組來執行多重積分。示例如下 -
>>> expr=exp(-x**2 - y**2) >>> integrate(expr,(x,0,oo),(y,0,oo))
以上程式碼片段給出的輸出等價於以下表達式 -
$\frac{\pi}{4}$
您可以使用 Integral 物件建立未計算的積分,可以透過呼叫 doit() 方法來計算它。
>>> expr = Integral(log(x)**2, x) >>> expr
以上程式碼片段給出的輸出等價於以下表達式 -
$\int \mathrm\log(x)^2 \mathrm{d}x$
>>> expr.doit()
以上程式碼片段給出的輸出等價於以下表達式 -
$x\log(x)^2 - 2xlog(x) + 2x$
積分變換
SymPy 支援以下各種型別的積分變換 -
- laplace_transform
- fourier_transform
- sine_transform
- cosine_transform
- hankel_transform
這些函式在 sympy.integrals.transforms 模組中定義。以下示例分別計算傅立葉變換和拉普拉斯變換。
示例 1
>>> from sympy import fourier_transform, exp >>> from sympy.abc import x, k >>> expr=exp(-x**2) >>> fourier_transform(expr, x, k)
在 Python Shell 中執行上述命令後,將生成以下輸出 -
sqrt(pi)*exp(-pi**2*k**2)
等價於 -
$\sqrt\pi * e^{\pi^2k^2}$
示例 2
>>> from sympy.integrals import laplace_transform >>> from sympy.abc import t, s, a >>> laplace_transform(t**a, t, s)
在 Python Shell 中執行上述命令後,將生成以下輸出 -
(s**(-a)*gamma(a + 1)/s, 0, re(a) > -1)
廣告