Dies ist nicht einfach, da die Sortierreihenfolge in Pynac definiert ist, einer Verzweigung von Ginac, die Sage für seine grundlegende symbolische Manipulation verwendet. Allerdings, je nachdem, was Sie benötigen, ist es möglich, programmatisch:
sage: F = 1 + x + x^2
sage: "+".join(map(str,sorted([f for f in F.operands()],key=lambda exp:exp.degree(x))))
'1+x+x^2'
Ich weiß nicht, ob diese Art der Sache ist mächtig genug, um für Ihre Bedürfnisse, though. Möglicherweise müssen Sie den "Ausdrucksbaum" ein wenig durchqueren, aber zumindest scheint Ihre Art von Beispiel zu funktionieren.
sage: F = a + a^2*x + x^2 - a*x^2
sage: "+".join(map(str,sorted([f for f in F.operands()],key=lambda exp:exp.degree(x))))
'a+a^2*x+-a*x^2+x^2'
tun dies in einer kurzen Erklärung erfordert eine Reihe von Python Tricks wie diese, die das Lernen sehr wert sind, wenn Sie verwenden Sage gehen (oder Numpy oder Pandas, oder ...) ein angemessene Menge.
Wirklich gute Info. Das funktioniert sehr gut, wie du sagst, aber es stellt sich heraus, dass es nicht so gut ist, es nach 'LaTeX' zu exportieren, da es Strings sind. – iipr
Entschuldigung, ich habe nicht über den LaTeX nachgedacht, guter Punkt! Obwohl man das ziemlich leicht tun könnte, indem man map (latex) anstelle von map (str, wahrscheinlich.) Verwendet. – kcrisman
Ja danke, das funktioniert besser für den Export, aber es fügt immer noch einige Zeilenumbrüche in der Form '\\' ein. Beide Lösungen sind sehr praktisch und hilfreich für das, was ich brauchte. " – iipr