2016-07-27 4 views
2

私はメイプルでの絶対的な初心者ですし、次のように理解するために問題を抱えている:diffで関数を定義するときに、なぜ私はmapleでunapply演算子を使う必要がありますか?

次は動作しません:

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

df_wrong(1);ので、常に(df_wrongで)次の「エラーに、無効な入力が得られます。 diffは1を受け取りましたが、それは2番目の引数 "には無効です。しばらくすると、次のように解決されることがわかりました。

df_correct(1);以降です。誰も私に何か問題を教えてもらえますかdf_wrongとおそらくunapply()がこれらを解決していますか?

私はunapply()のメープルの説明をチェックしましたが、それはどういうわけかまだ私にはあまり明らかではありません。

ありがとうございます!

+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 -> ...とは対照的です。

関連する問題