阅读背景:

外点法、内点法解约束问题matlab

来源:互联网 

在这里插入图片描述

外点法 clc m=zeros(1,50); a=zeros(1,50); b=zeros(1,50);%最优点坐标 f0=zeros(1,50);%最优点函数值 syms d x1 x2 e; m(1)=1;c=10;a(1)=0;b(1)=0; f=x1^2+x2^2+e*(1-x1)^2; f0(1)=1; fx1=diff(f,'x1');fx2=diff(f,'x2'); for k=1:100 x1=a(k); x2=b(k);e=m(k); for n=1:100%梯度法最优值收敛条件求点 f1=subs(fx1); f2=subs(fx2); if(double(sqrt(f1^2+f2^2))<=0.002) a(k+1)=double(x1); b(k+1)=double(x2); f0(k+1)=double(subs(f)); break; else D=(x1-d*f1)^2+(x2-d*f2)^2+e*(1-(x1-d*f1))^2; Dd=diff(D,'d');dd=solve(Dd);x1=x1-dd*f1;x2=x2-dd*f2; end end if (double(sqrt((a(k+1)-a(k))^2+(b(k+1)-b(k))^2))<=0.001)&&(double(abs((f0(k+1)-f0(k))/f0(k)))<=0.001) a(k+1) b(k+1) k f0(k+1) break; else m(k+1)=c*m(k); end end f0(1:k) t=1:1:50; plot(t,f0); ylim([0 1]); xlabel('k值'); ylabel('f值') ans = 0.9999 ans = 0 k = 5 ans = 0.9999 ans = 1.0000 0.5000 0.9091 0.9901 0.9990 外点法 clc m=zeros(1,50); a=zeros(1,50); b=zeros(1,5



你的当前访问异常,请进行认证后继续阅读剩余内容。

分享到: