【发布时间】: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))。我不知道这是否会有所帮助。祝你好运!