2017-05-31 40 views
1

DIFF衍生物函數多項式但差異有效(的sin(x)中,x)給出的錯誤消息。 當我從代碼中移除「from math import *」時,diff(sin(x),x)就起作用了。爲什麼?什麼「數學」崩潰與trig函數的象徵性分化?限定通過sympy

+3

確保的Sympy功能,如'diff'參數是Sympy對象。特別是,「sin」應該是罪的* Sympy版本*,即正確的用法是'sympy.diff(sympy.sin(x))'。爲避免此類問題,最好不要使用'import *'導入模塊。 – Stelios

+0

謝謝!尚未理解sympy版本的罪與數學版罪的區別。但知道有不同有助於理解這次崩潰。 –

回答

2

SymPy功能都只能在SymPy職能的工作。

math模塊中的函數是數字函數。他們只知道如何使用數字參數(浮點數或整數)。如果你給他們一個像x這樣的象徵性表達,他們將不知道該怎麼做。這是因爲只有SymPy函數知道如何保持未評估。

這是建議不使用import *除非你是交互工作,即使如此,從最多一個模塊做。 SymPy功能和表達不帶數字功能從像mathnumpy模塊混合。

相反,你可以運行

import sympy as sym 

,並使用sym.sin等。

另外,一般情況下,使用SymPy時根本不需要使用math模塊,因爲在math模塊中實現的所有內容都在SymPy中實現。