使用 iminuit 指定多参数限制

问题描述

我尝试使用 iminuit 和示例代码对参数设置限制

import iminuit

def func(x,y):
  fun = 2*x**2 + 3*y + 5
  return fun

m = iminuit.Minuit(func,x=1,y=1,limit_x=(0,100),limit_y=(0,50))

我得到的是错误信息

/usr/local/lib/python3.6/dist-packages/iminuit/minuit.py in _make_init_state(pos2var,args,kwds)
   1537             if kw not in pos2var:
   1538                 raise RuntimeError(
-> 1539                     f"{kw} is not one of the parameters [{' '.join(pos2var)}]"
   1540                 )
   1541         nargs = len(kwds)

RuntimeError: limit_x is not one of the parameters [x y]

这很奇怪,因为 documentation 以这种方式显示了包含限制。

我对具有 6 个或更多参数的更复杂函数的最小化特别感兴趣,并且指定其中 2 个的参数空间很重要。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)