sympy是一个Python的科学计算库,用一套强大的符号计算体系完成诸如多项式求值、求极限、解方程、求积分、微分方程、级数展开、矩阵运算等等计算问题。虽然Matlab的类似科学计算能力也很强大,但是Python以其语法简单、易上手、异常丰富的三方库生态,个人认为可以更优雅地解决日常遇到的各种计算问题。
首先使用pip下载sympy
from sympy import * ##为了避免要导入各种函数 直接把整个sympy导入
from sympy import integrate ,cos,sin
from sympy.abc import a,x,y
##使用符号变量的时候,需要先导入符号,在sympy.abc下。以下为一个小的例子(sin(x)/x在负无穷到正无穷下的定积分,结果为pai,这是一个瑕积分,计算起来比较麻烦,但是Python可以再不到1秒之内计算出来)
integrate(sin(x)/x,(x,-float("inf"),float("inf")))#积分 integrate(function, variable, point)
limit(sin(x)/x, x, 0)#极限 limit(function, variable, point)
cos(x).series(x, 0, 10) #级数 级数 series(var, point, order)
integrate(2*x + sinh(x), x) # 初等函数
diff(sin(2*x), x, 1) #微分 高阶微分 diff(func, var, n)
integrate(exp(-x**2)*erf(x), x) #特殊函数
integrate(log(x), (x, 0, 1))
integrate(exp(-x), (x, 0, oo)) #某些广义积分
x = Symbol("x", real=True)
exp(I*x).expand(complex=True) #复数
sin(x+y).expand(trig=True) #三角函数
apart((x+1)/(x-1), x) #代数 局部的代数式展开,使用apart(expr, x)
together(apart(1/( (x+2)*(x+1) ), x), x) #代数 合并,使用together(expr, x)
f=Function('f')
f(x).diff(x, x) + f(x) #注意在使用输入该命令之前,一定要声明f=Function('f')
dsolve(f(x).diff(x, x) + f(x), f(x)) #微分方程
solve([x + 5*y - 2, -3*x + 6*y - 15], [x, y]) #代数方程
x = Symbol('x')##带有求和式的方程
i = Symbol('i',integer = True)
f = summation(x,(i,1,5)) + 10 * x - 15
solve(f,x)
##integrate(x*sin(x), (x, 0, 2*pi))
##limit(sin(2*x)/x, x, 0)#极限 limit(function, variable, point)
# #E**(I*pi)+1 = 0 //欧拉公式
##from sympy import *
##
##integrate((2*x+1)/(cos(x**2)),x)
##limit((5*sin(x)+x*x*sin(1/x))/((x**2+x-2*cos(x)*ln(1+x))), x, 0)#极限 limit(function, variable, point)
给出sympy的官方文档https://docs.sympy.org/0.7.1/tutorial.html#tutorial