【智能优化算法】改进的AO算法(IAO)
代码原理
基于改进天鹰优化算法(IAO)优化ICEEMDAN参数(IAO-ICEEMDAN),其适应度函数的选择和基本原理与之前讨论的方法类似,具体如下:
排列熵最小:选择这种适应度函数时,优化过程会使得ICEEMDAN分解后的各个固有模态函数(IMF)的排列熵最小化。排列熵度量了信号中相邻数据点的相对排列不确定性。 最小包络熵最小:在这种选择下,适应度函数会使得ICEEMDAN分解后的各个IMF的包络线的熵最小化。包络线是每个IMF的极大值和极小值点之间的连线。
基本原理和步骤如下:
初始化:初始化ICEEMDAN参数和IAO算法参数。 ICEEMDAN分解:使用当前的ICEEMDAN参数对信号进行分解,得到一组IMF。 计算适应度:根据选择的适应度函数,计算每个IMF的适应度值。 优化:使用IAO算法对ICEEMDAN参数进行优化,以使得适应度函数最小化。 更新参数:根据优化结果更新ICEEMDAN参数。 收敛判断:判断算法是否收敛,若未收敛则返回步骤2,否则输出优化后的ICEEMDAN参数。
通过以上步骤,IAO算法能够有效地优化ICEEMDAN的参数,从而更好地适应不同的适应度函数选择,进而优化信号的分解过程。
代码效果图
部分核心代码
%% 优化ICEEMDAN参数
clc;clear;close all
%% 加载数据
load test_signal;
signal=signal(1,1:1000);
%设置采样率来设置时间
N=length(signal);
Fs=1000;%%采样频率自己设置
t=((0:N-1)*1/Fs)';
%% 设定算法参数
% 进化代数,即迭代次数 % 种群规模.
Max_iter=10; sizepop=20;
% 参数范围(ICEEMDAN有两个参数:噪声标准偏差Nstd和实现次数NE, 0.001≤Nstd≤0.5;10≤NE≤100;
% 变量下限 % 变量上限 % 优化参数个数为2,分别为ICEEMDAN的Nstd和NE
lb=[0.001, 10]; ub=[0.5, 100]; dim = length(lb);
%% 选择适应度函数
criterion =2;%选择1时采用的函数是排列熵最小
%选择2时采用的函数是最小包络熵最小
%选择3时采用的函数是信息熵函数最小
%选择4时采用的函数是样本熵函数最小
fobj=@(x) objfun(x,signal,lb,ub,criterion); % 调用定义的目标函数
%% 调用优化算法进行参数寻优
addpath(genpath(pwd));%将算法文件夹添加到路径中
tic
[bestfitness,bestx,Convergence_curve]=IAO(sizepop,Max_iter,lb,ub,dim,fobj);
toc;
rmpath(genpath(pwd));%将算法文件夹从路径中移除
%% 画适应度函数曲线图,并输出最佳参数
figure
plot(Convergence_curve,'Color',[0.9 0.5 0.1],'Marker','>','LineStyle','--','linewidth',1);
title('Objective space');xlabel('Iteration');ylabel('Best score obtained so far');legend('IAO优化ICEEMDAN')%% 优化ICEEMDAN参数
clc;clear;close all
%% 加载数据
load test_signal;
signal=signal(1,1:1000);
%设置采样率来设置时间
N=length(signal);
Fs=1000;%%采样频率自己设置
t=((0:N-1)*1/Fs)';
%% 设定算法参数
% 进化代数,即迭代次数 % 种群规模.
Max_iter=10; sizepop=20;
% 参数范围(ICEEMDAN有两个参数:噪声标准偏差Nstd和实现次数NE, 0.001≤Nstd≤0.5;10≤NE≤100;
% 变量下限 % 变量上限 % 优化参数个数为2,分别为ICEEMDAN的Nstd和NE
lb=[0.001, 10]; ub=[0.5, 100]; dim = length(lb);
%% 选择适应度函数
criterion =2;%选择1时采用的函数是排列熵最小
%选择2时采用的函数是最小包络熵最小
%选择3时采用的函数是信息熵函数最小
%选择4时采用的函数是样本熵函数最小
fobj=@(x) objfun(x,signal,lb,ub,criterion); % 调用定义的目标函数
%% 调用优化算法进行参数寻优
addpath(genpath(pwd));%将算法文件夹添加到路径中
tic
[bestfitness,bestx,Convergence_curve]=IAO(sizepop,Max_iter,lb,ub,dim,fobj);
toc;
rmpath(genpath(pwd));%将算法文件夹从路径中移除
%% 画适应度函数曲线图,并输出最佳参数
figure
plot(Convergence_curve,'Color',[0.9 0.5 0.1],'Marker','>','LineStyle','--','linewidth',1);
title('Objective space');xlabel('Iteration');ylabel('Best score obtained so far');legend('IAO优化ICEEMDAN')
下载链接:https://mbd.pub/o/bread/mbd-ZpeTm59v
赠书活动
《Matlab科研绘图与学术图表绘制从入门到精通》内容简介
本书是一本全面指导读者掌握MATLAB数据可视化的实用指南。全书精心编排了13章内容,旨在帮助读者了解和掌握MATLAB的数据分析和可视化功能。 具体而言:第1章为MATLAB基础;第2章为数据结构;第3章为程序流程控制;第4章为函数;第5章为数据导入与准备;第6章为科技绘图基础;第7章为单变量图形绘制;第8章为双变量图形绘制;第9章为多变量图形绘制;第10章为极坐标相关图形绘制;第11章为3D图形绘制;第12章为地理信息可视化;第13章为数据学术报告、论文和出版。最后还有两个附录:附录1为MATLAB常用函数和工具箱的快速参考指南;附录2为科研论文配图的绘制与配色。 本书从MATLAB的基础知识讲到高级数据可视化技巧,将帮助读者全面掌握科研绘图和学术图表的制作。本书不仅适合新手,也适用于有一定经验的MATLAB用户,是一本高效实用的学习工具书。 京东:https://item.jd.com/14102657.html 当当:http://product.dangdang.com/29702924.html
抽奖方式及满足条件:
1.关注MATLAB科研小白; 2.转发本文到朋友圈; 3.给本文点【赞】、点【在看】; 4.留言区评论点赞最多者。
文章阅读量每满1000免费包邮一本,按评论点赞排序赠书一本:《Matlab科研绘图与学术图表绘制从入门到精通》。
开奖日期:2024年6月31日晚8点。
特别说明:截止时间文章阅读量不满1000不赠送书籍哦,因此需要大家帮忙推广该推文哦。(经常出现个别朋友中奖后联系不到,影响集体发货时间,因此中奖后24小时未联系小编者,名额将顺延至下一位中奖朋友,望大家理解、配合。)