scipy minimize: grenzen werden missachtet

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
janine
User
Beiträge: 4
Registriert: Dienstag 9. Juli 2013, 15:11

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])
Zuletzt geändert von janine am Dienstag 9. Juli 2013, 16:35, insgesamt 2-mal geändert.
BlackJack

@janine: Könntest Du ein minmales, aber lauffähiges Beispiel zeigen, damit man das nachvollziehen kann?
Antworten