微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

带有没有简单表达式的约束的 Scipy 最小化

如何解决带有没有简单表达式的约束的 Scipy 最小化

我试图找到最小化最小二乘函数的值。问题在于,一个解决方案可能有效,也可能不以不能作为值的简单表达式的方式给出。相反,我们可以通过调用函数来检查有效性。

如果解决方案无效,我试图做的是将平方和设置为无穷大,但 scipy.optimize.minimize 不喜欢那样。有什么更好的方法解决这个问题?

我的代码的简化版本:

probs = constant
def sse(a_candidate):
        validity = some_function(a_candidate)

        if not validity:
            sum_sq_err = np.inf

        else:
            ym = function_of(a_candidate)
            sum_sq_err = np.sum((ym-probs)**2)

        return sum_sq_err
a_solution = scipy.optimize.minimize(sse,a0)

解决方法

您可以将 NonlinearConstraint 对象传递给 scipy.optimize.minimize

a_solution = scipy.optimize.minimize(sse,a0,constraints=scipy.optimize.NonlinearConstraint(...))

我不能提供更多细节,因为你的问题没有提供任何细节,同样的论点,我不能保证强加一个 NonLinearConstraint 实际上可以帮助你。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。