3
我不明白,爲什麼當我設置了象徵真正diff()
似乎認爲這是一個常數:Sympy DIFF()給出了錯誤的結果,每當我設置標誌真實
>>> t = sympify("x^2")
>>> x = Symbol('x')
>>> diff(t,x)
2*x
>>> x1=Symbol('x',real=True)
>>> diff(t,x1)
0
我不明白,爲什麼當我設置了象徵真正diff()
似乎認爲這是一個常數:Sympy DIFF()給出了錯誤的結果,每當我設置標誌真實
>>> t = sympify("x^2")
>>> x = Symbol('x')
>>> diff(t,x)
2*x
>>> x1=Symbol('x',real=True)
>>> diff(t,x1)
0
問題是變量x
在t
和變量x1
是而不是認爲相同,由於x1
的「真實」屬性。因此,在區分中,x1
變量被視爲常數,產生0
。
要解決此問題,如果您打算使用實際變量,則可以使用實際變量x
來定義您的表達式。
>>> x = Symbol('x', real=True)
>>> t = sympify('x^2', locals={'x': x})
>>> diff(t, x)
2*x
不是傳遞一個明確的字典與locals
關鍵字參數,你也可以只調用locals()
與locals=locals()
在所有的整個本地符號表拉作爲一個字典,如果你有很多的符號變量可能是有用的。
我明白了,謝謝! – vroyibg
@vroyibg不客氣! – miradulo
你也可以在sympify中寫入'locals = locals()'來獲取所有局部變量,包括'x'。 – asmeurer