2017-08-20 1 views
0

Ich erhalte diesen FehlerPython: Scipy: Brute-Optimierung

TypeError: objfunc() missing 1 required positional argument: 'q'

wenn ich versuche, um die Zielfunktion Brute zu optimieren.

Was mache ich falsch?

def objfunc(p,q): 
    return p**3-2**q; 

from scipy.optimize import brute 
grid = (slice(1, 300, 1),slice(1, 300, 1)) 
solution = brute(objfunc, grid, finish=None,full_output = True) 
`enter code here`*TypeError: objfunc() missing 1 required positional argument: 'q'*''' 

Vielen Dank!

Antwort

1

Sie müssen die Objfunc korrigieren. Auch der Bereich für q ist sehr hoch, Sie können es ändern, um Überläufe zu verhindern

def objfunc(grid): 
    p, q = grid 
    return p**3-2**q; 

grid = (slice(1, 300, 1),slice(1, 30, 1)) 
+0

Danke Ishant. –