Ich bin auf der Suche für ein Modul oder eine Funktion zu schreiben, dass macht folgendes in Python zur Liste:einfachste Lösung zu finden Gleichheit Python
Sagen, ich habe zwei Matrizen:
left = ['2B', '1A', '2A+1B']
right = ['8C', '3C', '2D']
mag ich finde die kleinste ganze Zahlen für A, B, C und D (alle muss größer als 0 sein), so dass
left = right
in diesem Fall also haben wir:
2*B = 8*C
A = 3*C
2*A + B = 2*D
Daher
A = 3
B = 4
C = 1
D = 5
sind meine Matrizen wie oben gezeigt formatiert - sie sind Listen von Zeichenketten mit jedem Großbuchstaben benötigt für die gelöst werden.
Die Matrizen können beliebig groß sein, ich habe nur die Länge 3 als Beispiel gewählt.
Irgendwelche Ideen? Vielen Dank!
EDIT: Jemand in den Kommentaren machte einen guten Punkt. Ich denke, es gibt eine Möglichkeit, dass es zwei Lösungen gibt, eine mit A als "kleinste" und eine andere mit B als "kleinste". Aber in meinem Fall verwende ich dies als chemischen Gleichgewichtsregler, so weit ich weiß, kann das nie passieren - es sollte immer eine richtige, kleinste Lösung geben.
Wie bestimmen Sie "kleinste"? Ein System könnte leicht zwei Lösungen haben, wobei die eine ein kleineres A und die andere ein kleineres B hat. – user2357112
Related und Off Topic post [Einfachste Art, mathematische Gleichungen in Python zu lösen] (http://stackoverflow.com/q/1642357) –
werfen Sie einen Blick hier: http://docs.sympy.org/dev/modules/solvers/solvers.html. Sie müssen herausfinden, wie Sie Ihre Gleichungen in Matrixform schreiben und Solver anwenden –