kevin_sky 发表于 2009-3-4 15:42

关于fmincon函数非线性限制的问题

我用fmincon时,加了非线性限制(见mycon),但fmincon在迭代参数时,有的参数却不满足mycon中的限制,这是为什么呢?上mathworks的网站查了,好像没有我要的答案。。。。请各位大侠帮忙了~~~
下面是我用fmincon的程序。
%----------------------------
options=optimset('Display','iter','maxfunevals',inf,'maxiter',10,'LargeScale','off');
AAA=zeros(4,26);
AAA(1:2,4)=1;
AAA(1,22)=-1;
AAA(2,20)=-1;
AAA(3,8)=-1;
AAA(3,16)=-1;
AAA(4,9)=-1;
AAA(4,17)=-1;
bbb=;
lb=repmat(-inf,26,1);
ub=repmat(inf,26,1);
lb(8:9)=0.50001;
lb(10:11)=0.00001;
lb(15)=0.00001;%
lb(26)=0.00001;
ub(2)=0;ub(4)=0;

=fmincon(@kalfun_ext23,param0,AAA,bbb,[],[],lb,ub,@mycon,options);

function =mycon(param)
kQ12=reshape(param(1:6),3,2);
kQ3=;
kQ=;
ktQ=;
alpha=;
beta=;
a=param(12);
b=reshape(param(13:15),3,1);
lamda1=reshape(param(16:18),3,1);
lamda21=reshape(param(19:24),3,2);
lamda22=;
lamda2=;
k=kQ-lamda2;
theta=inv(k)*(ktQ + lamda1);
thetaQ=inv(kQ)*ktQ;
c=zeros(12,1);
c(1:3)=-eig(kQ)+;
c(4:5)=-thetaQ(1:2)+;
c(6:8)=-eig(k)+;
c(9:10)=-theta(1:2)+;
c(11:12)=-k(1:2,:);
ceq=0;

ChaChing 发表于 2009-3-4 18:49

回复 楼主 kevin_sky 的帖子

LZ给的不齐无法试跑!
页: [1]
查看完整版本: 关于fmincon函数非线性限制的问题