最小化Julia中具有多个参数的函数



我有一个函数,它取决于N个输入x=(x1,x2,x3,x4,…,xN(,我有一组M个可能的向量p=((p11,p12,p13,…,p1N(,…,(pM1,pM2,…,pMN(

我想找到最小值的值,其中p[j]中的j是Julia编程语言中实现的最小值。

我试着使用最小函数(这里我设置N=5(

minimum([x1,x2,x3,x4,x5] -> fmin(x1,x2,x3,x4,x5), p)

但是它不起作用,并且它也不给出实现最小值的j值。有什么建议吗?

您可以使用splat运算符...将向量扩展到函数参数中,例如,对于N=3:

function f(x,y,z)
return x+y+z
end
p = [[1,1,1], [2,2,2], [3,3,3]]
minimum(vector -> f(vector...), p)

为了找到你能做的最小值:

julia> fmin(x1, x2, x3) = x1+x2+x3
fmin (generic function with 1 method)
julia> p = [(1,1,1), (1,2,3), (-1,-2,10), (2,3,0)];
julia> minp = minimum(v -> fmin(v...), p)
3

可以通过以下方式找到最小值:

julia> findall(v -> fmin(v...) == minp, p)
1

(注意,你得到了一个向量,因为可能有多个索引的表达式被最小化(

相关内容

  • 没有找到相关文章

最新更新