2016-07-27 16 views
2

Ich bin ein absoluter Anfänger in Ahorn und haben Probleme folgendes zu verstehen:warum muss ich den unapply-operator in maple verwenden, wenn ich eine funktion durch diff definiere?

Die folgende funktioniert nicht:

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

Da df_wrong(1); immer ergibt die folgende „Error, (in df_wrong) ungültige Eingabe: diff empfangen 1, was nicht für das 2. Argument gilt ". Nach einiger Zeit fand ich, dass die folgenden dies löst:

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

Seit df_correct(1);. Könnte mir jemand erklären, was ist das Problem das Problem bei der Verwendung df_wrong und vielleicht warum unapply() löst diese?

Ich habe die Maple Erklärung von unapply() überprüft, aber es ist irgendwie immer noch nicht sehr klar für mich.

Vielen Dank im Voraus!

+1

Sie könnten auch den Differentialoperator 'D' verwenden. ZB nach 'f: = (x) -> x^2;' execute 'D (f);'. – acer

+0

@acer: noch besser - danke! – DonkeyKong

Antwort

2

In Ihrer falschen Version verwendet Ihre Funktion x als Funktionsoperator. Wenn Sie 1 eingeben, wird df_wrong(1) als diff(f(1),1) geparst, was Unsinn ist: Sie können wrt nicht unterscheiden. eine Konstante.

Das schöne an der unapply Funktional ist, dass es einen funktionalen Operator zurückgibt. Das heißt, Sie können die Dinge manipulieren und dann verwenden Sie es als Operator. Dies steht im Gegensatz zu dem Operator Assign-Befehl x -> ..., der x zu einem Operator der gesamten rechten Seite macht.