📜  如何在 Sympy 中评估代数表达式?(1)

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

如何在 Sympy 中评估代数表达式?

Sympy 是一个用 Python 编写的符号数学库,旨在成为一个完整的符号数学系统。在 Sympy 中,我们可以通过定义符号变量来声明代数表达式,并再次使用这些符号变量进行运算。在这篇文章中,我们将深入探讨如何在 Sympy 中评估代数表达式。

符号变量

在 Sympy 中,我们使用 symbols() 函数来定义符号变量。该函数返回一个符号对象,该对象具有指定名称的属性。例如,要定义符号变量 xy,可以使用以下代码:

from sympy import symbols

x, y = symbols('x y')

现在我们有两个符号变量 xy,我们可以使用它们来声明代数表达式。

声明代数表达式

在 Sympy 中,我们可以使用符号变量和运算符来声明任意数量的代数表达式。例如,要声明 x + yx * y,可以使用以下代码:

from sympy import symbols

x, y = symbols('x y')

expr1 = x + y
expr2 = x * y

我们还可以使用一些常见的数学函数,例如 sin()cos()sqrt() 等来声明表达式。例如,要声明表达式 sin(x) + cos(y),可以使用以下代码:

from sympy import symbols, sin, cos

x, y = symbols('x y')

expr = sin(x) + cos(y)

以上代码将创建一个名为 expr 的符号对象,该对象表示表达式 sin(x) + cos(y)。现在我们可以使用 Sympy 中的 evalf() 函数来评估这个表达式。

评估代数表达式

Sympy 提供了几种方法来评估代数表达式,包括数值评估、符号评估和化简表达式,让我们详细看看每一种方法。

数值评估

要在 Sympy 中对代数表达式进行数值评估,我们可以使用 evalf() 函数。该函数使用浮点数来评估表达式,并返回表达式的数值结果。例如,要评估表达式 sin(pi / 2) 的数值结果,可以使用以下代码:

from sympy import symbols, pi, sin

x = symbols('x')

expr = sin(pi / 2)
result = expr.evalf()

print(result)

在这个例子中,表达式 sin(pi / 2) 的数值结果将被计算并存储在变量 result 中。这个值将被打印出来(即 1.0)。

符号评估

在 Sympy 中,我们可以使用 subs() 函数来评估符号表达式。该函数将符号变量替换为指定的值,并返回代数表达式的新符号表达式。例如,要评估表达式 x ** 2 + y,其中 x = 2 和 y = 3,可以使用以下代码:

from sympy import symbols

x, y = symbols('x y')

expr = x ** 2 + y
result = expr.subs([(x, 2), (y, 3)])

print(result)

在这个例子中,符号变量 xy 分别替换为 2 和 3。将产生新的符号表达式 2 ** 2 + 3。这个值将被打印出来(即 7)。

化简表达式

Sympy 还允许我们使用 simplify() 函数来化简表达式。该函数使用各种化简规则来简化表达式,并返回简化后的符号表达式。例如,要化简表达式 x ** 2 + 2 * x + 1,可以使用以下代码:

from sympy import symbols, simplify

x = symbols('x')

expr = x ** 2 + 2 * x + 1
result = simplify(expr)

print(result)

在这个例子中,表达式 x ** 2 + 2 * x + 1 将化简为 (x + 1) ** 2。这个值将被打印出来。

总结

在本文中,我们深入探讨了如何在 Sympy 中评估代数表达式。我们学会了如何使用符号变量来声明代数表达式,如何使用数值评估、符号评估和化简表达式来评估表达式。Sympy 提供了一组强大的工具,帮助我们在 Python 中轻松地进行符号数学操作。