【问题标题】:Using sympy for bunch of equations对一堆方程使用 sympy
【发布时间】:2021-03-27 09:08:04
【问题描述】:

您好,我尝试使用 sympy 解方程,

目标是仅用 X、IN1、IN2、IN3、IN4a 和 IN4s 解释每个 eq_

from sympy import symbols, Eq, solve

X = symbols('X')
IN1 = symbols('IN1')
IN2 = symbols('IN2')
IN3 = symbols('IN3')
IN4a = symbols('IN4a')
IN4s = symbols('IN4s')

SSOL = symbols('SSOL')
CROP = symbols('CROP')
SON = symbols('SON')
DUNG = symbols('DUNG')
FEED = symbols('FEED')
FODGAS = symbols('FODGAS')
RESP = symbols('RESP')
DUNGGAS = symbols('DUNGGAS')

eq_SSOL = Eq(0.2 * DUNG + IN3 + IN1 + 0.25 * X + 0.03 * SON)
eq_CROP = Eq(0.6 * SSOL + IN4s)
eq_SON = Eq(32.8 * X + 7.8 * (IN1 + IN3) + 17.7 * IN2 + 13 * IN4s + 41.4 * IN4a)
eq_DUNG = Eq(0.8 * FEED)
eq_FEED = Eq(0.27 * CROP + IN2)
eq_FODGAS = Eq(0.03 * CROP)
eq_RESP = Eq(0.02 * FEED)
eq_DUNGGAS = Eq(0.3 * DUNG)

solve((eq_SON, eq_CROP, eq_SSOL, eq_FEED, eq_RESP, eq_DUNG, eq_DUNGGAS, eq_FODGAS), (SSOL, CROP, SON, DUNG, FEED, FODGAS, RESP, DUNGGAS))

我当然怀疑这是要走的路,但我也用尽了谷歌搜索词来寻找解决方案

有没有办法解决这个问题?

【问题讨论】:

  • 我无法理解这个问题。你能举一个更简单的例子——简单到可以手工计算——并展示你想要得到的结果吗?您能否举例说明用户将向程序提供什么作为数据,以及作为结果应该输出什么?您能否解释一下当您尝试此代码时会发生什么?为什么这不是您想要发生的?
  • 您正在做的事情的形式似乎还可以。我对这些东西了解不多,我只是用 sympy 做了一些简单的东西。我只是喜欢玩这样的问题来学习。我只想指出我注意到的一件事......如果你解决另一组变量,你会得到一个结果。所以也许你要求 numpy 做的事情是不可能的......也许没有解决方案。同样,这提供了一个结果:solve((eq_SON, eq_CROP, eq_SSOL, eq_FEED, eq_RESP, eq_DUNG, eq_DUNGGAS, eq_FODGAS), (X, IN1, IN2, IN3, IN4a, IN4s))。我不知道这是否会有所帮助。祝你好运!

标签: python formula sympy


【解决方案1】:

您的eq_SON 方程独立于您感兴趣的所有变量。您需要 8 个方程,涉及要求解的 8 个符号。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-05-29
    • 1970-01-01
    • 1970-01-01
    • 2016-05-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多