我想解決以下問題:查找最大的函數是一個最大的功能
X * = argmin F(MAX_ {J = 1,...,J} G_J(X )),
其中f
和g_j
是已知的平滑的,凸的功能,並且x
是一個標量。我也有分析梯度f
和g_j
。是否可以在MatLab中使用fminunc
(使用牛頓法)或其他解算器來查找解決方案?顯然max_{j=1,...,J} g_j(x)
是不可區分的(除非有k
這樣g_k(x) >= g_j(x)
對所有j
),但它是可微分的。因此,我不能直接使用fminunc
,因爲它要求目標函數的梯度。如果我可以使用fminunc
,我將如何繼續?
作爲示例,考慮f(x) = x
,J=1,2
,g_1(x) = (x-1)^2
, g_j(x) = (x+1)^2
。然後max g_1, g_2
是g_1
和g_2
的上部信封。最小值位於x=0
。
注意:功能fminimax
是接近我想要的。 fminimax
解決
X * = argmin MAX_ {J = 1,...,J} G_J(X)。
組合的最大值是單個函數中的最大值....最小值可以是單個函數中的最小值,也可以是兩個相交處的某個斷點。 –
'fminsearch'不需要目標函數的梯度。它使用Nelder-Mead單純形算法 – AVK
額外的組成使事情稍微複雜一點。 –