Ich möchte some_arg
Wert finden, die die Funktion minimieren würde.Python scipy Brute-Optimierung
1) importiert
from scipy import optimize
import math as m
2) original 2 * sin (t) -Daten
time_steps = list(range(0,20))
def my_sin(time_steps):
sin_data = list()
for time_step in time_steps:
sin_data.append(2*m.sin(time_step))
return sin_data
my_sin_data = my_sin(time_steps)
3) Einstellungsfehler-Berechnungs wollen i
def fun_to_brute(z, *params):
some_argument = z
sum_of_errors = 0
for time_step in params[0]:
sum_of_errors = sum_of_errors + some_argument*m.sin(time_step) - params[1][time_step]
return sum_of_errors
4) schließlich minimieren Start Brute
rranges = [slice(-4, 4, 0.25)]
params = (time_steps, my_sin_data)
resbrute = optimize.brute(fun_to_brute, rranges, args = params, full_output=True)
Aber die Ergebnisse, die ich bekomme, sind falsch. Ich möchte Brute Force some_arg
Wert 2, in diesem Fall sum_of_errors
_Must gleich Null sein.
Aber resbrute [0] gibt einigen seltsamen Wert
Warum Ist Pandas da? Es schleicht sich einfach überall hin ... – Benjamin
vergessen zu löschen – Demaunt
Versuchen Sie, 'finish = None' zu otpimize.brute hinzuzufügen – Xevaquor