2017-08-28 87 views
0

我最近开始学习IPython。 Sympy库有问题。它只打印功能而不是确切的值。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)的确切值。

回答

2

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

这就是说,当然有目的,你真的需要一个数字表示。在这种情况下,你可以使用类函数SymPy表达式或从SymPy功能Nn,例如:

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

太谢谢你了。函数N解决了我的问题。 –

相关问题