Usando Mathematica, necesito optimizar una función que se define en términos de BinCounts
; los argumentos sobre los que quiero maximizar definen los puntos de corte de la bandeja.Optimización con Mathematica: use BinCounts en la función objetivo
Creo que el problema es que Mathematica amplía la función objetivo en cuanto a los argumentos antes de que se les ha dado numérica valores, por lo BinCounts
se queja de que la especificación bin no es "una lista que contiene valores reales, Infinito, y -Infinito".
Creo que el siguiente es un ejemplo mínimo del tipo de cosas que estoy haciendo y lo que está sucediendo. Estaría muy agradecido por el asesoramiento en cómo solucionar este problema.
In[1]:= data = RandomReal[1, 30]; (* Make some test data. *)
In[2]:= f[a_, b_, c_] := BinCounts[data, {{0, a, b, c, 1}}] (* Shorthand to use below… *)
In[12]:= g[a_, b_, c_] := Max[f[a, b, c]] - Min[f[a, b, c]] (* Objective function. *)
In[13]:= NMaximize[{g[a, b, c], 0 < a < b < c < 1}, {a, b, c}] (* Try to oprimize. *)
During evaluation of In[13]:= BinCounts::cvals: The bin specification {{0,a,b,c,1}} is not a list containing real values, Infinity, and -Infinity. >>
During evaluation of In[13]:= BinCounts::cvals: The bin specification {{0,a,b,c,1}} is not a list containing real values, Infinity, and -Infinity. >>
During evaluation of In[13]:= BinCounts::cvals: The bin specification {{0,a,b,c,1}} is not a list containing real values, Infinity, and -Infinity. >>
During evaluation of In[13]:= General::stop: Further output of BinCounts::cvals will be suppressed during this calculation. >>
Out[13]= {0., {a -> 0., b -> 0., c -> 1.}}