Решатель уравнений в Python - PullRequest
3 голосов
/ 10 марта 2011

Учитывая простое уравнение, такое как:

x = y + z

Вы можете получить третью переменную, если связываете две другие (то есть: y = x - z и z = x - y).Простой способ поместить это в код:

def solve(args):
    if 'x' not in args:
        return args['y'] + args['z']
    elif 'z' not in args:
        return args['x'] - args['y']
    elif 'y' not in args:
        return args['x'] - args['z']
    else:
        raise SomeError  

Я, очевидно, могу взять уравнение, разобрать его и упростить для достижения того же эффекта.Но я верю в это, я бы заново изобрел колесо.Так где же мой готовый руль?

1 Ответ

9 голосов
/ 10 марта 2011

Рассмотрите возможность использования Sympy . Он включает в себя различные инструменты для решения уравнений и многое другое.

Ниже приводится выдержка из документов :

>>> from sympy import I, solve
>>> from sympy.abc import x, y

>>> solve(x**4-1, x)
[1, -1, -I, I]
...