【python数据建模】Sympy库

2023-10-07 01:45
文章标签 python 数据 建模 sympy

本文主要是介绍【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库的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/155278

相关文章

使用python生成固定格式序号的方法详解

《使用python生成固定格式序号的方法详解》这篇文章主要为大家详细介绍了如何使用python生成固定格式序号,文中的示例代码讲解详细,具有一定的借鉴价值,有需要的小伙伴可以参考一下... 目录生成结果验证完整生成代码扩展说明1. 保存到文本文件2. 转换为jsON格式3. 处理特殊序号格式(如带圈数字)4

Python版本信息获取方法详解与实战

《Python版本信息获取方法详解与实战》在Python开发中,获取Python版本号是调试、兼容性检查和版本控制的重要基础操作,本文详细介绍了如何使用sys和platform模块获取Python的主... 目录1. python版本号获取基础2. 使用sys模块获取版本信息2.1 sys模块概述2.1.1

一文详解Python如何开发游戏

《一文详解Python如何开发游戏》Python是一种非常流行的编程语言,也可以用来开发游戏模组,:本文主要介绍Python如何开发游戏的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下... 目录一、python简介二、Python 开发 2D 游戏的优劣势优势缺点三、Python 开发 3D

Python函数作用域与闭包举例深度解析

《Python函数作用域与闭包举例深度解析》Python函数的作用域规则和闭包是编程中的关键概念,它们决定了变量的访问和生命周期,:本文主要介绍Python函数作用域与闭包的相关资料,文中通过代码... 目录1. 基础作用域访问示例1:访问全局变量示例2:访问外层函数变量2. 闭包基础示例3:简单闭包示例4

Python实现字典转字符串的五种方法

《Python实现字典转字符串的五种方法》本文介绍了在Python中如何将字典数据结构转换为字符串格式的多种方法,首先可以通过内置的str()函数进行简单转换;其次利用ison.dumps()函数能够... 目录1、使用json模块的dumps方法:2、使用str方法:3、使用循环和字符串拼接:4、使用字符

Python版本与package版本兼容性检查方法总结

《Python版本与package版本兼容性检查方法总结》:本文主要介绍Python版本与package版本兼容性检查方法的相关资料,文中提供四种检查方法,分别是pip查询、conda管理、PyP... 目录引言为什么会出现兼容性问题方法一:用 pip 官方命令查询可用版本方法二:conda 管理包环境方法

Linux下利用select实现串口数据读取过程

《Linux下利用select实现串口数据读取过程》文章介绍Linux中使用select、poll或epoll实现串口数据读取,通过I/O多路复用机制在数据到达时触发读取,避免持续轮询,示例代码展示设... 目录示例代码(使用select实现)代码解释总结在 linux 系统里,我们可以借助 select、

基于Python开发Windows自动更新控制工具

《基于Python开发Windows自动更新控制工具》在当今数字化时代,操作系统更新已成为计算机维护的重要组成部分,本文介绍一款基于Python和PyQt5的Windows自动更新控制工具,有需要的可... 目录设计原理与技术实现系统架构概述数学建模工具界面完整代码实现技术深度分析多层级控制理论服务层控制注

pycharm跑python项目易出错的问题总结

《pycharm跑python项目易出错的问题总结》:本文主要介绍pycharm跑python项目易出错问题的相关资料,当你在PyCharm中运行Python程序时遇到报错,可以按照以下步骤进行排... 1. 一定不要在pycharm终端里面创建环境安装别人的项目子模块等,有可能出现的问题就是你不报错都安装

Python打包成exe常用的四种方法小结

《Python打包成exe常用的四种方法小结》本文主要介绍了Python打包成exe常用的四种方法,包括PyInstaller、cx_Freeze、Py2exe、Nuitka,文中通过示例代码介绍的非... 目录一.PyInstaller11.安装:2. PyInstaller常用参数下面是pyinstal