Ich hab leider wenig Ahnung von Python.
Ich habe eine Funktion, die von 6 Parametern abhängt und möchte diese minimieren.
Dazu verwende ich von scipy.optimize minimize.
Die 7 Parameter müssen positiv bleiben.
Code: Alles auswählen
import numpy as np
import scipy.optimize as op
kn=np.array([ 34.6424868 , 0.30891323, 1, 10.1186297, 10.4209244, 1])
bnds = ((0, None),(0, None),(0, None),(0, None),(0, None),(0, None))
op.minimize(funch,kn,method="SLSQP",bounds=bnds)
Leider missachtet minimize die grenzen und sucht das Minimum bei teilweise negativen Parametern.
Ich habs auch schon mit einer anderen Methode versucht "COBYLA", passiert aber das gleiche.
Was genau mach ich falsch?
Vielen Dank schonmal
edit:
Also ein beispiel mit ner einfachen Funktion, da meine Funktion etwas zu klompliziert ist:
Code: Alles auswählen
import numpy as np
import scipy.optimize as op
def f(k):
return k[0]**2 + (k[1]-3)**2 +10 - 1000*k[2] -100
k=[1,1,1]
bnds = ((0, None),(0, None),(0, None))
op.minimize(f,k,method="SLSQP",bounds=bnds)
Code: Alles auswählen
kopt=np.array([ -3.26910362e+02, 5.64189956e+01, 1.68889682e+08])