首页 > 解决方案 > 具有一些固定值的向量作为 scipy 最小化函数的变量

问题描述

有没有办法用 Scipy 最小化一个函数,该函数的变量是一个列表,其中一些特定值可能为 0?我试图使用约束来解决这个问题,但似乎最小化器也在迭代这 0 个元素,这导致了更多的计算开销。

标签: pythonlistscipyminimize

解决方案


你总是可以包装你的函数。一个非常不优雅,简单的例子:

from scipy.optimize import minimize

def f(x):
    a, b, c, d = x
    return a**2 + b**2 + c**2 + d**2

def f_with_zeros(z):
    a, d = z
    b = c = 0
    return f([a, b, c, d])

res = minimize(f_with_zeros, [0, 0])

推荐阅读