2017-08-28 77 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解決了我的問題。 –

相關問題