无论您是大学生还是从事数据科学工作,都无法绕过数学。
甚至有人可能会争辩说,数据科学是一种应用数学/统计学。 NumPy,SciPy, Scikit学习及 TensorFlow 只是一些定量处理数学的 Python 库。
但是,只有一个竞争对手可以明确处理数学符号:SymPy。
让我们了解有关 SymPy 的所有信息。
什么是 象征?
SymPy 是一个 Python 符号数学库。 它渴望成为一个功能齐全的计算机代数系统 (CAS),同时保持代码尽可能基本易于理解和易于扩展。
它完全用 Python 编写。 它使用简单,因为它只依赖于 mpmath,这是一个用于任意浮点运算的纯 Python 库。
作为一个库,它的创建非常重视可用性。 可扩展性在其应用程序接口 (API) 的设计中至关重要。
因此,它没有尝试增强 Python 语言。 目标是让用户能够与其他人一起使用它 Python库 在他们的工作流程中,无论是在交互式环境中还是作为更大系统的程序组件。
SymPy,作为一个库,缺乏一个内置的图形 用户界面 (图形用户界面)。 图书馆是:
- 免费,包括语音和啤酒,因为它是根据 BSD 许可证授权的。
- 基于Python:完全用Python开发,使用Python作为语言。
- 轻量级,因为它只依赖 mpmath,一个纯粹的 Python 库 用于任意浮点运算,使其易于使用。
- 除了用作交互式工具外,还可以合并到其他程序中并使用自定义功能进行修改。
为什么使用 SymPy?
Sage 是一种计算机代数系统,它也使用 Python 作为其编程语言。 另一方面,Sage 非常庞大,需要下载超过 XNUMX GB。 它的优点是重量轻。
除了紧凑之外,它除了 Python 之外没有其他依赖项,因此几乎可以在任何地方使用。
此外,Sage 和 SymPy 的目标并不相同。 Sage 渴望成为一个功能齐全的数学系统,它通过将所有主要的开源数学系统合二为一来实现这一目标。
当您使用 Sage 函数(例如集成)时,它会调用它包含的开源包之一。 实际上,它是内置在 Sage 中的。 另一方面,SymPy 渴望成为一个独立的系统,所有功能都在其内部实现。
它作为图书馆的功能是一个重要特征。 许多计算机代数系统旨在用于交互式环境,但它们难以自动化或扩展。
它可以在 Python 中以交互方式使用,也可以导入到您自己的 Python 程序中。 它还具有 API,可以使用您自己的例程轻松扩展它。
安装 SymPy
只需使用以下命令在您的环境中安装。
SymPy 符号
让我们现在就开始吧! 它的基本对象是一个符号。 在 SymPy 中,您可以通过以下方式生成符号 x:
上面的代码生成符号 x。 其中的符号旨在模拟表示未知值的数学符号。
因此,以下计算如下所示:
如上所示,符号 x 的功能类似于未知量。 如果您想制作许多符号,请按如下方式编写:
在本例中,您同时创建了两个符号 y 和 z。 现在可以根据需要对这些符号进行加、减、乘和除:
SymPy 函数
1. sympify() 函数
sympify() 方法将任意表达式转换为 SymPy 表达式。 它转换标准 Python 对象,例如整数。
字符串被转换为它们的表达式以及整数等。
2. evalf() 函数
此函数以最高 100 位的浮点精度计算指定的数值表达式。
该函数还接受带有符号数值的字典对象作为 subs 参数。 考虑以下短语:
浮点精度默认设置为 15 位。 但是,这可以更改为 1 到 100 之间的任何数字。
以下等式的计算精度为 20 位。
3. Lambdify() 函数
Lambdify 是一个将其表达式转换为 Python 函数的函数。 evalf() 方法在对广泛值范围内的表达式求值时效率低下。
Lambdify 的工作方式类似于 lambda 函数,不同之处在于它将 SymPy 名称转换为提供的数字库的名称,通常是 NumPy。
默认情况下,Lambdify 应用于数学标准库实现。
特征
此处列出了该库的一些最重要的功能; 还有很多不包括在内,但您可以查看它们 此处.
一、核心能力
- 基本算术:支持 +、-、*、/ 和 ** 运算符(幂)
- 多项式展开
- 具有任意精度的整数、有理数和浮点数
- 三角函数、双曲函数和指数函数、根、对数、绝对值、球谐函数、阶乘和伽马函数、zeta 函数、多项式和特殊函数
- 不可交换的符号
- 匹配模式
2. 微积分
- 集成:此方法采用扩展的 Risch-Norman 启发式
- 分化。
- 限制功能
- 劳伦特泰勒系列
3.多项式
- 格罗布纳基金会
- 部分分数的分解
- 除法,gcd 结果是基本算术的例子。
4. 组合学
- 置换
- 格雷码和普鲁弗码
- 组合、分区、子集
- 多面体、魔方、对称和其他排列组
5.离散数学
- 求和
- 逻辑表达式
- 二项式系数
- 数论
应用领域
1. 建筑计算器
2. 计算机代数系统
与其他计算机代数系统不同,您必须使用 Symbol() 函数在其中手动声明符号变量。
3. 微积分
符号计算系统以符号方式进行各种计算的能力是其主要优势。
它可以简化语句,象征性地计算导数、积分和极限,求解方程,与矩阵交互,以及做更多的事情。
为了激发您的食欲,这里有象征性力量的味道。
你还能用 SymPy 做什么?
与其喋喋不休地深入探讨其他问题,让我为您提供一份资源列表,以帮助您提高技能:
- 矩阵和线性代数: 它可以处理矩阵并执行基本的线性代数运算。 该语言类似于 NumPy 的语法。 但是,存在显着差异。 首先,调查 矩阵 在图书馆。
- 表达式: 它利用表达式树(一种基于树的结构)来跟踪表达式。 看着 表达树 如果你想更多地了解他们的内部运作。
- 导数和积分: 它可以完成您在微积分入门课程中学到的大部分内容(减去思考)。 您可以从查看我们的功能开始 区别 在 SymPy 中。
- 与 NumPy 的关系: NumPy 和 SymPy 都是与数学相关的库。 然而,它们本质上是不同的! NumPy 处理数字,而它处理符号表达式。
- 简化: 它足够智能,可以自动简化表达式。 但是,如果您想对此进行更细粒度的控制,请查看其 简化.
结论
SymPy 是一个强大的符号数学库。
您可以使用它来创建变量和函数,以及象征性地扩展和简化数学语句并求解方程、不等式,甚至方程/不等式系统。
您可以在脚本文本中和直接在终端中编写函数(或 Jupyter笔记本) 以获得快速评估和对已完成计算的更好的图形描述。
您准备好探索更多 SymPy 了吗? 让我们在评论中知道。
发表评论