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 /

Anwenden von TransformationsregelnErstellen von Definitionen

2.4.2 Sätze von Transformationsregeln manipulieren

Sie können Listen mit Transformationsregeln in Mathematica genauso wie andere symbolische Ausdrücke manipulieren. Es ist üblich, einer Regel oder einem Satz von Regeln einen Namen zuzuweisen.

Dies gibt der trigonometrischen Entwicklungsregel den „Namen" sinexp.

In[1]:= sinexp = Sin[2 x_] -> 2 Sin[x] Cos[x]

Out[1]=

Sie können die Regel jetzt „mit Namen" aufrufen.

In[2]:= Sin[2 (1 + x)^2] /. sinexp

Out[2]=

Mit Regellisten können Sie mathematische oder andere Beziehungen darstellen. Normalerweise werden Sie es vorteilhaft finden, den Listen Namen zu geben, damit Sie in einem bestimmten Fall auf die gewünschte Liste leicht zugreifen können.

In den meisten Situationen ist es nur eine Regel aus einer gegebenen Liste, die tatsächlich auf einen bestimmten Ausdruck anwendbar ist. Trotzdem testet der Operator /. jede der Regeln in der Liste der Reihe nach. Ist diese Liste sehr lang, so kann dieser Prozeß zeitaufwendig sein.

Mit Mathematica können Sie Regellisten so vorverarbeiten, daß /. schneller auf ihnen operieren kann. Sie können eine beliebige Regelliste nehmen und die Funktion Dispatch auf sie anwenden. Das Ergebnis ist eine Darstellung der Originalliste der Regeln, die aber Dispatch-Tabellen enthält, welche es /. ermöglichen, potentiell anwendbare Regeln sofort „abzufertigen" und nicht erst alle Regeln der Reihe nach durchtesten zu müssen.

Hier ist eine Regelliste für die ersten fünf Fakultäten.

In[3]:= facs = Table[f[i] -> i!, {i, 5}]

Out[3]=

Dadurch werden Dispatch-Tabellen aufgestellt, die die Benutzung der Regeln beträchtlich beschleunigen.

In[4]:= dfacs = Dispatch[facs]

Out[4]=

Die Regeln können mit Hilfe des Operators /. angewendet werden.

In[5]:= f[4] /. dfacs

Out[5]=

Erzeugen und Benutzen von Dispatch-Tabellen

Sie werden feststellen, daß bei langen Regellisten das Anlegen von Dispatch-Tabellen die Ersetzungsoperationen viel schneller macht. Dies trifft insbesondere dann zu, wenn Ihre Regeln für individuelle Symbole oder andere Ausdrücke gedacht sind, die keine Muster-Objekte enthalten. Haben Sie in solchen Fällen erst einmal Dispatch-Tabellen angelegt, werden Sie bemerken, daß die Zeit, die der Operator /. beansprucht, mehr oder weniger unabhängig von der Anzahl Ihrer Regeln ist. Ohne Dispatch-Tabellen benötigt /. jedoch eine Zeit, die direkt proportional zur Gesamtanzahl der Regeln ist.

Anwenden von TransformationsregelnErstellen von Definitionen