%Задайте целевую функцию f = @(x) x(1)^2 + x(2)^2 + 2*x(1)*x(2) + 2*x(1) + 6*x(2); %Задайте нелинейные ограничения nonlcon = @(x) [x(1)^2 + x(2)^2 - 2; x(1) - x(2)^2 + 2]; %Задайте верхнюю и нижнюю границы для переменных lb = [-inf; -inf]; ub = [inf; inf]; %Задайте размер области доверия и другие параметры options = optimoptions('fmincon','Algorithm','sqp',... %параметры оптимизации 'SpecifyObjectiveGradient',true,'SpecifyConstraintGradient',true,... 'Display','iter','OptimalityTolerance',1e-6,'StepTolerance',1e-6,... 'MaxIterations',1000,'MaxFunctionEvaluations',10000); problem = struct('objective',f,'x0',[0;0],'nonlcon',nonlcon,'lb',lb,'ub',ub,'options',options); % Решить программу последовательного квадратичного вычисления области [x,fval,exitflag,output] = fmincon(problem);
时间: 2023-12-30 22:05:40 浏览: 81
SavingsAccount:«4.2。 Заключительнаялекция»
这是一个使用 MATLAB 的 fmincon 函数来进行非线性规划的例子。其中,目标函数 f 是一个关于两个变量 x1 和 x2 的二次函数,非线性约束条件由 nonlcon 函数给出,变量的上下界由 lb 和 ub 给出。options 指定了优化算法的参数。最后,将问题传递给 fmincon 函数进行求解。求解结果包括最优解 x,目标函数在最优解处的取值 fval,退出标志 exitflag 和输出信息 output。
阅读全文