Optimization 如何最小化特定参数的函数,并保持其他参数不变

Optimization 如何最小化特定参数的函数,并保持其他参数不变,optimization,scipy,minimization,Optimization,Scipy,Minimization,所以我试图通过最小化卡方函数来计算参数beta的值。为此,我使用scipy.optimize.minimize()函数。我似乎无法让代码执行我想要的操作。有办法做到这一点吗?我对解决这个问题的其他方法持开放态度 对于某些背景,变量vr、rms和delta都是长度相同的1D元组,zeff、H和beta是参数。我试图计算一个优化的beta值 def chisq(beta,vr, delta,rvs,rms,zeff,H): c = -(H/(1+zeff))*(beta/3) mod

所以我试图通过最小化卡方函数来计算参数beta的值。为此,我使用scipy.optimize.minimize()函数。我似乎无法让代码执行我想要的操作。有办法做到这一点吗?我对解决这个问题的其他方法持开放态度

对于某些背景,变量vr、rms和delta都是长度相同的1D元组,zeff、H和beta是参数。我试图计算一个优化的beta值

def chisq(beta,vr, delta,rvs,rms,zeff,H):
    c = -(H/(1+zeff))*(beta/3)
    model = c*np.multiply(rms,delta)
    q = (vr-model)**2
    p = model**-1
    ratio = np.multiply(p,q)
    chisq = np.sum(ratio)
    return chisq

initial_guess = 0.47663662075855323
res = opt.minimize(chisq,initial_guess,args =     (beta,delta,rvs,rms,zeff,H)) 

我通常会收到一个错误,说函数的维度与minimize()函数的语法不匹配。

在您的例子中,beta是优化变量,因此您不需要将其作为额外参数传递给函数chisq:

res = opt.minimize(chisq, x0=initial_guess, args=(vr, delta, rvs, rms, zeff, H)) 

在您的情况下,beta是优化变量,因此不需要将其作为额外参数传递给函数chisq:

res = opt.minimize(chisq, x0=initial_guess, args=(vr, delta, rvs, rms, zeff, H))