Wie kann ich Variablen indizieren, um ein nichtlineares Optimierungsproblem im Python-Gekko-Paket zu lösen? Wie kann ich zum Beispiel die folgende Zielfunktion in eine einzelne Gleichung schreiben, die die Variable x indiziert?
Lösung des Problems
Verwenden Sie die m.Array()
Funktion, um ein Variablen- (oder Parameter-) Array zu erstellen. Die Funktionen np.prod()
und m.sum()
werden verwendet, um die Zielfunktion m.Maximize()
und die Gleichung zu definieren 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)
Lösung:
[[20.0] [20.0] [20.0] [20.0] [20.0]]
Keine Kommentare:
Kommentar veröffentlichen