📜  SymPy-符号计算(1)

📅  最后修改于: 2023-12-03 14:47:49.605000             🧑  作者: Mango

SymPy-符号计算

SymPy是一个用Python语言开发的符号计算库。它旨在成为一个能够进行基本数学运算、解方程、微积分、离散数学、构建方程、线性代数和更多领域内计算的完整计算机代数系统,并将提供高效性和准确性。

特性
  • 表达式化简和展开
  • 方程求解
  • 符号微积分
  • 离散数学
  • 构建代数式
  • 线性代数
  • 处理各种类型的函数
  • 支持利用LaTeX进行可视化
安装

SymPy是Python的一个库,因此您可以通过pip安装它:

pip install sympy
使用

要使用SymPy,请首先导入它。

import sympy
符号

SymPy与其他Python程序相似,它依赖于一些变量。符号变量就像Python的变量,但是在SymPy中,它们是符号。这种符号变量可以使用符号函数来创建。例如,要创建一个名为'x'的符号变量,请键入:

x = sympy.Symbol('x')

现在我们可以使用x变量代替x,并进行各种数学计算。例如,要计算x ** 2的值:

>>> x ** 2
x**2

计算sin(x)值:

>>> sympy.sin(x)
sin(x)
表达式化简和展开

表达式化简是SymPy中的一个常见操作。为了简化表达式,您可以使用simplify函数。

>>> sympy.simplify((x ** 2 + x ** 3) / x ** 2)
1 + x

展开函数expand将乘积或其他符号通过展开展开。

>>> sympy.expand((x + 1) ** 2)
x**2 + 2*x + 1
方程求解

SymPy可以解决多种类型的方程。例如,要解决2x + 1 = 0的方程,请键入:

>>> sympy.solve(2 * x + 1)
[-1/2]

该函数返回一个解决方案的数组。

如果您有两个未知数,则可以将它们传递给符号函数:

x, y = sympy.symbols('x y')
sympy.solve([x + y - 9, x - y - 3], [x, y])
符号微积分

SymPy还支持符号微积分。要计算x ^ 2的导数:

>>> sympy.diff(x ** 2, x)
2 * x

积分可以通过integrate函数完成。例如,要计算x ^ 2的积分:

>>> sympy.integrate(x ** 2, x)
x**3/3
离散数学

SymPy是一个强大的离散数学工具,支持排列和组合的计算。

要计算排列数,请输入:

>>> sympy.functions.combinatorial.numbers.nP(4, 2)
12

要计算组合数,请输入:

>>> sympy.functions.combinatorial.numbers.nC(4, 2)
6
构建代数式

SymPy可以用于构建代数式。要创建一个多项式,请键入:

>>> p = sympy.Poly(x ** 3 - 4 * x ** 2 + 3 * x, x)
>>> p
Poly(x**3 - 4*x**2 + 3*x, x, domain='ZZ')

SymPy带有各种工具,可以分解、相乘和因式分解代数式。

线性代数

SymPy还包括用于线性代数的各种工具。例如,您可以使用矩阵类Matrix来表示矩阵,并使用它们进行各种计算。

>>> A = sympy.Matrix([[1, 2], [2, 2]])
>>> A
Matrix([
[1, 2],
[2, 2]])
>>> b = sympy.Matrix([1, 2])
>>> b
Matrix([
[1],
[2]])
>>> A.solve(b)
Matrix([
[-2],
[3/2]])
利用LaTeX进行可视化

SymPy支持将符号表达式转换为LaTeX格式。要将x ^ 2 + x的LaTeX表示形式打印到控制台,请输入:

>>> sympy.latex(x ** 2 + x)
'x^{2} + x'

与SymPy结合使用的另一种流行方法是Jupyter Notebook。Jupyter Notebook支持内联LaTeX,使您可以在写符号公式时获得您可以立即可视化的反馈。

结论

在这篇文章中,我们介绍了SymPy库,这是一个Python中的符号计算库。我们讨论了SymPy库的主要功能,包括符号、表达式化简和展开、方程求解、符号微积分、离散数学、构建代数式、线性代数和LaTeX可视化。