gpt4 book ai didi

python - 最大方程长度

转载 作者:行者123 更新时间:2023-12-05 08:03:31 25 4
gpt4 key购买 nike

我读了大部分问题都出现了同样的错误,但大多数问题的回答都是一样的,这与我的问题不同。我正在解决一个非常简单的模型,唯一的问题是我正确管理的条件语句。但是我得到了这个错误,现在我不知道如何解决它!“APM 模型错误:字符串 > 15000 个字符考虑将直线分解为多个方程

Code

也可能是因为只使用了换行符 CR而不是 CR LF(对于 Windows)或 LF(对于 MacOS/Linux)要解决此问题,请使用适当的换行符保存 APM 文件

正在停止...“如果你能帮助我,那就太好了。

最佳答案

IMODE=2不需要求和。使用 m.Minimize()m.Obj() 将每个数据行和相关计算添加到目标函数。

尝试使用 m.if3() 函数代替 if 语句。这是为基于梯度的求解器提供连续的一阶和二阶导数所必需的。如果 m.if3() 花费的时间太长,也可以使用 m.if2()。有关优化问题中的逻辑条件的更多信息。

from gekko import GEKKO
import random
m = GEKKO()

# random numbers between -0.5 and 0.5
r = [30*(random.random()+1.0) for i in range(744)]

# power
Pw = m.Param(value=r)
eta = m.Const(0.6)
Pre = m.Var(value=25,lb=20,ub=30)


def f(Pw,Pre):
D = m.if3(Pw-Pre,Pw-Pre,eta*(Pw-Pre))
return D

# constraint
#m.Equation(f(Pw,Pre)>=0)

# objective
m.Minimize(f(Pw,Pre))

# set global option and solve
m.options.IMODE = 2
m.solve()

不需要约束 m.Equation(f(Pw,Pre)>=0) 因为绝对值为正。这个脚本给出了解决方案:

 APMonitor Optimization Suite
----------------------------------------------------------------


--------- APM Model Size ------------
Each time step contains
Objects : 0
Constants : 1
Variables : 6
Intermediates: 0
Connections : 0
Equations : 4
Residuals : 4

Number of state variables: 3720
Number of total equations: - 2232
Number of slack variables: - 1488
---------------------------------------
Degrees of freedom : 0

----------------------------------------------
Model Parameter Estimation with APOPT Solver
----------------------------------------------
Iter: 1 I: 0 Tm: 1.95 NLPi: 4 Dpth: 0 Lvs: 0 Obj: 7.00E+03 Gap: 0.00E+00
Successful solution

---------------------------------------------------
Solver : APOPT (v1.0)
Solution time : 1.99689999999828 sec
Objective : 7001.86498359946
Successful solution
---------------------------------------------------

下次提问时不要忘记发布代码,而不是代码图片。这样可以更轻松地提供更具体的建议。

关于python - 最大方程长度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72291208/

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