This is documentation for Mathematica 4, which was
based on an earlier version of the Wolfram Language.
View current documentation (Version 11.1)

 Documentation /  Mathematica /  Das Mathematica Buch /  Die Prinzipien von Mathematica /  Transformationsregeln und Definitionen /

Definitionen für indizierte Objekte erstellenDie Reihenfolge von Definitionen

2.4.6 Definitionen für Funktionen erstellen

Abschnitt 1.7.1 erörtert, wie Sie Funktionen in Mathematica definieren können. In einem typischen Fall würden Sie f[x_] = x^2 eintippen, um eine Funktion f zu definieren. (Tatsächlich benutzten die Definitionen in Abschnitt 1.7.1 den Operator := statt des Operators =. Abschnitt 2.4.8 wird genau erklären, wann jeweils die Operatoren := und = zu benutzen sind.)

Die Definition f[x_] = x^2 legt fest, daß Mathematica, wann immer es auf einen Ausdruck trifft, der zum Muster f[x_] paßt, diesen durch x^2 ersetzen soll. Da das Muster f[x_] mit allen Ausdrücken der Form f[irgendetwas] übereinstimmt, ist die Definition auf Funktionen f mit einem beliebigen „Argument" anwendbar.

Funktionsdefinitionen wie f[x_] = x^2 können mit Definitionen wie f[a] = b für indizierte Variablen verglichen werden, die im vorangegangenen Unterabschnitt erörtert wurden. Die Definition f[a] = b legt fest, daß, wann immer der bestimmte Ausdruck f[a] auftaucht, er durch b ersetzt werden soll. Aber die Definition sagt nichts aus über Ausdrücke wie f[y], bei denen f mit einem anderen „Index" erscheint.

Um eine „Funktion" zu definieren, müssen Sie Werte für Ausdrücke der Form f[x] spezifizieren, wobei das Argument x beliebig sein kann. Dies läßt sich durch Angabe einer Definition für das Muster f[x_] erreichen, wobei das Muster-Objekt x_ für einen beliebigen Ausdruck stehen kann.

Der Unterschied zwischen der Definition einer indizierten Variablen und einer Funktion

Das Erstellen von Definitionen für f[2] oder f[a] kann man sich als die Angabe von Werten für verschiedene Elemente eines „Arrays" mit Namen f vorstellen. Das Erstellen einer Definition für f[x_] ist wie die Angabe eines Wertes für eine Menge von „Array-Elementen" mit beliebigen „Indizes". In der Tat können Sie sich eine Funktion wirklich wie ein Array mit einem beliebig variablen Index vorstellen.

Mathematisch können Sie sich f als eine Abbildung vorstellen. Wenn Sie Werte für beispielsweise f[1] und f[2] definieren, legen Sie das Bild dieser Abbildung für verschiedene diskrete Punkte in ihrem Definitionsbereich fest. Die Definition eines Wertes für f[x_] legt das Bild von f auf einem Kontinuum von Punkten fest.

Dadurch wird eine Transformationsregel für den speziellen Ausdruck f[x] definiert.

In[1]:= f[x] = u

Out[1]=

Wenn der spezielle Ausdruck f[x] auftaucht, wird er durch u ersetzt. Andere Ausdrücke der Form f[argument] werden jedoch nicht verändert.

In[2]:= f[x] + f[y]

Out[2]=

Dies definiert einen Wert für f mit einem beliebigen Ausdruck als „Argument".

In[3]:= f[x_] = x^2

Out[3]=

Die alte Definition für den speziellen Ausdruck f[x] wird weiter verwendet, doch die neue allgemeine Definition für f[x_] wird jetzt benutzt, um einen Wert für f[y] zu bestimmen.

In[4]:= f[x] + f[y]

Out[4]=

Dies entfernt alle Definitionen für f.

In[5]:= Clear[f]

Mit Mathematica können Sie Transformationsregeln für jeden Ausdruck oder jedes Muster definieren. Sie können Definitionen für spezielle Ausdrücke wie f[1] oder f[a] mit Definitionen für Muster wie f[x_] mischen.

Viele Arten von mathematischen Funktionen können angelegt werden, indem man spezielle und allgemeine Definitionen in Mathematica mischt. Betrachten Sie zum Beispiel die Fakultäts-Funktion. Diese besondere Funktion ist tatsächlich in Mathematica eingebaut (sie wird als n! geschrieben). Sie können jedoch Mathematica-Definitionen verwenden, um die Funktion selbst aufzustellen.

Die mathematische Standard-Definition für die Fakultäts-Funktion kann beinahe direkt in Mathematica eingegeben werden, und zwar in der Form: f[n_] := n f[n-1]; f[1] = 1. Diese Definition legt fest, daß f[n] für jedes n durch n f[n-1] ersetzt werden sollte. Nur wenn n den Wert 1 hat, sollte f[1] einfach durch 1 ersetzt werden.

Hier ist der Wert für die Fakultäts-Funktion mit Argument 1.

In[6]:= f[1] = 1

Out[6]=

Hier ist die allgemeine rekursive Beziehung für die Fakultäts-Funktion.

In[7]:= f[n_] := n f[n-1]

Nun können Sie mit diesen Definitionen Werte für die Fakultäts-Funktion bestimmen.

In[8]:= f[10]

Out[8]=

Die Ergebnisse sind dieselben, wie Sie sie von der eingebauten Version für die Fakultät erhalten.

In[9]:= 10!

Out[9]=

Definitionen für indizierte Objekte erstellenDie Reihenfolge von Definitionen