函数最小化过程中保证参数“和为一”的方法

2024-03-28 22:20:51 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试执行一个最小化,其中一些参数必须使用PyMinuit求和为一。我想知道是否有一个标准的方法来实现这种事情?你知道吗

如果不满足约束,通常会将函数设置为某个大值吗? e、 g

def f(params):
    if params.sum() != 1:
        return 1e6
    else:
        ... compute actual value ...

将每轮参数标准化是一个非常糟糕的主意吗?e、 g

if params.sum() != 1:
    for param in params:
        param = param / params.sum()

谢谢!你知道吗


Tags: 方法函数参数标准returnifparamdef
2条回答

我认为你可能想要改变一些东西,这样约束就被烘焙到你的最小化。确切地说,如果没有更多关于你在做什么的细节,我会尝试引入一个Lagrange multiplier。在大学一年级的微积分课程中,这是一件很常见的事情,所以你应该可以在网上找到很多例子。你知道吗

PS:你用PyminUnit是因为你在做粒子物理吗?你知道吗

相关问题 更多 >