不知楼主说的没法求出优化值,是什么意思。是报错还是怎么。
我也是刚接触优化,觉得楼主的错误可能是在:主函数里 A=[-1;1];的括号中间应该用逗号,而不是分号。即改为A=[-1,1];
我对你的程序做了一点改动,如下:
function f=myobj(x)
f=x(1)^2-x(2)^2;
function [c,ceq]=mycon1(x)
c(1)=(32/15)^2-x(1)^2-x(2)^2;
c(2)=480000/3.14-x(1)^3+(x(2)^4)/x(1);
ceq=[];
x0=[0;0];
A=[-1,1];
b=-3.5;
lb=[0,0];
ub=[];
[x,fval,exitflag,output]= fmincon(@myobj,x0,A,b,[],[],lb,ub, @mycon1)
运行结果如下,虽然出了结果,但我感觉略奇怪,是不是优化结果确实这样:
x =
0
0
fval =
0
exitflag =
-2
output =
iterations: 1
funcCount: 3
lssteplength: 1
stepsize: 0
algorithm: 'medium-scale: SQP, Quasi-Newton, line-search'
firstorderopt: []
constrviolation: 4.5511
message: [1x750 char],