Python 中的方程求解器

发布于 2024-10-21 11:14:43 字数 487 浏览 4 评论 0原文

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

x = y + z

如果绑定其他两个变量(即: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  

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

Given a simple equation such as:

x = y + z

You can get the third variable if you bind the other two (ie: y = x - z and z = x - y). A straightforward way to put this in code:

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  

I obviously can take an equation, parse it and simplify it to achieve the same effect.
But I believe in doing so I would be re-inventing the wheel. So where's my ready-made wheel?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

绳情 2024-10-28 11:14:43

考虑使用 Sympy。它包括各种求解方程的工具等等。

以下是文档的摘录:

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

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

Consider using Sympy. It includes various tools to solve equations and a lot more.

The following is an excerpt from the docs:

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

>>> solve(x**4-1, x)
[1, -1, -I, I]
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文