Python 用sympy做高数题,不定积分、定积分、极限、求导样样精通!

简介: Python 用sympy做高数题,不定积分、定积分、极限、求导样样精通!

求不定积分:


image.png


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
'''


求定积分:

image.png

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 原型,牛叉的! 第二题答案如下图所示,完全一致。

20210323205259536.png


附: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:\>



目录
相关文章
|
1月前
|
Python
python sympy 信号有效值
【4月更文挑战第8天】
|
5月前
|
人工智能 知识图谱 Python
python实现知识推理,图可达,pydatalog,kanren,sympy
python实现知识推理,图可达,pydatalog,kanren,sympy
64 0
|
Python
python计算收益率的效率分析-sympy包-计算呈指数递增,大量计算不考虑
python计算收益率的效率分析-sympy包-计算呈指数递增,大量计算不考虑
116 0
python计算收益率的效率分析-sympy包-计算呈指数递增,大量计算不考虑
python使用极限方法求 π (随机数)
python使用极限方法求 π (随机数)
python使用极限方法求 π (随机数)
|
Python
【超干货】用Python打开高等数学-sympy
用Python打开高等数学,让你的数学学习没烦恼。-sympy
143 1
|
Python
Python计算:sympy解数学方程
Python计算:sympy解数学方程
105 0
|
Python
Python计算:sympy解数学方程
Python计算:sympy解数学方程
218 0
|
14天前
|
存储 人工智能 数据处理
Python:编程的艺术与科学的完美交融
Python:编程的艺术与科学的完美交融
19 1
|
3天前
|
存储 Python 容器
Python高级编程
Python集合包括可变的set和不可变的frozenset,用于存储无序、不重复的哈希元素。创建集合可使用{}或set(),如`my_set = {1, 2, 3, 4, 5}`。通过add()添加元素,remove()或discard()删除元素,如`my_set.remove(3)`。
|
4天前
|
测试技术 Python
Python模块化方式编程实践
Python模块化编程提升代码质量,包括:定义专注单一任务的模块;使用`import`导入模块;封装函数和类,明确命名便于重用;避免全局变量降低耦合;使用文档字符串增强可读性;为每个模块写单元测试确保正确性;重用模块作为库;定期维护更新以适应Python新版本。遵循这些实践,可提高代码可读性、重用性和可维护性。
23 2