Matlab / Mupad symbolische Vereinfachung für die hübsche Ausgabe

8

Ich muss einige symbolische Ausdrücke automatisch vereinfachen, aber die Funktion simplify von Matlab kann nicht alles tun, was ich brauche.

Beispiel:

%Vor%

Was zur Ausgabe

führt %Vor%

Ich habe also versucht, eigene Regeln zu erstellen, um die Ausgabe hübscher zu machen

%Vor%

mit "simplify_pretty_rules.mu"

%Vor%

Dies funktioniert für die Eingabe wie ...

%Vor%

... aber wenn geändert zu ...

%Vor%

... tut es nicht

Also ist die Frage: Ist es möglich, Regeln zu erstellen, die in (fast) allen Situationen funktionieren? Was mache ich falsch?

Bearbeiten: Dies scheint ein generelles Problem zu sein. Wenn ein Ausdruck eine Art von Faktor hat / gestört ist, scheint es für Matlab ziemlich schwer zu sein, dies herauszufinden. Ich brauche einen robusten Weg, um diese Art von Sachen zu tun, auch wenn es einige Zeit braucht, um zu verarbeiten.

Bearbeiten2:

Über welche Art von Ausdrücken rede ich?
Die Ausdrücke enthalten nur einfache mathematische Operationen (add / sub / mul / div).

Was möchte ich vereinfachen?
Eine der häufigsten Dinge, die ich vereinfachen möchte, sind Binome, die erweitert wurden (siehe die ursprüngliche Frage).

Eine weitere Gemeinsamkeit in den Ausdrücken erweiterte dot / cross-Produkte, die zu cos (a) / sin (a) -Ausdrücken vereinfacht werden könnten, die in den nächsten Schritten zusammengeführt werden könnten. Aber das ist fortgeschritten, so dass ich nicht sicher bin, ob es nützliche automatische Lösungen dafür gibt.

Was ist "hübsch" in meinem Fall?
Ich denke, am wichtigsten ist die Länge der Ausdrücke (so kürzer wie besser). Aber es wäre auch schön, Ausdrücke wie

zu optimieren %Vor%

bis

%Vor%     
Daniel 02.02.2014, 15:00
quelle

1 Antwort

4

Für mich funktioniert es, wenn Sie Ihren Regeln ein #n -Element hinzufügen, so dass Ihre simplify_pretty_rules -Datei wie folgt aussieht:

%Vor%

Ich glaube in diesem Fall bezieht sich #n auf einen konstanten Begriff. Das gibt mir:

%Vor%

So scheint es zu funktionieren.

    
MrAzzaman 07.02.2014, 02:29
quelle