function cal %主函数
x0 = rand(3,1);
A = []; b = []; %线性约束不等式
Aeq = []; beq = []; %线性约束等式
vlb = zeros(3,1); vub = []; %变量的上界,下界
[x, fval] = fmincon(@target, x0, A, b, Aeq, beq, vlb, vub, @constrait) %一定要注意这里不要写分号,不然就无法输出结果
function f = target(x); %目标函数
f = sum(x .^ 2) + 8;
function [c, ceq] = constrait(x)
c = [-x(1)^2 + x(2) - x(3)^2 x(1) + x(2)^2 + x(3)^3 - 20]; %非线性不等式约束
ceq = [-x(1) - x(2)^2 + 2 x(2) + 2*x(3)^2 - 3]; %非线性等式约束
matlab---非线性规划
最新推荐文章于 2024-04-16 21:58:27 发布