我想用sympy的solve命令解决方程式,但是我的输出是一个空列表[]。我认为这可能发生的唯一原因是因为没有解决办法,但我怀疑这是原因。任何人都知道我为什么没有得到答案?谢谢!为什么我使用solve命令获取空列表作为我的输出?
from sympy import *
class WaterModel:
def fp_requirement(self, Ws0, Wp0, Wg0):
greyW = 60.0
potW = 126.0
rainW = 17.05
self.Ws0 = Ws0
self.Wp0 = Wp0
self.Wg0 = Wg0
self.fp = var('fp')
filt_greyW = self.fp*greyW
dWg = self.Wg0 - greyW + (1 - self.fp)*greyW + rainW
dWp = self.Wp0 - potW + filt_greyW
F = self.Ws0 + dWp + dWg
self.fp = solve(F,self.fp)
return self.fp
a = WaterModel()
fp = a.fp_requirement(1500, 100, 100)
print(fp)
太棒了!我很好奇为什么我的方程F是一个常数而不是fW的函数,因为dWg和dWp是。 –
我不是一个** sympy **用户......但是,我的猜测是sympy对象上的“+”运算符是* evaluate-and-add *,而不是您期望的字符串连接。 – Prune
这些计算都是以符号方式完成的 - 请注意“dWg”和“dWp”在其中有一个“fp”项。但是,请注意这些“fp”术语彼此是否定的。 'fp'取消! – user2357112