我正在尝试使用两个可调用函数scipy.optimize.least_squares(fun = my_fun,jac = my_jac,max_nfev = 1000):my_fun和my_jac
两个函数:my_fun和my_jac,使用外部软件评估它们的值,这个任务非常耗时,因此我更喜欢控制两者的评估数量
trf方法使用my_fun函数来评估信任区域是否足够,使用my_jac函数来确定成本函数和jacobian矩阵
有一个输入参数max_nfev。这个参数只计算有趣的评估吗?它是否也考虑了jac评估?
此外,在matlab中,lsqnonlin函数有两个参数,MaxIterations和MaxFunctionEvaluations。它存在于scipy.optimize.least_squares中吗?
由于 阿龙
答案 0 :(得分:0)
根据scipy.optimize.least_squares
的帮助,max_nfev
是程序退出前的函数评估数:
max_nfev:无或int,可选 终止前的最大功能评估数。 如果为None(默认值),则自动选择该值:
同样,根据帮助,没有MaxIterations参数,但您可以在f(ftol
)中定义容差,该容差是您要最小化的函数或x(xtol
)解,在退出代码之前。
您也可以使用scipy.optimize.minimize()
。在其中,您可以定义maxiter
字段中的options
参数。
如果您这样做,请注意您要最小化的功能必须是您的成本函数,这意味着您必须代码您的最小二乘函数。
我希望它对您来说是明确和有用的