python:符号计算-sympy

本文介绍了Python中的Sympy库用于符号计算的基本操作,包括定义符号、基本代数运算、微分与积分、求解方程、矩阵运算等方面,并通过实例展示了如何使用Sympy进行解析计算。
摘要由CSDN通过智能技术生成

引入

什么是符号计算(Symbolic computation)
就是对数学表达式进行解析计算,而不是近似计算。可以简单分为两类:

  1. 不包含符号的表达式
  2. 包含符号的表达式

sympy
python中可用sympy库进行符号计算。优点:开源,轻量级。可以做的事情:算数运算,微分,积分,矩阵运算等等。

下面总结常用的应用实例。

小例子

In [14]: import sympy as sym

In [15]: import numpy as np

In [16]: sym.sqrt(8)
Out[16]: 2*sqrt(2)

In [17]: np.sqrt(8)
Out[17]: 2.8284271247461903

In [18]: sym.exp(2)
Out[18]: exp(2)

In [19]: np.exp(2)
Out[19]: 7.38905609893065

In [20]: type(sym.sqrt(8))
Out[20]: sympy.core.mul.Mul

In [21]: type(sym.exp(2))
Out[21]: exp

In [32]: a = sym.symbols('a')

In [33]: sym.sqrt(a)
Out[33]: sqrt(a)

注意:

  • sympy计算出的是解析解(精确解),numpy计算出的是近似解;
  • 该解析解的类型是sympy自定义的类型,用来表示精确解。而我们熟悉的int,float等数据类型,都是近似解。
  • 可通过sym.symbols(names)声明符号(变量),然后可对其进行任意的代数运算,比如加减乘除,平方根,指数等等。
  • 在有数学公式渲染的环境中,比如jupyter notebook中,sympy的结果会被MathJax渲染成字母形式。
    在这里插入图片描述

基本代数运算

In [38]: expr = (a+b)**2

In [39]: expr
Out[39]: (a + b)**2

In [40]: sym.expand(expr)
Out[40]: a**2 + 2*a*b + b**2

In [42]: expr1 = a**2 - 2*a*b + b**2

In [43]: sym.factor(expr1)
Out[43]: (a - b)**2

常用方法:

  • expand,展开表达式
  • factor,合并表达式中的同类项

微分和积分

计算 f ( x ) = a x 2 + b f(x)=ax^2+b f(x)=ax2+b的导数

In [45]: a,b,x = sym.symbols('a b x')

In [46]: f = a*x**2+b

In [52]: sym.diff(f,x)    #对x求1阶导数
Out[52]: 2*a*x

In [53]: sym.diff(f,x,2)    #对x求2阶导数
Out[53]: 2*a

计算不定积分: ∫ ( a x 2 + b ) d x \int (ax^2+b)dx (ax2+b)dx

In [55]: sym.integrate(f,x)   #不定积分
Out[55]: a*x**3/3 + b*x

计算定积分: ∫ a b ( a x 2 + b ) d x \int_a^b (ax^2+b)dx ab(ax2+b)dx

In [56]: sym.integrate(f,(x,-1,1))    #[-1,1]区间内的定积分
Out[56]: 2*a/3 + 2*b

极限

计算 lim ⁡ x → 0 = s i n ( x ) x \lim_{x\to0}=\frac{sin(x)}{x} limx0=xsin(x)

In [57]: x = sym.symbols('x')

In [58]: f = sym.sin(x)/x

In [59]: sym.limit(f,x,0)
Out[59]: 1

解方程

解一般方程: x 2 − 2 = 0 x^2-2=0 x22=0

In [64]: x
  • 1
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值