gpt4 book ai didi

python - 对于这个问题,Python 中合适的约束优化求解器是什么?以及类型错误问题

转载 作者:行者123 更新时间:2023-11-30 23:54:10 24 4
gpt4 key购买 nike

我希望使用 python(代替 excel)来完成非编程相关的工程类(class)的作业。我正在尝试为多个不同尺寸的管道找到热交换器中的最佳管道数量。这个数字取决于六个相关数量,并且有一些限制。这些方程很少是线性的,但管的数量必须是正整数。我知道 scipy.optimize 包并使用 math.ceil 将试验数字转换为整数,但必须有一个更好的包在某个地方。

我按原样输入代码 here .

下面是优化问题的部分。问题在于 fsolve 的变化不足以改变 m.ceil 的初始猜测。

def ntf():
fdn = 0.85 * 62.43
# lb/ft^3
vsb = fdn * 5 * (1.076 * 10 ** -5)
# lb/ft^3 * Cst * (ft^2/s) / Cst
kf = 0.08
fcp = 0.5
# Btu/ft^2-hr-(F/ft)
dua = uaf()

for i, x in enumerate(bwg16):
def func(nt):
nt = m.ceil(nt)
vel = velf(nt, x)
nre = nref(vel, bwg16[x][1], fdn, vsb)
npr = nprf(fcp, vsb, kf)
nnu = nnuf(nre, npr, vsb, vsb)
idc = idcf(nnu, bwg16[x][1], kf)
ohtc = ohtcf(idc, x)
fa = nt * bwg16[x][3]
sa = 40 * nt * bwg16[x][2]
ua = ohtc * sa
diff = ua - dua
return diff

nts[x] = opt.fsolve(func, 40, xtol = 0.01)
# TODO: Optimize nt such that diff is positive but as close to zero as
# possible. nt needs to be an integer. Then, I need to be able to
# extract nt, nre, vel, and sa into a dictionary to compare later. If
# all else fails, I suppose I could recalculate the rest later given
# the working nt.

return nts

总之,你能推荐一个更好的Python包或函数来解决这个问题吗?

编辑:我摆脱了由于忘记一些返回语句而遇到的类型错误问题。

最佳答案

如果让优化器使用浮点值,也许您可​​以假设正确的整数结果是 Floor(nt) 或 ceil(nt),因此只需评估这两个值并进行选择。

关于python - 对于这个问题,Python 中合适的约束优化求解器是什么?以及类型错误问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5294484/

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