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

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

Рациональная функция является частным полиномов. Когда целевая функция является рациональной функцией переменных оптимизации или другой поддерживаемой функции, можно создать выражение целевой функции непосредственно из переменных. В отличие от этого, когда ваша целевая функция не является поддерживаемой функцией, необходимо создать функцию 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)
Solving problem using fminunc.

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: 10
               stepsize: 1.7073e-06
           lssteplength: 1
          firstorderopt: 1.4999e-07
              algorithm: 'quasi-newton'
                message: '...'
    objectivederivative: "reverse-AD"
                 solver: 'fminunc'

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

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

Похожие темы