Рациональная целевая функция, основанная на проблеме

Основанный на проблеме подход к оптимизации включает переменные оптимизации создания и выражение цели и ограничений с точки зрения тех переменных.

Рациональная функция является частным полиномов. Когда целевая функция является рациональной функцией переменных оптимизации, можно создать выражение целевой функции непосредственно из переменных. (Напротив, когда ваша целевая функция не является рациональной функцией, необходимо создать функцию MATLAB®, которая представляет цель, и затем преобразуйте функцию в выражение при помощи fcn2optimexpr.)

Например, запишите целевую функцию

f=(x-y)24+(x+y)4x+y21+y2

с точки зрения двух переменных x и y оптимизации.

x = optimvar('x');
y = optimvar('y');
f = (x-y)^2/(4+(x+y)^4)*(x+y^2)/(1+y^2);

Чтобы найти минимум этой целевой функции, создайте задачу оптимизации с f как цель, установите начальную точку и вызовите solve.

prob = optimproblem('Objective',f);
x0.x = -1;
x0.y = 1;
[sol,fval,exitflag,output] = solve(prob,x0)
Local minimum found.

Optimization completed because the size of the gradient is less than
the value of the optimality tolerance.
sol = struct with fields:
    x: -2.1423
    y: 0.7937

fval = -1.0945
exitflag = 
    OptimalSolution

output = struct with fields:
       iterations: 9
        funcCount: 30
         stepsize: 1.7081e-06
     lssteplength: 1
    firstorderopt: 1.3411e-07
        algorithm: 'quasi-newton'
          message: '...'
           solver: 'fminunc'

Выходной флаг показывает, что решение, о котором сообщают, является локальным минимумом. Выходная структура показывает, что решатель взял всего 30 функциональных оценок, чтобы достигнуть минимума.

Смотрите также

Похожие темы

Для просмотра документации необходимо авторизоваться на сайте