Python 3.x python scipy fmin未成功完成

Python 3.x python scipy fmin未成功完成,python-3.x,function,scipy,minimization,Python 3.x,Function,Scipy,Minimization,我有一个函数,我试图最小化多个值。对于某些值,它会成功终止,但对于其他值,则会出现错误 Warning: Maximum number of function evaluations has been exceeded. 是给定的错误。我不确定maxiter和maxfun的角色,以及如何增加或减少它们以成功地达到最低限度。我的理解是,这些值是可选的,因此我不确定默认值是什么 # create starting parameters, parameters equal to sin(x) a =

我有一个函数,我试图最小化多个值。对于某些值,它会成功终止,但对于其他值,则会出现错误

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)

代码运行良好。您可以尝试提供更好的初始值和/或增加ftol。请参阅doucmentation代码,该代码工作正常。您可以尝试提供更好的初始值和/或增加ftol。请参阅doucmentation