当前位置: 首页 > 后端技术 > Python

四行代码秒解微积分!Python模块太棒了!

时间:2023-03-26 01:34:17 Python

SymPy是一个专注于符号数学的Python库,旨在成为一个功能齐全的计算机代数系统,同时保持代码简洁、易于理解和扩展。举个简单的例子,假设展开二次方程:fromsympyimport*x=Symbol('x')y=Symbol('y')d=((x+y)**2).expand()print(d)#结果:x**2+2*x*y+y**2可以输入任意表达式,哪怕是10次方也可以很方便的展开,很方便:fromsympyimport*x=Symbol('x')y=Symbol('y')d=((x+y)**10).expand()print(d)#结果:x**10+10*x**9*y+45*x**8*y**2+120*x**7*y**3+210*x**6*y**4+252*x**5*y**5+210*x**4*y**6+120*x**3*y**7+45*x**2*y**8+10*x*y**9+y**10让我们谈谈关于这个模块的具体用法和例子。1.开始之前,需要确保你的电脑已经成功安装了Python和pip(可选1)如果你使用Python进行数据分析,可以直接安装Anaconda,Anaconda已经内置了Python和pip。(可选2)另外,推荐大家使用VSCode编辑器,它有很多优点。请选择以下方式之一输入命令安装依赖项:Windows环境打开Cmd(开始-运行-CMD)。MacOS环境打开Terminal(command+空格进入Terminal)。如果你使用的是VSCode编辑器或者Pycharm,可以直接使用界面下方的Terminal.pipinstallSympy2。简化表达式的基本使用(化简)Sympy支持三种化简方式,分别是普通化简、三角化简、指数化简。一般简化simplify():fromsympyimport*x=Symbol('x')d=simplify((x**3+x**2-x-1)/(x**2+2*x+1))print(d)#result:x-1triangularsimplificationtrigsimp():fromsympyimport*x=Symbol('x')d=trigsimp(sin(x)/cos(x))print(d)#结果:tan(x)指数简化powsimp():fromsympyimport*x=Symbol('x')a=Symbol('a')b=Symbol('b')d=powsimp(x**a*x**b)print(d)#结果:x**(a+b)求解方程。solve()第一个参数为待解方程,要求右端等于0,第二个参数为待解未知数。例如一个单变量的线性方程:fromsympyimport*x=Symbol('x')d=solve(x*3-6,x)print(d)#结果:[2]一个双变量的线性方程:fromsympyimport*x=Symbol('x')y=Symbol('y')d=solve([2*x-y-3,3*x+y-7],[x,y])print(d)#result:{x:2,y:1}求极限limit()dir='+'表示求解右极限,dir='-'表示求解左极限:fromsympyimport*x=Symbol('x')d=limit(1/x,x,oo,dir='+')print(d)#结果:0d=limit(1/x,x,oo,dir='-')print(d)#result:0integralintegrate()先尝试求解不定积分:fromsympyimport*x=Symbol('x')d=integrate(sin(x),x)print(d)#Result:-cos(x)然后尝试定积分:fromsympyimport*x=Symbol('x')d=integrate(sin(x),(x,0,pi/2))print(d)#结果:1推导diff()使用diff函数进行等式推导:fromsympyimport*x=Symbol('x')d=diff(x**3,x)print(d)#结果:3*x**2d=diff(x**3,x,2)print(d)#结果:6*x求解出不同ialequationdsolve()以y′=2xy为例:fromsympyimport*x=Symbol('x')f=Function('f')d=dsolve(diff(f(x),x)-2*f(x)*x,f(x))print(d)#Result:Eq(f(x),C1*exp(x**2))3.实战今天群里有同学问了这个问题,"各位大佬,请问一下,这个点用Python应该怎么写呢,谢谢大家":#Python编程学习圈fromsympyimport*x=Symbol('x')y=Symbol('y')d=integrate(x-y,(y,0,1))print(d)#结果:x-1/2为了计算这个结果,integrate第一个参数是公式,第二个参数是积分变量和积分运行范围下标和上标的结果是x-1/2符合预期。如果你还需要解微积分和复杂的方程式,你可以试试Sympy,它几乎是完美的。这是我们文章的结尾。如果喜欢今天的Python实战教程,请关注公众号:Python编程学习圈,了解更多编程技巧。

猜你喜欢