中易网

请教高手MATLAB约束非线性规划/一M文件的调试

答案:1  悬赏:0  
解决时间 2021-04-27 22:16
  • 提问者网友:乏味沐染
  • 2021-04-27 13:15

%目标函数
function f=fun2(w)
n=length(w);
y=zeros(n,1);
i=1:n;
y(i)=w(i).^2;
f=sum(y);

%非线性等式约束
function [c,ceq]=myfuntestcon(w)
c=[];
s=length(w);
u=zeros(s,1);
i=1:s;
u(i)=w(i);
v=sum(u);
ceq=v-0.5;

w0=ones(64,1); %初始值
options=optimset;
options.LargeScale='off';
options.MediumScale='on';
%线性不等式约束
f=5500;a=1.2*log(10);B=0.8;z=60;L=0.2;d=1.2;N=128;c=5800;D=N*L+(N-1)*d;
X=zeros(N,1);
for k=1:N;
if k<65;
x(k)=-(64-k)*(d+L)-(d+L)/2;
else x(k)=-x(129-k);
end
X(k)=x(k);
end
y=2:0.5:30;
for k=1:length(y);
for n=64:(-1):1;
T1=sqrt((X(n)-y(k)).^2+z^2)/c;
T11=sqrt((X(n)+y(k)).^2+z^2)/c;
T2=(sqrt(D^2/4+z^2)-sqrt(X(n).^2+z^2))/c;
T=T1+T2;
T3=T11+T2;
t1=(sqrt(z^2+(D/2+y(k)).^2))/c;
t=t1-T;
t3=t1-T3;
s=exp(-(pi*B*f.*t).^2/a).*cos(2*pi*f.*t);
s1=exp(-(pi*B*f.*t3).^2/a).*cos(2*pi*f.*t3);
A(k,n)=(s.*exp(j*2*pi*f.*T))+(s1.*exp(j*2*pi*f.*T3));
end
end
b=10^(-6)*ones(length(y),1);
[w,fval]=fmincon(@fun2,w0,A,b,[],[],[],[],@myfuntestcon,options)

怎么结果错误且总显示Optimization terminated: first-order optimality measure less than options.TolFun
and maximum constraint violation is less than options.TolCon.
No active inequalities.

最佳答案
  • 二级知识专家网友:woshuo
  • 2021-04-27 14:47
你好。
很幸运看到你的问题。
但是又很遗憾到现在还没有人回答你的问题。也可能你现在已经在别的地方找到了答案,那就得恭喜你啦。
可能是你问的问题有些专业了,没人会。或者别人没有遇到或者接触过你的问题,所以帮不了你。建议你去问题的相关论坛去求助,那里的人通常比较多,也比较热心,可能能快点帮你解决问题。
希望我的回答也能够帮到你!
祝你好运~!
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息!
大家都在看
推荐信息