Как я могу индексировать переменные для решения задачи нелинейной оптимизации в пакете python gekko? Например, как я могу записать приведенную ниже целевую функцию в одно уравнение, индексирующее переменную x?

Решение проблемы
Используйте m.Array()функцию для создания массива переменных (или параметров). Функции np.prod()и m.sum()используются для определения целевой функции m.Maximize()и уравнения m.Equation().
import numpy as np
from gekko import GEKKO
n = 5
m = GEKKO(remote=False)
x = m.Array(m.Var,n,value=1)
m.Maximize(np.prod([m.sqrt(xi) for xi in x]))
m.Equation(m.sum(x)==100)
m.solve(disp=False)
print(x)
Решение:
[[20.0] [20.0] [20.0] [20.0] [20.0]]
Комментариев нет:
Отправить комментарий