【问题标题】:How to minimize my function for a specific parameter, and holding others constant如何最小化特定参数的函数,并保持其他参数不变
【发布时间】:2019-09-07 14:22:31
【问题描述】:

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

对于某些背景,变量 vr、rms 和 delta 都是相同长度的一维元组,而 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() 函数的语法不匹配。

【问题讨论】:

    标签: optimization scipy minimization


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 2023-01-27
      • 1970-01-01
      • 2013-12-24
      • 1970-01-01
      • 1970-01-01
      • 2015-07-30
      • 2012-12-19
      • 1970-01-01
      • 2017-08-18
      相关资源
      最近更新 更多