马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?我要加入
x
本帖最后由 licm 于 2011-3-31 17:27 编辑
不知道错误出在哪里,
源程序:function y=za(z)
[a,c]=size(z);
f=[];
for i=1:c
f(i)=z(1,i)-z(a,i);
end
[minv,columnx]=min(f)
z0=z(:,columnx);%choose the optimal solution
[maxg,columng]=max(consg(z0));
syms z1 z2 z3 z3 z4 z5 z6 z7 z8 z9 z10;
cc=c;
while maxg>0
gradg=jacobian([z1+z2^2,z2^3],[z1,z2,z3,z4,z5,z6,z7,z8,z9,z10]);
gradp=subs(gradg(columng,:),{z1,z2,z3,z4,z5,z6,z7,z8,z9,z10},{z0(1),z0(2),z0(3),z0(4),z0(5),z0(6),z0(7),z0(8),z0(9),z0(10)});
grad=double(gradp);
p0=double(maxg);
Vne=[];
l=[];
for i=1:cc
l(i)=grad*(z(:,i)-z0)+p0;
if l(i)<=0
Vne=[Vne z(:,i)];
end
end
z=Vne;
[a,cc]=size(z);
f=[];
for i=1:cc
f(i)=z(1,i)-z(a,i);
end
[minv,columnx]=min(f);
z0=z(:,columnx);
[maxg,columng]=max(consg(z0));
end
运行结果 ??? Attempted to access z(1); index out of bounds because numel(z)=0.
Error in ==> consg at 4
g=[z(1)+z(2)^2,z(2)^3];
Error in ==> za at 45
[maxg,columng]=max(consg(z0));
|