Python Scipy Fmin не завершается успешно - PullRequest
1 голос
/ 14 марта 2019

У меня есть функция, которую я пытаюсь минимизировать для нескольких значений.Для некоторых значений он успешно завершается, а для других ошибка

Warning: Maximum number of function evaluations has been exceeded.

Это ошибка, которая выдается.Я не уверен в роли maxiter и maxfun и как увеличить или уменьшить их, чтобы успешно достичь минимума.Насколько я понимаю, эти значения не являются обязательными, поэтому я не уверен, какие значения по умолчанию.

# create starting parameters, parameters equal to sin(x)
a = 1
k = 0
h = 0
wave_params = [a, k, h]

def wave_func(func_params):
    """This function calculates the difference between a sinewave (sin(x)) and raw_data (different sin wave)
    This is the function that will be minimized by modulating a, b, k, and h parameters in order to minimize
    the difference between curves."""
    a = func_params[0]
    b = 1
    k = func_params[1]
    h = func_params[2]

    y_wave = a * np.sin((x_vals-h)/b) + k
    error = np.sum((y_wave - raw_data) * (y_wave - raw_data))

    return error

wave_optimized = scipy.optimize.fmin(wave_func, wave_params)
...