2016-07-27 14 views
2

我在楓絕對初學者和有問題需要了解以下內容:爲什麼我必須在使用diff中定義函數時使用楓樹中的unapply運算符?

下不起作用:

f:=(x)->x^2; 
df_wrong:=(x)->diff(f(x),x); 

由於df_wrong(1);總是得到下面的「錯誤(在df_wrong)無效的輸入: diff收到1,這對於其第二個參數 「無效」。經過一段時間後,我發現以下解決辦法:

df_correct := unapply(diff(f(x), x), x); 

由於df_correct(1);。任何人都可以解釋我使用df_wrong問題有什麼問題,也許爲什麼unapply()解決這些問題?

我已經檢查了unapply()的Maple解釋,但它對我來說還是不太清楚。

提前致謝!

+1

你也可以使用微分算子'D'。例如,在f:=(x) - > x^2之後;'執行'D(f);'。 – acer

+0

@acer:更好 - 謝謝! – DonkeyKong

回答

2

在錯誤的版本中,您的函數使用x作爲函數操作符。當你輸入1時,df_wrong(1)被解析爲diff(f(1),1),這是無稽之談:你不能區分wrt。一個常數。

unapply函數的好處是返回一個函數操作符。這意味着你可以操作,然後將它用作操作符。這與操作員分配命令x -> ...相反,這使得x成爲整個右側的操作員。

相關問題