好文档 - 专业文书写作范文服务资料分享网站

约束优化方法与MATLAB实现

天下 分享 时间: 加入收藏 我要投稿 点赞

例5-1 MATLAB实现,用M函数文件形式求解: syms s t

f=(s-5)^2+4*(t-6)^2;

g=[s^2+t^2-64;s-t+10;10-s]; X=[6.2 7.8 8.2;11 12 9.8];

[ x,minf]=minconSimpSearch2(f,g,X,1.3,0.7,1,0.7,[s t])

复合形法minconSimpSearch2函数文件如下:

function[ x,minf]=minconSimpSearch2(f,g,X,alpha,sita,gama,beta,var,eps) % f:目标函数 % g:约束函数 % X:初始复合形 % alpha:反射系数 % sita:紧缩系数 % gama:扩展系数 % beta:收缩系数 % var:自变量向量 % eps:精度

% x:目标函数取最小值时的自变量 % minf:目标函数的最小值

if nargin==8 %函数参量个数 eps=1.0e-6; end N=size(X); n=N(2); FX=zeros(1,n); while 1 for i=1:n

FX(i)=subs(f,var,X(:,i)); end

[XS,IX]=sort(FX);

Xsorted=X(:,IX) ; %按照IX的顺序重新排列X

px=sum(Xsorted(:,1:(n-1)),2)/(n-1); %sum(a,2),a矩阵行相加 Xsorted(:,1:2)保留Xsort的1,2列。

中心点坐标。

Fpx=subs(f,var,px); %中心点函数值 SumF=0; for i=1:n

SumF=SumF+(FX(IX(i))-Fpx)^2; %判断收敛 end SumF=sqrt(SumF/(n-1)); if SumF<=eps x=Xsorted(:,1); break; else

bcon_1=1; cof_alpha=alpha;

while bcon_1

x2=px+cof_alpha*(px-Xsorted(:,n)); %算反射点的坐标 gx2=subs(g,var,x2); %看有没有出界 if min(gx2)>=0 bcon_1=0; else

cof_alpha=0.7*(cof_alpha); end end

fx2=subs(f,var,x2); if fx2

x3=x2+cof_gama*(x2-px); gx3=subs(g,var,x3); fx3=subs(f,var,x3); if min(gx3)>=0

bcon_2=0; if fx3

count=2; end else

bcon_2=0; count=3 ; end end if count==1 Xsorted(:,n)=x3; X=Xsorted; continue else

Xsorted(:,n)=x2; X=Xsorted; continue end else

if fx2

%反射点函数值 %扩张步骤,感觉应该用x2代贴第一部分px if fx2

Xsorted(:,n)=x2; cof_beta=beta; bcon_3=1;

while bcon_3<4

x4=Xsorted(:,n)+cof_beta*(px-Xsorted(:,n)); gx4=subs(g,var,x4); if min(gx4)>=0 bcon_3=5; else

cof_beta=cof_beta/2; bcon_3=bcon_3+1; end end

if min(gx4)>=0 fx4=subs(f,var,x4);

FNnew=subs(f,var,Xsorted(:,n)); if fx4

x0=Xsorted(:,1); for i=1:n

Xsorted(:,i)=x0+sita*(Xsorted(:,i)-x0); end end else

x0=Xsorted(:,1); for i=1:n

Xsorted(:,i)=x0+sita*(Xsorted(:,i)-x0); X=Xsorted; continue end end else

x0=Xsorted(:,1); for i=1:n

Xsorted(:,i)=x0+sita*(Xsorted(:,i)-x0); X=Xsorted; continue end end end

约束优化方法与MATLAB实现

例5-1MATLAB实现,用M函数文件形式求解:symsstf=(s-5)^2+4*(t-6)^2;g=[s^2+t^2-64;s-t+10;10-s];X=[6.27.88.2;11129.8];[x,minf]=minconSimpSearch2(f,g,X,1.3,0.7,1,0.7,[st
推荐度:
点击下载文档文档为doc格式
9zbpe43twe7px008twlp8xswm2yhdw015jp
领取福利

微信扫码领取福利

微信扫码分享