sympy的用法

什么是Sympy
Sympy 是一个可以进行符号运算的第三方科学计算库,数学对象可以被精确的表达,而不是近似值,这也意味着带有未计算的未知量可以以符号的形式留在数学表达式中。

一个更有趣的例子
在Sympy 中,用symbols来定义变量,也就是说,在使用某个变量前,必须先定义它。

x,y=sympy.symbols('x y')
expr=x+2*y;expr

x+2y

expr+1

x+2y+1
xexpr # 除了 x-x=0,sqr(8)=2sqrt(2),很多简化不能自动的进行,这是因为我们有可能希望展开,也有可能希望是多因式的形式,在sympy中,有专门的函数来进行转化

x(x+2y)

expanded_expr=sympy.expand(x*expr)
expanded_expr

x2+2xy

sympy.factor(expanded_expr)

x(x+2y)
sympy还可以用来 快速做题 简化表达式,计算导数,积分,极限,解方程,矩阵运算 。

x,y,z,nu=sympy.symbols('x y z nu')
  • 对 sin(x)exp(x)求导
sympy.diff(sympy.sin(x)*sympy.exp(x),x)

exsin(x)+excos(x)

  • 计算exsin(x)+excos(x)的积分
sympy.integrate(sympy.exp(x)*(sympy.sin(x)+sympy.cos(x)),x)

exsin(x)

  • 计算sin(x2)的无穷积分:
from sympy import *
sympy.integrate(sympy.sin(x**2),(x,-oo,oo))
  • sin(x)/x,当x趋近于0时的极限:
sympy.limit(sympy.sin(x)/x,x,0)
  • 解方程:x**2-2=0
sympy.solve(x**2-2,x)

[−2–√,2–√]

  • 解微分方程 y’’-y=e(t)
y=sympy.Function('y')
t=sympy.symbols('t')
sympy.dsolve(sympy.Eq(y(t).diff(t,t)-y(t),sympy.exp(t)),y(t))

在这里插入图片描述

  • 找矩阵[[1,2],[2,2]]的特征值:
sympy.Matrix([[1,2],[2,2]]).eigenvals()

在这里插入图片描述

等号

在Python中,=代表赋值,为了不与python冲突,所以等式不能用=来表示,而==代表逻辑判断等于,其返回布尔值,显然作为表示符号运算中的“等于”,也不合适。在Sympy中,我们用Eq来表示等式:

sympy.Eq(x+1,4)

False

  • 为了比较两个式子是否相等,可以将两个式子做减法,然后用simplify方法:
x=sympy.symbols('x')
a=(x+1)**2;a
b=x**2+1+2*x;b
(a-b).simplify()

0

  • 另外,还有一个equals方法可以用来判断,两个式子是否是相同的:
a.equals(b)
True

其他用途还有多项式/有理式函数简化,三角几何简化,指数和对数,特殊函数,重写rewrite,微积分,级数展开,有限差分,矩阵,理解表达式树等等,感兴趣可以去查一查,这里没有需求就暂时不放上去了。

溜了。

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值