Я ищу для модуля или функции, чтобы написать, что делает следующее в Python:найти простое решение перечислить РАВЕНСТВО Python
Скажем, у меня есть две матрицы:
left = ['2B', '1A', '2A+1B']
right = ['8C', '3C', '2D']
Я хочу, чтобы найти наименьшее целое число, для A, B, C и D (все должно быть больше, чем 0), так что
left = right
Таким образом, в этом случае мы имеем:
2*B = 8*C
A = 3*C
2*A + B = 2*D
Поэтому
A = 3
B = 4
C = 1
D = 5
Мои матрицы отформатированы, как показано выше, - они представляют собой списки строк с каждой буквы необходимо было решить для.
Матрицы могут быть произвольного размера, я просто выбрал длину 3 в качестве примера.
Любые идеи? Благодаря!
EDIT: Кто-то в комментариях сделал хороший момент. Я предполагаю, что существует вероятность того, что есть два решения: один с «наименьшим», а другой с «наименьшим». Но в моем случае я использую это как уравнитель химического уравнения, насколько я знаю, этого никогда не может быть - всегда должно быть одно правильное, самое маленькое решение.
Как вы определяете "самые маленькие"? Система может легко иметь два решения, где один имеет меньший A, а другой имеет меньший B. – user2357112
Связанный и высокоповторный пост [Простой способ решения математических уравнений в Python] (http://stackoverflow.com/q/1642357) –
посмотрите здесь: http://docs.sympy.org/dev/modules/solvers/solvers.html. вы должны понять, как писать ваши уравнения в матричной форме и применять решатель –