第21讲MATLAB源程序.zip
大小:2.47KB
价格:17积分
下载量:0
评分:
5.0
上传者:2301_80373033
更新日期:2025-09-22

第21讲MATLAB源程序.zip

资源文件列表(大概)

文件名
大小
第20讲MATLAB源程序/
-
第20讲MATLAB源程序/exp12_2_3.m
1.23KB
第20讲MATLAB源程序/exp12_2_4.m
1.4KB
第20讲MATLAB源程序/fun_mutv.m
139B
第20讲MATLAB源程序/fun_sigv.m
47B

资源内容介绍

第21讲MATLAB源程序.zip
clcclear allopt_minmax=1; %目标优化类型:1最大化、-1最小化sub=-10; %变量取值下限up=10; %变量取值上限delt=(up-sub)/5;yita=0.99;trace=[]; %模拟退火迭代性能跟踪器k_total=3000; %迭代总次数[tx,ty]=meshgrid(sub:.1:up);tz=fun_mutv(tx,ty);T=max(max(tz))-min(min(tz)); %模拟温度初始化mesh(tx,ty,tz)xlabel('x')ylabel('y')zlabel('z')title('多元函数优化结果')hold onx0=[sub+(up-sub)*rand,sub+(up-sub)*rand];f0=fun_mutv(x0(1),x0(2)); %随机产生初始点k=0;plot3(x0(1),x0(2),f0,'ko','linewidth',2) %在函数图像上标出初始点位置while k<k_total x1=[x0(1)+(2*rand-1)*delt,x0(2)+(2*rand-1)*delt]; x1=[min(x1(1),up),min(x1(2),up)]; x1=[max(x1(1),sub),max(x1(2),sub)]; %在当前点附近随机产生下一个迭代点位置,并保证在所考查区域内 f1=fun_mutv(x1(1),x1(2)); if opt_minmax*f1>opt_minmax*f0 %迭代点优于当前点,接受迭代结果并设置为当前点 x0=x1; f0=f1; elseif rand<exp(opt_minmax*(f1-f0)/T) %迭代点劣于当前点,以boltzmann概率接受迭代结果并设置为当前点 x0=x1; f0=f1; end T=yita*T; %以缓慢速度衰减温度T k=k+1; trace=[trace;f0]; %跟踪模拟退火的迭代优化过程 [x0,f0]endplot3(x0(1),x0(2),f0,'k*','linewidth',2)figureplot(trace(:),'r-*')hold onxlabel('迭代次数')ylabel('目标函数优化情况')title('多元函数优化过程')

用户评论 (0)

发表评论

captcha