2017-08-28 15 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)がこれらの数値近似の1つに単純に変換されていないという事実は、simplify(acos(cos(1)))のようなものがであり、0.99999999ではないことを保証するので、SymPyの機能の1つです。

もちろん、実際に数値表現が必要な目的があります。このケースでは、例えば、SymPy式やSymPyから関数Nのクラス機能nを使用することができます。

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

ありがとうございました。機能Nは私の問題を解決しました。 –

関連する問題