SymPy打印函数名称而不是其值

时间:2017-08-28 13:54:10

标签: python sympy

我最近开始学习IPython。我有Sympy库的问题。它只打印函数而不是精确值。

import matplotlib.pyplot as plt
import numpy as nm
from sympy import *

x,y = symbols("x y")

expr = cos(x)
a = expr.subs(x,1)
print(a)

上述程序的输出为cos(1)。但我想打印cos(1)的确切值。

1 个答案:

答案 0 :(得分:2)

首先,一些挑剔:“cos(1)”是表示cos(1)精确值的最简洁方法。诸如“0.54”,“0.540302”或“0.54030230587”的数字表示不精确,但仅在相应的位数内精确。 cos(1)不是简单地转换为其中一个数字近似值的事实是SymPy的一个特性,因为它可以确保simplify(acos(cos(1)))之类的内容实际上产生1而不是0.99999999 }。

话虽如此,当然有一些你需要数字表示的目的。在这种情况下,您可以使用SymPy表达式的类函数n或SymPy中的函数N,例如:

from sympy import cos, N
expr = cos(1)
print(expr.n())     # 0.540302305868140
print(N(expr))      # 0.540302305868140