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

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

SymPy是一个符号数学Python包。它的目标是发展成为一个完全有特色的计算机代数系统,同时尽可能地保持代码的基本性,使其可以理解和扩展。代数表达式是一个使用加法、减法、除法、乘法、模数等运算组合起来的表达式或语句……例如10x+2等。 让我们通过几个例子来演示如何在sympy中评估代数表达式。sympy中的evalf()函数和subs()函数是用来评估代数表达式。

示例 1:

在这个例子中,我们从sympy包中导入符号。一个表达式被创建,evalf()函数被用来评估这个表达式。subs是函数中的一个参数,我们在这里传入一个符号映射到数值的字典。在sympy float中,默认精度为15位。

# 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}))

输出:

32.0000000000000

在这个代码中,精度被设置为3位数。

# 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也有内置的数值,如π,它可以帮助我们解决数字问题,如寻找圆的周长等……在这个例子中精度被设置为10位。

# 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()函数用数值替代符号,它评估了所给的代数表达式。24 -4*2 +1 == 16-8+1 ==9.

# 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

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程