Seite 1 von 1

scipy minimize: grenzen werden missachtet

Verfasst: Dienstag 9. Juli 2013, 15:25
von janine
Hallo,
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)
Dabei ist funch meine Funktion.
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)
Wenn ich das laufen lasse, findet folgenden array für k

Code: Alles auswählen

kopt=np.array([ -3.26910362e+02,   5.64189956e+01,   1.68889682e+08])

Re: scipy minimize: grenzen werden missachtet

Verfasst: Dienstag 9. Juli 2013, 16:05
von BlackJack
@janine: Könntest Du ein minmales, aber lauffähiges Beispiel zeigen, damit man das nachvollziehen kann?