要计算积分,请使用
integrate
函数。
有两种积分,定积分和不定积分,不定积分和定积分怎么区别?
请注意,SymPy不包含积分常数。
如果需要,可以自己加一个,也可以将问题改写为微分方程并用于
dsolve
求解,这确实会增加常数
1.不定积分
即反导数或基元,只需在表达式后传递变量
import pycard as pc
from sympy import *
import sympy
from sympy import init_printing
init_printing(use_unicode=True)
x, y, z = symbols('x y z')
integrate(cos(x), x)
2.定积分
要计算定积分,请传递参数
。
例如,要计算
(integration_variable,
lower_limit,
upper_limit)
integrate(exp(-x), (x, 0, oo)) #1
可以传递多个限制元组以执行多个积分。
例如,要计算
integrate(exp(-x**2 - y**2), (x, -oo, oo), (y, -oo, oo)) #π
如果
integrate
无法计算积分,则返回未评估的
Integral
对象
integrate(x**x, x)
创建未评估的积分
Integral
。
如果要解积分,请调用
doit
。
expr = Integral(log(x)**2, x)
expr.doit()
integrate
使用了不断改进的强大算法来计算定积分和不定积分,包括启发式模式匹配类型算法,
Risch算法
的部分实现
以及使用
Meijer G函数的
算法
,该算法
可用于根据特殊函数计算积分,特别是定积分
integ = Integral((x**4 + x**2*exp(x) - x**2 - 2*x*exp(x) - 2*x -
exp(x))*exp(x)/((x - 1)**2*(x + 1)**2*(exp(x) + 1)), x)
integ
integ.doit()
limit(sin(x)/x, x, 0) #1
limit
有一个未评估的对应物
Limit
。
要对其进行评估,请使用
doit
。这句话说,可以先写出表达式,然后再计算极限
expr = Limit((cos(x) - 1)/x, x, 0)
expr.doit()
要仅在一侧评估极限,请将
'+'
或
'-'
作为第四个参数
传递
给
limit
。
例如,要计算
limit(1/x, x, 0, '+') #∞
limit(1/x, x, 0, '-') #-∞