我在IPOPT (v3.12.10)中遇到本地不可行错误。
Converged to a point of local infeasibility. Problem may be infeasible.
我还使用m.options.SOLVER=1对APOPT求解器进行了尝试,并得到了类似的错误。
No feasible solution
这个问题有两个方程和三个变量的多个可行解。这个问题的解决方案是平面与球体相交的地方。
from gekko import GEKKO
m = GEKKO()
x=m.Var(); y=m.Var(); z=m.Var()
m.Equations([x**2+
我正在用Python设置一个新的线性优化代码。不幸的是,我没有相同的结果与Pulp,Scipy和Gekko软件包。
我尝试用不同的包实现Python中的线性优化代码。
利用GEKKO进行优化
from gekko import GEKKO
import numpy as np
import matplotlib.pyplot as plt
m = GEKKO() # create GEKKO model
x = m.Var(value=0, lb=0, ub=400000) # define new variable, initial value=
我面对的是一个Hessenberg索引-2 DAE,我试图用python模块gekko来解决它。经过几天的尝试和错误之后,我认为我离一个能工作的代码不远了。但我刚刚意识到,也许gekko不能处理复数?
下面是一个最低限度的工作示例:
import numpy as np
from gekko import GEKKO
# Define the simulation and its parameters
g = GEKKO()
g.options.IMODE = 7
g.options.NODES = 1
# define the time array
n_steps = 100
Time
我正在制作一个数值问题,作为一个例子,并试图用gekko为下列问题寻找一个最优控制:
最小积分a*x(t)从0到T,其中T是第一次x(t)是0,即它是一个随机时间。这些约束使得x(t)遵循一些动态f( x(t),u(t)),x(T) >= 0,u(t)在0到1之间。
我按照GEKKO网站和youtube上的教程进行了固定的最后一次,但在随机的最后一次,我找不到任何信息。下面是我目前的代码,但是我如何能够从固定的最后时间移动到随机的最后时间呢?任何帮助都将不胜感激!谢谢!
import numpy as np
import matplotlib.pyplot as plt
from
lp_solve能否返回一个统一的解决方案?(是否有什么会迫使这种行为的旗帜或东西?)
说我有这个:
max: x + y + z + w;
x + y + z + w <= 100;
在以下方面的成果:
Actual values of the variables:
x 100
y 0
z 0
w 0
不过,我想提出这样的建议:
Actual value
我试图找到参数值,以便用给定的一组点最好地拟合下面的模型函数。
Model:
x
y = ------------------------
1- (a1*x)^2 + (a2*x)^4
where parameters are: a1, a2
(1)我用这个方程找到了最优参数值,但它给出了任意x(红色图)的y=~0值。
(3)令人惊讶的是,使用以下只包含一个参数的模型得到了更好的拟合。
Model:
x
y = -------------
1- (a1*x)^2
where para
我尝试使用此代码,结果是(2,2)。显然这不是真的,因为(0,4)是最好的解决方案。你能告诉我问题出在哪里吗? import numpy as np
from gekko import GEKKO
m = GEKKO()
x=[m.Var(lb=0,ub=4,integer=True) for i in range(2)]
m.options.SOLVER = 1
#Equations
m.Equation(m.sum(x)>=4)
#Objective
m.Obj(x[0]*x[1])
m.solve(disp=False)
print(x[0].value)
print
我试过这段代码,但似乎出了问题。Normaly (z.value)必须返回一个数字,但在我的示例中,它返回一个数组。有人能帮忙吗?
from gekko import GEKKO
import numpy as np
import matplotlib.pyplot as plt
xm = np.array([0,1,2,3,4,5])
ym = np.array([0.1,0.2,0.3,0.5,0.8,2.0])
m = GEKKO()
x = m.Param(value=xm)
a = m.FV()
a.STATUS=1
y = m.CV(value=ym)
y.FSTATUS=1
z
我开始学习Gekko和我的工作时间-最优控制问题。我正试图用Gekko解决以下问题:
在研究如何用GEKKO实现这个问题时,我发现了以下代码:
from gekko import GEKKO
import matplotlib.pyplot as plt
import numpy as np
# set up the gekko model
m = GEKKO()
# set up the time (minimize the time with time scaling)
m.time = np.linspace(0, 1, 100)
# set up the variables
我试图解决一个最优控制问题,它涉及到一个具有固定状态但有空闲终端时间的积分目标最小化。这是一个可以解析解决的相对简单的问题。Gekko的解决方案与分析不匹配。
我不知道我做错了什么。我学习了几个Gekko例子来解决这个问题。任何帮助都是非常感谢的。
我遇到的另一个问题是如何让Gekko自动计算控制的初始值。最优控制总是从指定的初始控制猜测开始。
from gekko import GEKKO
import numpy as np
import matplotlib.pyplot as plt
# create GEKKO model
m = GEKKO()
# time
我正在尝试求解Gekko中的DAE,其中一些组件依赖于卷积的解。
这需要一个恒定的dt,但我确信这是在选项中的某个位置。因此,我想要做的是使用一个函数来记录数组中状态变量的当前值,并返回到该值的总和。下面是我尝试使用一个简单的ODE示例:
import numpy as np
from gekko import GEKKO
import matplotlib.pyplot as plt
m = GEKKO()
class adder:
def __init__(self,):
self.i=m.Array(m.Param, 10)
s
在我的代码中,我得到了以下错误,我完全不知道错误的来源:
@error: Equation Definition
Equation without an equality (=) or inequality (>,<)
true
STOPPING...
我正在寻找一个解决方案'x‘,它在满足'warf_moodys_ constraint’设置的约束的前提下,将函数'was_constraint‘的结果最小化。函数返回一个浮点值,当我单独将初始的起始向量'x‘传递给每个函数时,我不会收到来自这些函数的任何错误。有人能告诉我哪里出了问题吗?
def w
我正在使用python GEKKO和/或APM Matlab接口解决一个最优控制问题(它们是两种语言的相同包)。我可以成功地解决我的问题,但是我不知道如何指定解决方案文件的输出位置。
加载我的文件并使用以下命令解决问题
% server
s = 'http://byu.apmonitor.com';
% application name
a = 'test';
% load model and data file
apm_load(s,a,'test.apm')
csv_load(s,a,'test.csv')
output =
我有一个非线性系统,它有二次输入(操纵变量,MV)。为了使用GEKKO对该系统进行MPC模拟,我定义了以下函数来处理二次输入: def NTVin(T, u):
n = T.shape[0]
Tntv = zeros(n)
u2 = zeros_like(u, dtype = float64)
for i in range(len(u2)):
u2[i] = copy(u[i].VALUE)
for i in range(n):
Tntv[i] = dot(dot(u2, T[i,:,:]), u2)
retu
我刚接触过GEKKO,用一个简单的非线性优化问题来测试它,但是当初始猜测为0时,它会触发一个错误的“未找到解”的异常。我对此有两个问题:
(1)为何?
(2)我如何知道哪个最初的猜测对求解者来说是可以的?
我的代码是根据这里给出的非线性回归示例:编写的。
可从此处下载度量点文件:
# Model:
# x
# y = -------------
# 1- (a1*x)^2
#
# Finding a1 for fitting model as much as possible for the given measures points
# loading g
我想我遇到了和这个堆栈溢出相同的问题。
昨天我能够解决我的Gekko模型,今天我甚至不能解决来自Apmonitor网站的例子。解决问题需要花费很长时间,我得到了以下错误:
ImportError: No solution or server unreachable.
Show errors with m.solve(disp=True).
Try local solve with m=GEKKO(remote=False).
我尝试在本地解决它,正如我在上面提到的堆栈溢出帖子中所建议的那样:
m = GEKKO(remote=False)
但是,我得到了以下错误:
Error: