与Python内置函数的区别
#内置函数 >>> import math >>> math.sqrt(9) 3.0 >>> math.sqrt(8) 2.82842712475
#sympy >>> import sympy >>> sympy.sqrt(3) sqrt(3) >>> sympy.sqrt(8) 2*sqrt(2) #sympy保留了原式,且能自动进行部分化简
符号表达式
>>> from sympy import symbols >>> x, y = symbols('x y') #定义x,y >>> expr = x + 2*y #定义表达式 >>> expr x + 2*y >>> expr + 1 #表达式的加减 x + 2*y + 1 >>> expr - x 2*y >>> x*expr #表达式相乘,结果并未展开 x*(x + 2*y) >>> from sympy import expand, factor >>> expanded_expr = expand(x*expr) #用expand将表达式展开 >>> expanded_expr x**2 + 2*x*y >>> factor(expanded_expr) #用factor将表达式因式分解 x*(x + 2*y)
符号计算的力量
>>> from sympy import * >>> x, t, z, nu = symbols('x t z nu') >>> init_printing(use_unicode=True) 用unicode打印字符 >>> diff(sin(x)*exp(x), x) #求导 x x ℯ ⋅sin(x) + ℯ ⋅cos(x) >>> integrate(exp(x)*sin(x) + exp(x)*cos(x), x) #不定积分 x ℯ ⋅sin(x) >>> integrate(x**2,(x,-1,1)) #定积分 2/3 >>> limit(sin(x)/x, x, 0) #求极限 1 >>> solve(x**2 - 2, x) #解方程x^2 - 2 = 0 [-√2, √2] >>> y = Function('y') #解微分方程 >>> dsolve(Eq(y(t).diff(t, t) - y(t), exp(t)), y(t)) -t ⎛ t⎞ t y(t) = C₂⋅ℯ + ⎜C₁ + ─⎟⋅ℯ ⎝ 2⎠ >>> Matrix([[1, 2], [2, 2]]).eigenvals() #矩阵特征值 ⎧3 √17 √17 3 ⎫ ⎨─ + ───: 1, - ─── + ─: 1⎬ ⎩2 2 2 2 ⎭