Mathematica bietet auch eine Reihe von High-Level-Funktionen zur Manipulation von Algebraisch. Unter diesen sind Expand
, Apart
und Together
und Cancel
, obwohl es noch einige mehr gibt.
Auch für Ihr spezielles Beispiel für die gleiche Transformation auf beiden Seiten einer Anwendung der Gleichung (das heißt, und die Expression mit dem Kopf Equal
), können Sie die Thread
Funktion verwenden, die genau wie Ihre MultBothSides
Funktion funktioniert, aber mit viel mehr Allgemeingültigkeit.
In[1]:= expression = 2 a == a b
Out[1]:= 2 a == a b
In[2]:= Thread[expression /a, Equal]
Out[2]:= 2 == b
In[3]:= Thread[expression - c, Equal]
Out[3]:= 2 a - c == a b - c
In jedem der vorgestellten Lösungen, sollte es relativ einfach sein, zu sehen, was der Schritt mit sich gebracht. Wenn Sie etwas ein wenig expliziter möchten, können Sie Ihre eigene Funktion wie so schreiben:
In[4]:= ApplyToBothSides[f_, eq_Equal] := Map[f, eq]
In[5]:= ApplyToBothSides[4 * #&, expression]
Out[5]:= 8 a == 4 a b
Es ist eine Verallgemeinerung Ihrer MultBothSides
Funktion, die sich die Tatsache zunutze nimmt, dass Map
Arbeiten auf Ausdrücke mit jedem Kopf, nicht nur Kopf List
. Wenn Sie versuchen, mit einem Publikum zu kommunizieren, das mit Mathematica nicht vertraut ist, kann die Verwendung dieser Art von Namen Ihnen helfen, klarer zu kommunizieren. Wenn Sie Ersatzregeln verwenden möchten, wie von Ira Baxter vorgeschlagen, kann es hilfreich sein, anstelle von /.
syntaktischen Zucker auf Replace oder ReplaceAll zu schreiben.
In[6]:= ReplaceAll[expression, a -> (x + y)]
Out[6]:= 2 (x + y) == b (x + y)
Wenn Sie denken, es klarer sein würde, die tatsächlichen Gleichung zu haben, anstatt der Variablennamen expression
, in Ihrem Eingang, und Sie sind mit dem Notebook-Schnittstelle, markieren Sie das Wort expression
mit der Maus aufrufen das Kontextmenü und wählen Sie "In Place auswerten".
Das Notebook-Interface ist auch eine sehr angenehme Umgebung für "latete Programmierung", so dass Sie auch alle Schritte erklären können, die nicht sofort in Worte zu fassen sind. Ich glaube, dass dies eine gute Übung ist, wenn mathematische Beweise unabhängig vom Medium geschrieben werden.
Sorry, ich bin ein paar Jahre zu spät ... aber das kleine Paket, das ich hier erwähne http://Stackoverflow.com/q/5701159/667867 sollte tun, was Sie wollen. Lesen Sie die Frage und die Diskussion für Vorbehalte! – telefunkenvf14