gpt4 book ai didi

python - 为什么我使用 solve 命令得到一个空列表作为我的输出?

转载 作者:太空宇宙 更新时间:2023-11-03 14:10:00 51 4
gpt4 key购买 nike

我正在尝试使用 sympy 的 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)

最佳答案

我尝试在您的函数中添加一些跟踪语句,就在对solve 的调用之上。

    print "dWg\t", dWg, type(dWg)
print "dWp\t", dWp, type(dWp)
print "F\t", F, type(F)
print "self.fp\t", self.fp
self.fp = solve(F,self.fp)

输出:

dWg 117.050000000000 - 60.0000000000000*fp <class 'sympy.core.add.Add'>
dWp -26.0000000000000 + 60.0000000000000*fp <class 'sympy.core.add.Add'>
F 1591.05000000000 <class 'sympy.core.numbers.Real'>
self.fp fp
[]

如果我没看错,你的函数计算表达式而不是保持 F 的符号性质。因此,当您发出 solve 指令时,您正在尝试求解变量 fp 的常量。这就是您得不到解决方案的原因。


啊哈!在那里!

1500 + 117 - 26 - 60*fp + 60*fp => 1591

由于 fp 不在等式中,因此没有解。

关于python - 为什么我使用 solve 命令得到一个空列表作为我的输出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39379624/

51 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com