我应该打印出r的所有值(应该是5个值的列表)但是由于某种原因我得到一个空列表[]作为答案。除了lst变量之外,函数的所有输入都是单个值,lst变量是5个值的列表。知道为什么我得到一个空列表的任何想法?我正在使用的所有代码都可以在下面看到。
from math import pi
from sympy import solve
class SolarHeating:
def waterheated(self, T0, T, lst, Cp, Eg, r):
self.m = var('m')
self.T0 = T0
self.T = T
self.lst = lst
self.Cp = Cp
self.Eg = Eg
self.r = r
A = pi * self.r**2
Qt = self.Eg * A
F = [(self.T - self.T0) * self.m * self.Cp / Qt - x for x in self.lst]
self.m = solve(F, self.m)
return self.m
lst = [0, .25, .5, .75, 1.0]
a = SolarHeating()
m = a.waterheated(20, 40, lst, 4.2, .928, .128)
print(m)
答案 0 :(得分:2)
...
F = [(self.T-self.T0)*self.m*self.Cp/Qt-x for x in self.lst]
self.m = solve(F,self.m)
return self.m
这很可能是数学问题,而不是代码问题。打印F
的值并检查它是否确实有solve()
应该返回的解决方案。