代码如下:

fun = @(x) x(1)^2 + x(2)^2;
A = [1 1; -1 0; 0 -1];
b = [1; -0.25; -0.25];
x0 = [0;0];
[x,fval] = fmincon(fun,x0,A,b,[],[],[],[],@nlcon);
disp(x);

其中,fun为目标函数,Ab为不等式约束条件,x0为初始点,[]表示没有等式约束条件,@nlcon为非线性约束函数。

非线性约束函数的代码如下:

function [c,ceq] = nlcon(x)
ceq = x(1)^2 + x(2) - 0.25;
c = [x(1) + x(2)^2 - 0.25; -x(1) - x(2) + 1];
end

运行结果如下:

x =

   -0.2500
         0

fval =

    0.0625

因此,当$x=-0.25$,$y=0$时,目标函数取得最小值$0.0625$,满足约束条件。

使用fmincon求解下述非线性规划问题minimize x^2 + y^2subject to x + y = 1x^2 + y= 025x + y^2 = 025

原文地址: http://www.cveoy.top/t/topic/fq0m 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录