【问题标题】:Is it possible to solve 3 equations with 2 unknowns in Python (Sympy)是否可以在 Python 中求解 3 个具有 2 个未知数的方程(Sympy)
【发布时间】:2021-03-02 09:16:01
【问题描述】:

目前使用 sympy 求解以下方程组:

from sympy import symbols, Eq, nsolve, exp, log, cosh

eq1 = Eq(Vmax**2/Amax * log(cosh(Amax*4.82/Vmax)),40)
eq2 = Eq(Vmax**2/Amax * log(cosh(Amax*2.8/Vmax)),20)

solution = nsolve([eq1, eq2], [Amax, Vmax], [1, 1])

我使用这种技术得到了解决方案。但是我有第三个方程,我想使用所有 3 个方程求解 2 个未知数。 Sympy 中是否可以用 3 个方程求解 2 个未知数?

from sympy import symbols, Eq, nsolve, exp, log, cosh

eq1 = Eq(Vmax**2/Amax * log(cosh(Amax*4.82/Vmax)),40)
eq2 = Eq(Vmax**2/Amax * log(cosh(Amax*2.8/Vmax)),20)
eq3 = Eq(Vmax**2/Amax * log(cosh(Amax*1.65/Vmax)),10)

solution = nsolve([eq1, eq2, eq3], [Amax, Vmax], [1, 1])

尝试上面的代码会出现值错误:ValueError: Could not find root within given tolerance. (0.181941547657103824541 > 2.16840434497100886801e-19) Try another starting point or tweak arguments.

谁能帮助或建议我如何使用 3 个方程来获得 2 个未知数的值?

谢谢!

【问题讨论】:

  • 对不起,如果我听起来很幼稚,但你为什么需要 3 个方程?前两个还不够吗?
  • 没有意义。如果你得到一个包含两个方程的解,那么第三个方程就无法为谜题添加任何东西。
  • @PythonPikachu8 是的,但要确保前两个方程的解实际上符合第三个方程。或者在三个方程中的两个方程之间进行某种组合,以便它可以适合第三个。
  • 为什么你不能把前两个方程的数字代入,然后看看它是否适用于第三个方程?
  • @Kraigolas 我明白了。我在考虑线性方程,所以它是真的。

标签: python sympy


【解决方案1】:

问题正是错误消息告诉您的:在给定的容差范围内没有解决方案。如果您想自己检查一致性,请成对求解方程,然后将解与您想要的任何容差或其他逻辑进行比较。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-08-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多