matlab中的fmincon函数运行出错,老是显示最后一句话不对,求大神指导

2024-12-01 05:36:02
推荐回答(1个)
回答(1):

matlab中的fmincon函数运行出错的最大问题是,k、p不能是变量,而是一个具体的数值。

建议这样来改代码

k=0.95717,p =0.48538

%syms k

A=[1 -1;k+2 -2;k -2*k];

b=[0;k-1;1-k];

Aeq=[];

beq=[];

lb=[0;0];

ub=[1;1];

x0=[0.5;0.5];

[x,fval,exitflag]=fmincon(@(x)myobj(k,x),x0,A,b,[],[],lb,ub,@(x)mycon(p,x))

function f=myobj(k,x)

f=(k-1+2*x(2)-2*x(1)-k*x(1))^2/(2*(k+1));

end

function [c,ceq] = mycon(p,x)

c=[] ;

%syms p

ceq(1)=2*(2*x(2)-2*x(2)^2+2*x(1)*x(2)-x(1)-x(1)^2)-p; %=0

end