NMInimize, похоже, находится на трещине

скажем, у меня есть сумасшедшая функция, f , определено вроде так:

util[x_, y_, c_] := 0.5*Log[c-x] + 0.5*Log[c-y]
cost[x_, y_, l_] := c /. First[NSolve[util[x, y, c+l] == Log[10+l], c]]
prof[x_, y_]   := 0.01*Norm[{x,y}, 2]
liquid[x_, y_] := 0.01*Norm[{x,y}, 2]
f[x_, y_, a_, b_] := cost[a, b, liquid[x,y] + liquid[a-x, b-y]] - Max[a,b] 
      - cost[0,0,0] + prof[x,y] + liquid[x,y] + prof[a-x, b-y] + liquid[a-x, b-y]

Теперь я звоню Nminimize Как это:

NMinimize[{f[50, 50, k, j], k >= 49, k <= 51, j >= 49, j <= 51}, {j, k}]

, который говорит мне это:

{-21.0465, {j -> 51., k -> 49.}}

, но тогда, если я на самом деле проверю, что f [50,50,49,51] , это так:

0.489033

, который Довольно отличается от -21.0465, что сказал Нмийнимиз. Это наравнет на курс с nminimize? Ошибки с плавающей точкой усугубляют или athnot? Любые идеи для избиения nminimize (или некоторые такие функции) в представление?

12
задан dreeves 12 September 2011 в 03:20
поделиться