python - 具有没有简单表达式的约束的 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 确实可以帮助您。
推荐阅读
- ios - 如何使用 segue 进行交互式过渡?
- django - 如何在 2 个不同项目的后端之间发布数据
- python-3.x - 如何在 CrawlerProcess Scrapy 中为两个不同的蜘蛛指定不同的进程设置?
- python - if 和浮点范围中的逻辑运算符
- c - 如果在程序中检查失败
- javascript - 根据输入的道具类型显示/隐藏html
- python - 将文本文件读取并格式化为 Python
- javascript - 是否可以使用css创建一个三角形,所有三个边都是不同颜色的
- redux - 测试 redux saga 回调函数
- rules - Clips 中的触发规则无法正常工作