Максимизация и минимизация

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

Похожие темы