本文主要是介绍【python数据建模】Sympy库,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
概述
Sympy库是进行符号运算的库。
与Scipy库的数值运算不同,Sympy的运算是在推理基础上进行的,不用考虑误差问题。
例如,在Scipy库中, 7 \sqrt7 7计算中使用的是近似值,但是Sympy中, 7 \sqrt7 7是以sqrt(7)
的形式显示的。
符号类 Symbol
Symbol 是 symPy 库中最重要的类。 如前所述,符号计算是用符号完成的。 SymPy 变量是 Symbols 类的对象。
Symbol() 函数的参数是一个包含可以分配给变量的符号的字符串。
例如:
from sympy import Symbol
x=Symbol('x')
y=Symbol('y')
expr=x**2+y**2
print(expr)
"""
x**2 + y**2
"""
当然,也可以类似列表传输数据。在一个语句中定义多个符号变量。
abc模块
Sympy中的abc模块中,所有拉丁字母和希腊字母都被定义为符号。 引用该模块,可以不用实例化符号对象,提供方便。
例如:
from sympy.abc import x,y,z
print(x)
索引定义字符
可以使用类似于 range() 函数的语法来定义索引符号。 范围用冒号表示。 范围类型由冒号右侧的字符确定。
例如:
from sympy import symbols
x=symbols('a:5')
"""
(a0, a1, a2, a3, a4)
"""
Sympy表达式的转换
evalf()& lambdaify()转换成python函数进行数值计算
转换成sympy表达式 sympify()
sympify() 函数用于转换任意表达式,使其可以用作 SymPy 表达式。 在 SymPy 中转换普通的 Python 对象,例如整数对象。 整数等,字符串也被转换为 SymPy 表达式。
import sympy as sy
from sympy.abc import x
expr="x**2+3*x+2"
expr1=sy.sympify(expr)
"""
x**2 + 3*x + 2
"""
simplify&expand
simplify()函数简化sympy表达式。
expand()函数可以进行多项式展开。
例如:
from sympy import *
x=Symbol('x')
expr=sin(x)**2 + cos(x)**2
print(simplify(expr))
"""
1
"""
积分
integrate()
用于计算定积分和不定积分。定积分的计算只需传递参数
from sympy import *
x,y = symbols('x y')
expr=x**2 + x + 1
print(integrate(expr, x))
"""
x**3/3 + x**2/2 + x
"""
print(integrate(expr, (x,1)))
"""
11/6
"""
积分变换
sympy.integrals.transforms 模块中定义了许多积分变换。
常用的是Laplace变换和傅里叶变换,对应的函数是:laplace_transform和fourier_transform
求方程
由于符号 = 和 == 在 Python 中被定义为赋值和相等运算符,因此它们不能用于制定符号方程。 SymPy 提供了 Eq() 函数来建立方程。
import sympy as sy
from sympy.abc import x,y
f=sy.Eq(x**2+y**2,4)
"""
建立了方程x^2+y^2=4
"""
代数方程 solveset()
solveset 的输出是解决方案的有限集。 如果没有解决方案,则返回 EmptySet
import sympy as sy
from sympy.abc import x
# solveset(f, symbol, domain=S.Complexes)
# domain:解的数域,默认在复数域上
f=sy.Eq(x**2+2*x+1,4)
print(sy.solveset(f,symbol=x))
"""
{-3, 1}
"""
f=sy.Eq(x**2,-1)
print(sy.solveset(f,symbol=x))
"""
{-I, I}
"""
线性方程 linsolve()
非线性方程 linsolve()
微分方程 dsolve()
打印输出Latex形式
latex()函数获得sympy表达式的latex形式,方便在latex编辑器中阅读。
例如:
import sympy as sy
from sympy.abc import x
print(sy.latex(sy.sqrt(x**2)))
"""
\sqrt{x^{2}}
"""
这篇关于【python数据建模】Sympy库的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!