gpt4 book ai didi

gekko - Gekko 中的拉格朗日乘数(边际)

转载 作者:行者123 更新时间:2023-12-03 17:00:16 27 4
gpt4 key购买 nike

Gekko 中是否有一个类轮来检索拉格朗日乘数(例如 GAMS 中的边际),或者如果不是其他方式的单行?

谢谢您的帮助。

最佳答案

这是检索拉格朗日乘数的一行。

lam = np.loadtxt(m.path + '/apm_lam.txt')

您需要将诊断级别设置为 m.options.DIAGLEVEL=2并使用 m=GEKKO(remote=False) 在本地解决.您可以看到使用 DIAGLEVEL=2 生成的其他一些文件。当您使用 m.open_folder() 打开文件夹时.这是一个测试脚本。

from gekko import GEKKO    
import numpy as np
m = GEKKO(remote=False)

#initialize variables
xi = [1,5,5,1]
x1,x2,x3,x4 = [m.Var(xi[i],lb=1,ub=5) for i in range(4)]

m.Equation(x1*x2*x3*x4>=25)
m.Equation(x1**2+x2**2+x3**2+x4**2==40)

m.Obj(x1*x4*(x1+x2+x3)+x3)

m.options.DIAGLEVEL=2

m.solve(disp=False)

print('')
print('Results')
print('x1: ' + str(x1.value))
print('x2: ' + str(x2.value))
print('x3: ' + str(x3.value))
print('x4: ' + str(x4.value))

print('Lagrange multipliers')
lam = np.loadtxt(m.path + '/apm_lam.txt')
print(lam)

这会产生以下结果:

Results
x1: [1.000000057]
x2: [4.74299963]
x3: [3.8211500283]
x4: [1.3794081795]
Lagrange multipliers
[-0.55227642 0.16143862]

关于gekko - Gekko 中的拉格朗日乘数(边际),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62040814/

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