我希望能够执行允许我将任意曲线函数拟合到数据的拟合,并允许我在参数上设置任意边界,例如我想拟合函数:
f(x) = a1(x-a2)^a3\cdot\exp(-\a4*x^a5)
Run Code Online (Sandbox Code Playgroud)
并说:
a2 在以下范围内: (-1, 1)a3并且a5是积极的有一个很好的scipy curve_fit 函数,但它不允许指定参数边界.还有很好的http://code.google.com/p/pyminuit/库可以进行通用最小化,它允许设置参数的边界,但在我的情况下,它没有覆盖.
我正在使用python中的iminuit成功编写一个函数,但即使使用"print_level = -1"或"print_level = 0"也无法删除该消息.
这是我使用的极简主义代码:
from iminuit import Minuit
m = Minuit(chi2, alpha=1., beta=0., print_level=-1)
Run Code Online (Sandbox Code Playgroud)
它返回:
creatFitsFile.py:430: InitialParamWarning: errordef is not given. Default to 1.
m = Minuit(chi2, alpha=1., beta=0., print_level=-1)
creatFitsFile.py:430: InitialParamWarning: Parameter alpha is floating but does not have initial step size. Assume 1.
Run Code Online (Sandbox Code Playgroud)
我只是希望它安静,因为我在一个包含约170,000个数据集的循环中.
谢谢