粒子群算法PSO优化VMD,适应度函数为最小样本熵或最小包络熵(可自行选择,代码已集成好,很方便修改)包含MATLAB源代码

news2024/12/25 13:47:51

近期评论区有小伙伴私信需要粒子群优化算法PSO法化VMD的,所以打算再写一篇。

与上一篇灰狼算法优化VMD相似,这篇文章也是以最小样本熵或最小包络熵为适应度函数的,好的,废话不多说,大家不懂得可以看这篇文章。灰狼优化算法GWO,优化VMD,适应度函数为最小样本熵或最小包络熵(可自行选择,代码已集成好,很方便修改)包含MATLAB源代码_今天吃饺子的博客-CSDN博客

 浅浅说一嘴,粒子群的速度确实是很快的,至于精度嘛,这个还是需要大家与我之前的几篇文章对比对比了哈。

老规矩,先上结果图:

首先是以最小样本熵为适应度函数的结果图:

 然后是最小包络熵为适应度函数的结果图:

上代码:

%% 以最小包络熵或最小样本熵为目标函数,采用PSO算法优化VMD,求取VMD最佳的两个参数
clear all
clc
addpath(genpath(pwd))
load 105.mat
D=2;             % 优化变量数目
lb = [100 3];
ub = [2500 10];
dim = 2;
Max_iter=40;       % 最大迭代数目
SearchAgents_no=15;       % 种群规模
xz = 1;  %xz=1 or 2, 选择1,以最小包络熵为适应度函数,选择2,以最小样本熵为适应度函数。
if xz == 1  
    fobj=@EnvelopeCost;
else
    fobj=@SampleCost;
end

da = X105_DE_time(6001:7000); %这里选取105的DEtime数据
[gBestScore,gBest,cg_curve]=PSO(SearchAgents_no,Max_iter,lb,ub,dim,fobj,da);

%画适应度函数图
figure
plot(cg_curve,'Color',[0.9 0.5 0.1],'Marker','>','LineStyle','--','linewidth',1);

title('Objective space')
xlabel('Iteration');
ylabel('Best score obtained so far');
legend('PSO优化VMD')
display(['The best solution obtained by PSO is : ', num2str(round(gBest))]);  %输出最佳位置
display(['The best optimal value of the objective funciton found by pso is : ', num2str(gBestScore)]);  %输出最佳适应度值

大家注意看到xz这个变量,当选择是 xz=1,就是以最小包络熵为适应度函数,选择 xz=2,就是以最小样本熵为适应度函数。这样大家切换起来就很方便了!

完整代码获取:下方卡片回复关键词:PSOVMD

觉着不错的给博主留个小赞吧!您的一个小赞就是博主更新的动力!谢谢!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/697470.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

《TCP IP网络编程》

2023.6.28 正式开始学习网络编程。 每一章每一节的笔记都会记录在博客中以便复习。 第1章 1.1理解网络编程和套接字 网络编程又叫套接字编程。所谓网络编程,就是编写程序使两台连网的计算机相互交换数据。 为什么叫套接字编程? 我们平常将插头插入插座上…

QT中把QWidget提升为自定义控件后样式表无效的原因

按照QT帮助手册的描述,当我们继承QWidget写了自己的类以后,必须要覆盖重写painterEvent函数。否则自定义类的样式表就不能生效。 这一点要切记。当你想继承QWidget时,不如直接继承上图的CustomWidget或者QFrame。 换句话说,永远不…

NXP i.MX 8M Mini的视频开发案例分享 (下)

本文主要介绍i.MX 8M Mini的视频开发案例,包含基于GStreamer的视频采集、编解码、算法处理、显示以及存储案例,GigE工业相机测试说明,H.265视频硬件解码功能演示说明等。 注:本案例评估版采用的是创龙科技TLIMX8-EVM,…

真的好用吗?鲜有人提的 RabbitMQ-RPC模式

RabbitMQ系列文章 手把手教你,本地RabbitMQ服务搭建(windows) 消息队列选型——为什么选择RabbitMQ RabbitMQ灵活运用,怎么理解五种消息模型 RabbitMQ 能保证消息可靠性吗 推或拉? RabbitMQ 消费模式该如何选择 死信是…

2023年3季度广州/深圳DAMA-CDGA/CDGP数据治理认证招生

DAMA认证为数据管理专业人士提供职业目标晋升规划,彰显了职业发展里程碑及发展阶梯定义,帮助数据管理从业人士获得企业数字化转型战略下的必备职业能力,促进开展工作实践应用及实际问题解决,形成企业所需的新数字经济下的核心职业…

【C语言%的多种用法】

C语言%的多种用法 C语言中%号那些事儿1、%之取余运算符的使用2、%之作格式符使用2.1、C语言格式符 3、%之搭配 * 的使用4、%之搭配 # 的使用5、客套话 C语言中%号那些事儿 前言: 众所周知:%百分号,在九年义务教育中,表示分数的分…

图片识别文字怎么做?这几种方法轻松解决

在现代社会,图片已经成为人们日常生活和工作中不可或缺的一部分。但是,由于图片中往往包含了大量的文字信息,如果要手动输入这些文字,不仅费时费力,而且容易出错。因此,将图片中的文字进行识别已经成为我们…

应用打包部署k8s (包括dockerfile打包及仓库上传)

文章目录 一、docker run 运行测试1.数据库测试2.接口测试3.前端界面测试 二、编写dockerfile1.前端2.后端 三、推送镜像(后面k8s就从这里获取镜像了)四.编写 docker-compose.yml五.K8s部署1.yaml文件编写及部署houduan-deployment.yamlhouduan-service.…

【STM32】F103 时钟树

STM32F103是一款基于ARM Cortex-M3内核的32位微控制器,它具有丰富的外设资源和灵活的时钟配置。本文将从以下几个方面介绍STM32F103的时钟树: 时钟树的概念和作用时钟树的组成和分类时钟树的配置方法和步骤时钟树的应用实例 一、时钟树的概念和作用二、时…

如何通过Nacos获取当前服务注册的IP信息

一台机器可能存在多个网卡也就同时存在多个IP地址,如果我想知道我这个服务在向Nacos注册的时候使用的哪一个IP该怎么获取呢? 非常简单,你可以通过这种方式获取 import com.alibaba.cloud.nacos.NacosDiscoveryProperties; import org.springframework.boot.CommandLineRunne…

Angular 调试 —— 一个真实的多重循环导致的Bug

导致性能问题的原因可能很复杂&#xff0c;也可能很简单&#xff0c;今天让我们来看一个现实的例子。一个多重循环导致列表卡死。 startDemo() {this.processing true// 创建复杂数据结构const data [];for (let i 0; i < 5000; i) {const innerArray [];for (let j …

【数据压缩】LZ77算法原理及实现

1. 引言 LZ77算法是采用字典做数据压缩的算法,由以色列的两位大神Jacob Ziv与Abraham Lempel在1977年发表的论文《A Universal Algorithm for Sequential Data Compression》中提出。 基于统计的数据压缩编码,比如Huffman编码,需要得到先验知识——信源的字符频率,然后进…

EasyExcel导出csv文件,用Office Excel打开乱码

1.前言 导出的列里有中文&#xff0c;导出后用Excel打开乱码 2.原因 搜索相关资料&#xff0c;csv和excel的编码不一致&#xff0c;需要在导出csv的时候设置编码GBK 3.验证

多级时间轮定时器

一. 多级时间轮实现框架 ​上图是5个时间轮级联的效果图。中间的大轮是工作轮&#xff0c;只有在它上的任务才会被执行&#xff1b;其他轮上的任务时间到后迁移到下一级轮上&#xff0c;他们最终都会迁移到工作轮上而被调度执行。 多级时间轮的原理也容易理解&#xff1a;就拿时…

实用工具|教你如何使用备份神器 Rclone,手把手保姆级教程

目录 什么是Rclone 功能 特性 支持的提供商 虚拟提供商 使用 安装 配置 语法 命令列表 常用参数 日志 过滤 环境变量 最佳实践 什么是Rclone Rclone是一个用于管理云存储上的文件的命令行程序。它是云供应商web存储接口的一个功能丰富的替代方案。超过40种云存储…

【Java高级编程】Java集合

Java集合 1、Java集合框架概述1.1、集合框架的概述1.2、集合框架 2、Collection接口方法3、Iterator迭代器接口3.1、Iterator迭代器概述3.1、Iterator的使用 4、Conllection子接口一&#xff1a;List4.1、List框架4.2、ArrayList的源码分析4.3、面试题&#xff1a;ArrayList、L…

掌握这些vue内容,让你在提升代码复用上不再纠结!

前端工程化的最终目的都是为了能够更好地维护代码。代码复用是提升效率和可维护性的利器。 vue 中针对不同场景和业务情况&#xff0c;提供了各种方式。全面了解这些内容&#xff0c;可以在开发过程中让你得心应手&#xff01; 方式建议组件主要的构建模块组合式函数侧重于有状…

【单片机】STM32单片机,定时器,多路PWM,TIM1、TIM2、TIM3、TIM4,STM32F103

文章目录 STM32中文参考手册V10.pdfTIM1 的四路PWMTIM2 的四路PWMTIM3 的四路PWMTIM4 的四路PWM STM32中文参考手册V10.pdf 在《STM32中文参考手册V10.pdf》有写&#xff1a; TIM1 的四路PWM TIM1 的PWM是带互补输出的&#xff0c;较为高级和复杂&#xff0c;有兴趣可以参…

Z3Ordering编码及查询c++实现 (GeoMesa翻译)

网上搜了很多Z3-Ordering实现没搜到,通过 sfcurve-master和geomesa-geomesa-3.2.2 得scala代码改编而来, 环境为C, vs2015, 理论上windows和Linux都可以用. 不依赖任何库, 这项自身理解和翻译断断续续进行, 最近终于有一点进展, 本次放出Z3, 待全部实现完毕将直接挂出 详细…

知识图谱实战

一、知识图谱简单介绍 二、知识图谱的构建 三、知识图谱问答方案 NL2SQL:自然语言转为SQL语句 bulid_graph.py """知识图谱""" #三元组&#xff1a;实体-关系-实体 实体-属性-属性值import re,json from py2neo import Graph from collectio…