Максимизация по сравнению с минимизацией

Оптимизационные функции Global Optimization Toolbox минимизируют цель (или фитнес) функция. Таким образом, они решают задачи формы

minxf(x).

Если вы хотите максимизировать f (x), минимизировать –f (x), потому что точка, в которой происходит минимум –f (x), совпадает с точкой, в которой происходит максимум f (x).

Например, предположите, что вы хотите максимизировать функцию

f(x)=exp((x12+x22))(x122x1x2+6x1+4x223x2).

Запишите функцию, чтобы вычислить

g(x)=f(x)=exp((x12+x22))(x122x1x2+6x1+4x223x2),

и затем минимизируйте g (x). Запустите с точки x0 = [0 0].

f = @(x)exp(-(x(1)^2 + x(2)^2))*(x(1)^2 - 2*x(1)*x(2) + 6*x(1) + 4*x(2)^2 - 3*x(2));
g = @(x)-f(x);
x0 = [0 0];
[xmin,gmin] = fminsearch(g,x0)
xmin =

    0.5550   -0.5919


gmin =

   -3.8683

Максимум f является значением f (xmin), который является –gmin.

f(xmin)
ans =

    3.8683

Похожие темы