急求运筹学单纯型法的matlab程序代码!期末了急求运筹学上机实验matlab程序代码,题目是单纯型法,知道的请指教,
来源:学生作业帮助网 编辑:六六作业网 时间:2024/11/08 17:34:46
急求运筹学单纯型法的matlab程序代码!期末了急求运筹学上机实验matlab程序代码,题目是单纯型法,知道的请指教,
急求运筹学单纯型法的matlab程序代码!
期末了急求运筹学上机实验matlab程序代码,题目是单纯型法,知道的请指教,
急求运筹学单纯型法的matlab程序代码!期末了急求运筹学上机实验matlab程序代码,题目是单纯型法,知道的请指教,
来自搜索
function [opt_X,opt_S]=Simplexe2(fhandle,X_0,n,lambda,mu,h,epsiro,K)
%:单纯形加速法(教学版)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% 参考文献:
% 林明芳,张宝生等.汽车优化设计.吉林科学技术出版社,1991.P61-67
% Write By [email protected] 2005.9
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Input:
% -fhandle 函数句柄
% -X_0 n维初始列向量
% -n 维数
% -lambda 步长压缩系数!=0.5 (0 1)
% -mu 步长加大系数>1
% -h 单纯形边长
% -epsiro 精度
% -K 最大寻优次数
% Output:
% -opt_X 最优值点
% -opt_S 最优值
% Example:
% >>f3=inline('60-10*x(1)-4*x(2)+x(1)^2+x(2)^2-x(1)*x(2)');
% >>Simplexe2(f3,[0;0],2,0.618,2,2,0.001,20)
% >>fminsearch(f3,[0;0])
SearchTime=1;
%:初始单纯形
X=repmat(X_0,1,n)+h*eye(n);
X=[X_0,X];
%:初始化S,单纯形各点处函数值
S=inf(1,n);
for i=1:n+1
S(i)=Getfval(fhandle,X(:,i));
end
%:初始化SH,SG,SL,(最差点,次差点,最好点)
[SH,SG,SL,iXH,iXG,iXL]=GetShgl(S);
%:单纯性搜索寻优
while abs(SH-SL)>=epsiro*abs(SL) %按精度收敛
%:寻找反射线上最优点XS,SS
XR=GetXR(X,X(:,iXH));
SR=Getfval(fhandle,XR);
if SR>=SG%:步长压缩
XS=(1-lambda)*X(:,iXH)+lambda*XR;
SS=Getfval(fhandle,XS);
if SS>=SG %:单纯形收缩
for i=1:n+1
X(:,i)=(X(:,iXL)+X(:,i))/2;
end
end
elseif ((1-mu)*SH+mu*SR)