求不定积分:
from sympy import * x = symbols('x') def Deinteg(Func): print('∫(',Func,')dx') print('=',integrate(Func,x),'+ C\n') f1x = 4*pow(x,3) + 3*x*x + 2*x + 1 f2x = x * exp(x) + exp(x) f3x = exp(2*x)+cos(3*x) f4x = sin(x)/(1+sin(x)+cos(x)) Deinteg(f1x) Deinteg(f2x) Deinteg(f3x) Deinteg(f4x) ''' 输出结果: -------- ∫( 4*x**3 + 3*x**2 + 2*x + 1 )dx = x**4 + x**3 + x**2 + x + C ∫( x*exp(x) + exp(x) )dx = x*exp(x) + C ∫( exp(2*x) + cos(3*x) )dx = exp(2*x)/2 + sin(3*x)/3 + C ∫( sin(x)/(sin(x) + cos(x) + 1) )dx = x/2 - log(tan(x/2) + 1) + log(tan(x/2)**2 + 1)/2 + C '''
求定积分:
from sympy import * x = symbols('x') def Deinteg(Func, upperL, lowerL): print('∫[',upperL,',',lowerL,'](',Func,')dx') print('=(',integrate(Func,x),')|[',upperL,',',lowerL,']') print('=',integrate(Func,(x,upperL,lowerL)),'\n') fx = 4*pow(x,3) + 3*x*x + 2*x + 1 gx = sin(x)/(1+sin(x)+cos(x)) Deinteg(fx, 0, 2) Deinteg(gx, 0, pi/2) ''' #输出结果:# ∫[ 0 , 2 ]( 4*x**3 + 3*x**2 + 2*x + 1 )dx =( x**4 + x**3 + x**2 + x )|[ 0 , 2 ] = 30 ∫[ 0 , pi/2 ]( sin(x)/(sin(x) + cos(x) + 1) )dx =( x/2 - log(tan(x/2) + 1) + log(tan(x/2)**2 + 1)/2 )|[ 0 , pi/2 ] = -log(2)/2 + pi/4 '''
定积分的结果居然能保持 log(2)、pi 原型,牛叉的! 第二题答案如下图所示,完全一致。
附:sympy库的其它功能
#求极限 >>> limit(sin(x)/x, x, 0) 1 >>> limit(sin(x)/x, x, oo) #正无穷处极限 0 >>> limit(sin(x) * E**x, x, -oo)#负无穷处极限 0 >>> limit(1/x, x, 0, '+') #右极限 oo >>> limit(1/x, x, 0, '-')#左极限 -oo >>> limit(1/sin(x), x, oo) #极限不存在 AccumBounds(-oo, oo)
#求导 >>> diff(cos(x), x) -sin(x) >>> diff(cos(x)*sin(y), x, x, x) #多次求导(对x连续求3次偏导数) sin(x)*sin(y) >>> diff(cos(x)*sin(y), x,3) #与上式等价,对x求3阶偏导数 sin(x)*sin(y) >>> diff(sinh(x)/E**y, x,x,y,y,y) -exp(-y)*sinh(x) >>> diff(sinh(x)/E**y, x,2,y,3)#与上式等价。对x求2阶偏导数,再对y求3阶偏导数 -exp(-y)*sinh(x)
#多次不定积分 >>> integrate(cos(x), x,x) #对 x 两次积分 -cos(x) >>> integrate(cos(x), x,x,x) #对 x 三次积分 -sin(x) >>> integrate(sinh(x)*cosh(y), x, y) sinh(y)*cosh(x) >>> integrate(sinh(x)*cosh(y), y, x) sinh(y)*cosh(x) #多重积分 >>> integrate(exp(-x**2 - y**2), (x, -oo, oo), (y, -oo, oo)) pi
sympy库还有泰勒展开、级数求和、微分方程、有限差分、拉普拉斯变换、逆拉普拉斯变换、傅里叶变换、逆傅里叶变换等等功能......
如果还没安装sympy库的话,可以用以下命令安装:
E:\>pip install sympy ... 省去N行 ... Installing collected packages: mpmath, sympy Successfully installed mpmath-1.2.1 sympy-1.7.1 E:\>pip install sympy Requirement already satisfied: sympy in e:\python\lib\site-packages (1.7.1) Requirement already satisfied: mpmath>=0.19 in e:\python\lib\site-packages (from sympy) (1.2.1) E:\>