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



目录
相关文章
|
测试技术 数据库 UED
Python 性能测试进阶之路:JMeter 与 Locust 的强强联合,解锁性能极限
【9月更文挑战第9天】在数字化时代,确保软件系统在高并发场景下的稳定性至关重要。Python 为此提供了丰富的性能测试工具,如 JMeter 和 Locust。JMeter 可模拟复杂请求场景,而 Locust 则能更灵活地模拟真实用户行为。结合两者优势,可全面评估系统性能并优化瓶颈。例如,在电商网站促销期间,通过 JMeter 模拟大量登录请求并用 Locust 模拟用户浏览和购物行为,可有效识别并解决性能问题,从而提升系统稳定性和用户体验。这种组合为性能测试开辟了新道路,助力应对复杂挑战。
462 2
|
测试技术 数据库 UED
Python 性能测试进阶之路:JMeter 与 Locust 的强强联合,解锁性能极限
【8月更文挑战第6天】在数字化时代,确保软件在高并发下的稳定性至关重要。Python 提供了强大的性能测试工具,如 JMeter 和 Locust。JMeter 可配置复杂请求场景,而 Locust 则以 Python 脚本灵活模拟真实用户行为。两者结合,可全面评估系统性能。例如,对电商网站进行测试时,JMeter 模拟登录请求,Locust 定义浏览和购物行为,共同揭示系统瓶颈并指导优化,从而保证稳定高效的用户体验。
312 1
|
搜索推荐 Python
快速排序:Python 中的速度之王,揭秘它的递归魔法与性能极限!
【7月更文挑战第12天】快速排序**是高效排序算法,基于分治策略。它选择基准值,将数组分成小于和大于基准的两部分,递归地对两部分排序。
227 6
|
Python
python sympy 信号有效值
【4月更文挑战第8天】
243 6
|
人工智能 知识图谱 Python
python实现知识推理,图可达,pydatalog,kanren,sympy
python实现知识推理,图可达,pydatalog,kanren,sympy
425 0
|
Python
python计算收益率的效率分析-sympy包-计算呈指数递增,大量计算不考虑
python计算收益率的效率分析-sympy包-计算呈指数递增,大量计算不考虑
314 0
python计算收益率的效率分析-sympy包-计算呈指数递增,大量计算不考虑
python使用极限方法求 π (随机数)
python使用极限方法求 π (随机数)
python使用极限方法求 π (随机数)
|
Python
【超干货】用Python打开高等数学-sympy
用Python打开高等数学,让你的数学学习没烦恼。-sympy
440 1
|
Python
Python计算:sympy解数学方程
Python计算:sympy解数学方程
312 0
|
Python
Python计算:sympy解数学方程
Python计算:sympy解数学方程
325 0

推荐镜像

更多