1. 概述
sympy是一个数学符号计算库。可使用pip进行安装。
2. 简明使用
1. 基础
基本数据机构是符号(symbols),符号组合成表达式(function)。
-
基本符号库 abc: 所有拉丁、希腊字母库,例如from sympy.abc import x,y S:预定义数据结构,例如S.One, S.Zero, S.Half, S.true -
常用函数 symbols: 变量声明。symbols(‘a:5’)表示a_0到a_4;symbols(‘a(1:3)(1:3)’)表示(a11, a12, a21, a22) sympify: 字符串转变量 evalf:计算表达式浮点数值,例如:expr.evalf(subs={r:5}) ,其中subs是表达式赋值计算 Rational:构造分数,例如Rational(1,3) lambdify:将SymPy表达式转换为NumPy可以使用的函数,例如:f=lambdify([a,b],expr, “numpy”)
2. 多项式计算
factor:分解因式 simplify: 多项式化简 expand:多项式展开,例如expand(x*(x+x**2)*(x+3)) collect:合并同类项 rewrite: 三角函数转换,例如f=tan(x);f.rewrite(sin) series: 泰勒展开,例如f=sin(x);f.series(x,0,10) solve:求解方程,例如:solve(x**2+x<10,x) solve([x**2+y-3,x+y-2],[x,y])
3. 微积分
limit:取极限,例如limit(sin(x)/x, x, 0) diff:求导,例如diff(x**3,x) integrate:求积分,例如定积分 integrate(exp(-x**2),(x,0,oo)) 或者不定积分integrate(2*x,x) Derivative、Integral:求导对象、积分对象,使用doit进行计算 dsolve:求解微分方程,例如s=symbols('s',cls=Function);dsolve(s(t).diff(t)-2*t+s(t),s(t)) ,可以加入参数ics={s(0):0}
4. 线性代数
from sympy.matrices import Matrix:矩阵 Eq:方程对象 solveset:求解方程,例如solveset(Eq(x**2-9,0), x) linsolve:求解线性方程,例如linsolve([Eq(x-y,4),Eq( x + y ,1) ], (x, y)) nonlinsolve:非线性方程(组)
5. 绘图
plot: 简单2d绘图,例如:plot((f1,(x,-5,5)),(f2,(x,-12,12)),title='对不同表达式分别指定绘图区间范围') plot3d
|