2013-02-15 51 views
1

我想寫一個Mathematica函數,它將一個表達式作爲參數,採用該表達式的派生,然後對錶達式做一些操作。所以(如玩具爲例)我想寫函數中的導數

F[f_] = D[f, x] * 2 

使

F[x^2] = 4x 

相反,我得到

F[x^2] = 0 

有人能指出我相關的文檔?我花了一些時間來討論Mathematica的參考資料,但沒有發現任何有用的信息。

回答

4

當您的意思是使用延遲分配:=時,您已使用分配=。當您使用(未延遲)賦值評估F[f_]=D[f,x]*2時,Mathematica查看D[f,x]並看到f(未分配的符號)不依賴於x;因此,它的導數爲0.因此,對於F的任何參數,這是它稍後返回的參數F[f_]=0

如果你想F到您所指定後才f_應該是什麼進行評估,則需要通過與:=更換=使用延遲分配。

+0

啊哈!所以:=正是我想要的;我不明白這個區別。謝謝! – 2013-02-15 23:06:23