python系列22:sympy概述

Posted IE06

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python系列22:sympy概述相关的知识,希望对你有一定的参考价值。

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

以上是关于python系列22:sympy概述的主要内容,如果未能解决你的问题,请参考以下文章

数学神器!Sympy 模块解数学方程解微积分

sympy:如何评估绝对值的积分

sympy与余弦不能正确积分?

使用 Sympy 在 Python 中进行符号集成

python sympy evalf()函数

「SymPy」实战之Maxwell分布律分子最概然均方根与平均速率