如何在 Sympy 中评估代数表达式?
SymPy 是一个符号数学Python包。它的目标是发展成为一个功能齐全的计算机代数系统,同时保持代码尽可能基本,使其易于理解和扩展。代数表达式是使用加法、减法、除法、乘法、模数等运算组合而成的表达式或语句。例如 10x+2 等……让我们通过几个例子来演示如何在 sympy 中评估代数表达式。来自 sympy 的 evalf()函数和 subs()函数用于计算代数表达式。
示例 1:
在这个例子中,我们从 sympy 包中导入符号。创建一个表达式并使用 evalf()函数对表达式求值。 subs 是函数中的一个参数,我们在其中传入一个符号映射到值的字典。在 sympy float 中,默认情况下精度最高为 15 位。精度最多可以覆盖 100 位。
Python3
# import packages
from sympy.abc import x, y ,z
# creating an expression
expression = 4*x+5*y+6*z
# evaluating the expression
print(expression.evalf(subs={x:1,y:2,z:3}))
Python3
# import packages
from sympy.abc import x, y ,z
# creating an expression
expression = 4*x+5*y+6*z
# evaluating the expression
print(expression.evalf(3,subs={x:1,y:2,z:3}))
Python3
# import packages
from sympy.abc import *
from sympy import pi
# finding the circumference of a circle
expression = 2*pi*r
# evaluating the expression
print(expression.evalf(10,subs={r:2}))
Python3
# import packages
from sympy.abc import *
# creating an expression
expression = 2**x - 4*y + z
# substituting values in the expression
print(expression.subs([(x, 4), (y, 2), (z, 1)]))
输出:
32.0000000000000
在此代码中,精度设置为 3 位。
Python3
# import packages
from sympy.abc import x, y ,z
# creating an expression
expression = 4*x+5*y+6*z
# evaluating the expression
print(expression.evalf(3,subs={x:1,y:2,z:3}))
输出:
32.0
示例 2:
sympy 还具有像 pi 这样的内置值,它可以帮助我们解决数值问题,例如求圆的周长等……。在此示例中,精度设置为 10 位。
Python3
# import packages
from sympy.abc import *
from sympy import pi
# finding the circumference of a circle
expression = 2*pi*r
# evaluating the expression
print(expression.evalf(10,subs={r:2}))
输出:
12.56637061
示例 3:
在此示例中,我们使用 subs()函数将符号替换为值,并计算给定的代数表达式。 2**4 -4*2 +1 == 16-8+1 ==9。
Python3
# import packages
from sympy.abc import *
# creating an expression
expression = 2**x - 4*y + z
# substituting values in the expression
print(expression.subs([(x, 4), (y, 2), (z, 1)]))
输出:
9