2017-05-26 10 views
-1

私は、微分などの計算にSympyを使用しています。私は"e**x + x + 1"の導関数を計算しようとしましたが、結果としてe**x*log(e) + 1を返しますが、私が知る限り正しい結果はe**x + 1であるはずです。何が起きてる?Sympyはlog(e)で微分を出力します。

全コード:

from sympy import * 
from sympy.parsing.sympy_parser import parse_expr 

x = symbols("x") 
_fOfX = "e**x + x + 1" 
sympyFunction = parse_expr(_fOfX) 
dSeconda = diff(sympyFunction,x,1) 
print(dSeconda) 
+0

'log'が自然対数の底である場合、答えは同じではありませんか? – ikkuh

+1

'log(e)' == 1だから、答えは正しいです。単に –

+1

btwと書かれていないと 'e ** x'の代わりに' exp(x) 'を使うことはできませんか? –

答えて

1

あなたが何であるか "e" の指定はありませんので、答えは正しくログ(e)を含んでいます。それは単に "a"や "b"のような手紙です。

オイラーの数2.71828 ...は、SymPyでEとして表されます。しかし、普通は、exp(x)と書くことが好ましい。なぜなら表記は明白であり、SymPyはexp(x)をとにかく返すからである。例:

>>> fx = E**x + x + 1 
>>> diff(fx, x, 1) 
exp(x) + 1 

やEXP表記で:文字列を解析して式を作成

>>> fx = exp(x) + x + 1 
>>> diff(fx, x, 1) 
exp(x) + 1 

は避け、あなたが本当にする必要があり、あなたがそれを必要とする理由を知っている場合を除きます。

+0

実際に私はEがsympyのe定数を意味していることを知りませんでしたが、実際にsympyのドキュメントではmpathをインポートし、e定数の定義を使用するように指示しています。 – Steve

+0

sympyの数学定数をgoogleに入力するだけです:http://docs.sympy.org/0.7.6/modules/mpmath/functions/constants.html – Steve

+0

それほど顕著ではありませんが、現在のSymPy [ここ] (http://docs.sympy.org/latest/modules/core.html#exp1)。残念ながら、Googleの検索ではこのページには至りません。 – FTP

関連する問題