Python中的方程求解器

Ail*_*lyn 3 python parsing equation-solving

给出一个简单的等式,例如:

x = y + z
Run Code Online (Sandbox Code Playgroud)

如果你绑定另外两个变量,你可以获得第三个变量(即:y = x - zz = 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  
Run Code Online (Sandbox Code Playgroud)

我显然可以采用一个等式,解析它并简化它以达到同样的效果.但我相信这样做会重新发明轮子.那么我现成的车轮在哪里?

Ale*_*ler 9

考虑使用Sympy.它包括解决方程式的各种工具等等.

以下是文档的摘录:

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

>>> solve(x**4-1, x)
[1, -1, -I, I]
Run Code Online (Sandbox Code Playgroud)