✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。
🍎个人主页:Matlab科研工作室
🍊个人信条:格物致知。
更多Matlab仿真内容点击👇
⛄ 内容介绍
针对哈里斯鹰优化算法收敛精度低,易陷入局部最优空间等局限性,提出一种混合策略改进的哈里斯鹰优化算法.采用精英混沌反向学习策略初始化种群,增加初始种群多样性和精英个体数量,提高算法收敛性能;利用引入动态自适应权重的逃逸能量非线性递减策略替代哈里斯鹰算法的线性递减机制,提高算法全局探索和局部开发行为的平衡能力;采用拉普拉斯交叉算子策略生成适应度更高的新个体,提高算法抗停滞能力.对10个测试函数进行求解,结果表明改进算法的收敛精度,寻优性能及鲁棒性明显高于对比算法.通过对比改进前后算法的种群分布均匀性和收敛能力,验证了改进策略的有效性.
⛄ 部分代码
% ITU-R P.676-9, Annex 2 method for computing atmospheric attenuationclose all; clear all;p=1013; % pressure in hPa (1 atm=1013 hPa)t=15; % atmospheric temp in C, determine from maps in P.1510 if not knownrho=7.5 % water vapor density (g/m^3)rp=p/1013;rt=288/(273+t);% Compute and plot specific attenuationi1=1;for f=1:350 ff(i1)=f; gamdry(i1)=gamo(f,rp,rt); gamwat(i1)=gamw(f,rp,rt,rho); i1=i1+1;endfigureset(gca,'Fontsize',14)loglog(ff,gamdry,'linewidth',3)hold onloglog(ff,gamwat,'r--','linewidth',3)loglog(ff,gamdry+gamwat,'ko','markersize',8)xlabel('Frequency (GHz)')ylabel('Specific attenuation (dB/km)')grid onaxis([1 350 1e-3 1e2])set(gca,'Xtick',[1:10 20:10:100 200 350])set(gca,'Xticklabel',{'1';'2';'';'';'5';'';'';'';'';'10';'20';'';'';'50';'';'';'';'';'100';'200';'350'})set(gca,'Ytick',[0.001 0.01 0.1 1 10 100])set(gca,'Yticklabel',['0.001';' 0.01';' 0.1 ';' 1 ';' 10 ';' 100 '])legend('Oxygen','Water Vapor','Total')title('1 atm, 15^\circ C, \rho=7.5 g/m^3')% Compute and plot zenith attenuationi1=1;for f=1:350 ff(i1)=f; t1=4.64/(1+0.066*rp^-2.3)*exp(-((f-59.7)/(2.87+12.4*exp(-7.9*rp)))^2); t2=0.14*exp(2.12*rp)/((f-118.75)^2+0.031*exp(2.2*rp)); t3=0.0114/(1+0.14*rp^-2.6)*f*(-0.0247+0.0001*f+1.61e-6*f^2)/(1-0.0169*f+4.1e-5*f^2+3.2e-7*f^3); ho=6.1/(1+0.17*rp^-1.1)*(1+t1+t2+t3); if (f<70)&(ho>10.7*rp^0.3) ho=10.7*rp^0.3; display('Violated condition!'); drawnow; end; sigw=1.013/(1+exp(-8.6*(rp-0.57))); hw=1.66*(1+1.39*sigw/((f-22.235)^2+2.56*sigw)+3.37*sigw/((f-183.31)^2+4.69*sigw)+1.58*sigw/((f-325.1)^2+2.89*sigw)); attendry(i1)=ho*gamo(f,rp,rt); attenwat(i1)=hw*gamw(f,rp,rt,rho); i1=i1+1;endfigureset(gca,'Fontsize',14)loglog(ff,attendry,'b','linewidth',3)hold onloglog(ff,attenwat,'r--','linewidth',3)loglog(ff,attendry+attenwat,'ko','markersize',8)xlabel('工作频率 (GHz)')ylabel('大气气体吸收衰减 (dB)')grid onaxis([1 350 1e-3 1e3])set(gca,'Xtick',[1:10 20:10:100 200 350])set(gca,'Xticklabel',{'1';'2';'';'';'5';'';'';'';'';'10';'20';'';'';'50';'';'';'';'';'100';'200';'350'})set(gca,'Ytick',[0.001 0.01 0.1 1 10 100 1000])set(gca,'Yticklabel',['0.001';' 0.01';' 0.1 ';' 1 ';' 10 ';' 100 ';' 1000'])legend('氧气','水蒸气','总吸收损耗')title('1 atm, 15^\circ C, \rho=7.5 g/m^3')
⛄ 运行结果
⛄ 参考文献
[1]张海林,陈泯融.基于混合策略的改进哈里斯鹰优化算法[J].计算机系统应用, 2023, 32(1):166-178.