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 /

Definition von numerischen WertenFortgeschrittenes Thema: Wertelisten manipulieren

2.4.12 Modifizieren von eingebauten Funktionen

Mit Mathematica können Sie Transformationsregeln für jeden beliebigen Ausdruck definieren. Sie können solche Regeln nicht nur für Funktionen definieren, die Sie Mathematica hinzufügen, sondern auch für Funktionen, die bereits in Mathematica eingebaut sind. Infolgedessen können Sie die Eigenschaften von eingebauten Mathematica-Funktionen erweitern oder modifizieren.

Diese Fähigkeit ist sehr mächtig, aber potentiell gefährlich. Mathematica wird immer den Regeln folgen, die Sie dem System geben. Das bedeutet: wenn Sie die Regeln inkorrekt angeben, wird Mathematica Ihnen inkorrekte Antworten geben.

Um die mögliche versehentliche Änderung eingebauter Funktionen zu verhindern, „schützt" Mathematica alle eingebauten Funktionen vor Neudefinition. Falls Sie einer eingebauten Funktion eine Definition geben wollen, müssen Sie zuerst den Schutz aufheben. Nachdem Sie die Definition gegeben haben, sollten Sie normalerweise den Schutz wiederherstellen, um zukünftigen Fehlern vorzubeugen.

Schutz für Funktionen

Eingebaute Funktionen sind normalerweise „geschützt", so daß Sie sie nicht neu definieren können.

In[1]:= Log[7] = 2

Out[1]=

Dadurch wird der Schutz für Log entfernt.

In[2]:= Unprotect[Log]

Out[2]=

Jetzt können Sie Ihre eigenen Definitionen für Log geben. Diese spezielle Definition ist mathematisch nicht korrekt, aber Mathematica wird Ihnen doch gestatten, sie zu geben.

In[3]:= Log[7] = 2

Out[3]=

Wo es geht, wird Mathematica Ihre Definitionen verwenden, unabhängig davon, ob sie mathematisch korrekt sind oder nicht.

In[4]:= Log[7] + Log[3]

Out[4]=

Dadurch wird die inkorrekte Definition für Log entfernt.

In[5]:= Log[7] =.

Dies stellt den Schutz für Log wieder her.

In[6]:= Protect[Log]

Out[6]=

Von Ihnen gegebene Definitionen können sich über eingebaute Eigenschaften von Mathematica hinwegsetzen. Im allgemeinen versucht Mathematica, Ihre Definitionen zu verwenden, bevor es eingebaute Definitionen benutzt.

Die in Mathematica eingebauten Regeln sollen sich für das breiteste Spektrum von Berechnungen eignen. In speziellen Fällen möchten Sie vielleicht nicht das, was die eingebauten Regeln tun. In solchen Fällen können Sie Ihre eigenen Regeln geben, um die eingebauten zu unterdrücken.

Es gibt eine eingebaute Regel zur Vereinfachung von Exp[Log[ausdr]].

In[7]:= Exp[Log[y]]

Out[7]=

Sie können Ihre eigene Regel für Exp[Log[ausdr]] geben und sich damit über die eingebaute Regel hinwegsetzen.

In[8]:= (
Unprotect[Exp] ;
Exp[Log[ausdr_]] := explog[ausdr] ;
Protect[Exp] ;
)

Jetzt wird Ihre Regel statt der eingebauten verwendet.

In[9]:= Exp[Log[y]]

Out[9]=

Definition von numerischen WertenFortgeschrittenes Thema: Wertelisten manipulieren