【GRU回归预测】基于鲸鱼算法优化门控循环单元WOA-GRU神经网络实现多输入单输出回归预测附matlab代码

news2024/11/26 0:25:21

✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。

🍎个人主页:Matlab科研工作室

🍊个人信条:格物致知。

更多Matlab仿真内容点击👇

智能优化算法  神经网络预测 雷达通信  无线传感器

信号处理 图像处理 路径规划 元胞自动机 无人机  电力系统

⛄ 内容介绍

软测量建模能够有效地解决生产过程中在线分析仪表测量滞后大、价格昂贵、维护保养复杂等问题。目前,神经网络是软测量建模的主要工具之一。而由于一般的循环神经网络在解决软测量问题时存在长范围依赖和梯度消失的问题,故本文采用门限循环单元神经网络(GRU)建立模型,其门限结构更少,训练效率更高。为进一步提高神经网络的预测精度,本文使用鲸鱼优化算法(WOA)来优化GRU的初始参数,并以此建立了WOA-GRU软测量模型。最后,将该方法应用于丙烯精馏塔中塔顶丙烷浓度的预测,实验结果表明,在动态建模方面WOA-GRU具有更高的预测精度。

⛄ 部分代码

%_________________________________________________________________________%

%  Whale Optimization Algorithm (WOA) source codes demo 1.0               %

% The Whale Optimization Algorithm

function [Leader_score,Leader_pos,Convergence_curve]=WOA(SearchAgents_no,Max_iter,lb,ub,dim,fobj)

% initialize position vector and score for the leader

Leader_pos=zeros(1,dim);

Leader_score=inf; %change this to -inf for maximization problems

%Initialize the positions of search agents

% Positions=initialization(SearchAgents_no,dim,ub,lb);

Positions=ceil(rand(SearchAgents_no,dim).*(ub-lb)+lb);

Convergence_curve=zeros(1,Max_iter);

t=0;% Loop counter

% Main loop

while t<Max_iter

    for i=1:size(Positions,1)

        

        % Return back the search agents that go beyond the boundaries of the search space

        Flag4ub=Positions(i,:)>ub;

        Flag4lb=Positions(i,:)<lb;

        Positions(i,:)=(Positions(i,:).*(~(Flag4ub+Flag4lb)))+ub.*Flag4ub+lb.*Flag4lb;

        

        % Calculate objective function for each search agent

        fitness=fobj(Positions(i,:));

        

        % Update the leader

        if fitness<Leader_score % Change this to > for maximization problem

            Leader_score=fitness; % Update alpha

            Leader_pos=Positions(i,:);

        end

        

    end

    

    a=2-t*((2)/Max_iter); % a decreases linearly fron 2 to 0 in Eq. (2.3)

    

    % a2 linearly dicreases from -1 to -2 to calculate t in Eq. (3.12)

    a2=-1+t*((-1)/Max_iter);

    

    % Update the Position of search agents 

    for i=1:size(Positions,1)

        r1=rand(); % r1 is a random number in [0,1]

        r2=rand(); % r2 is a random number in [0,1]

        

        A=2*a*r1-a;  % Eq. (2.3) in the paper

        C=2*r2;      % Eq. (2.4) in the paper

        

        

        b=1;               %  parameters in Eq. (2.5)

        l=(a2-1)*rand+1;   %  parameters in Eq. (2.5)

        

        p = rand();        % p in Eq. (2.6)

        

        for j=1:size(Positions,2)

            

            if p<0.5   

                if abs(A)>=1

                    rand_leader_index = floor(SearchAgents_no*rand()+1);

                    X_rand = Positions(rand_leader_index, :);

                    D_X_rand=abs(C*X_rand(j)-Positions(i,j)); % Eq. (2.7)

                    Positions(i,j)=X_rand(j)-A*D_X_rand;      % Eq. (2.8)

                    

                elseif abs(A)<1

                    D_Leader=abs(C*Leader_pos(j)-Positions(i,j)); % Eq. (2.1)

                    Positions(i,j)=Leader_pos(j)-A*D_Leader;      % Eq. (2.2)

                end

                

            elseif p>=0.5

              

                distance2Leader=abs(Leader_pos(j)-Positions(i,j));

                % Eq. (2.5)

                Positions(i,j)=distance2Leader*exp(b.*l).*cos(l.*2*pi)+Leader_pos(j);

                

            end

            

        end

    end

    t=t+1;

    Convergence_curve(t)=Leader_score;

%     [t Leader_score]

end

⛄ 运行结果

⛄ 参考文献

[1]杨逸俊, 王昕, 王振雷. 基于WOA-GRU的精馏塔丙烷浓度软测量建模[C]// 第30届中国过程控制会议(CPCC 2019). 0.

⛄ Matlab代码关注

❤️部分理论引用网络文献,若有侵权联系博主删除

❤️ 关注我领取海量matlab电子书和数学建模资料

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

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

相关文章

网络协议—应用层的HTTPS协议

用 HTTP 协议&#xff0c;看个新闻还没有问题&#xff0c;但是换到更加严肃的场景中&#xff0c;就存在很多的安全风险。例如&#xff0c;你要下单做一次支付&#xff0c;如果还是使用普通的 HTTP 协议&#xff0c;那你很可能会被黑客盯上。例如在点外卖的环境中&#xff0c;发…

面试题 —— 真实面试题分享

文章目录 一、对BFC的理解。二、CSS中”::“和”:”的区别&#xff1f;三、对vue生命周期的理解&#xff1f; 四、vue组件通信的方式 五、vue中给data中的对象添加一个新的属性会发生什么&#xff0c;如何解决? 六.微信小程序组件的生命周期 七、javascript原型与继承的理解…

【vue基础】关于组件之间的通信

目录 &#xff08;1&#xff09;父组件向子组件传递信息 1.props&#xff1a; 2.第二种是直接从子组件里面利用&#xffe5;parent和root引用&#xff0c;获取根组件和父组件中的数据 &#xff08;2&#xff09;子组件数据传入父组件 1.通过自定义事件 2.通过$refs引用集合…

Docker-自定义镜像上传阿里云

目录 一、Docker制作jdk镜像 jdkv.1.0的制作 步骤 二&#xff0c;alpine制作jdk镜像 2.1 alpine Linux简介 2.2 基于alpine制作JDK8镜像 前期准备 2.3步骤 2.3.1.下载镜像 2.3.2.创建并编辑dockerfile 2.3.3.执行dockerfile创建镜像 2.3.4.创建并启动容器(可略) 2.3.5.进…

考虑碳交易机制的园区综合能源系统电热协同运行优化研究(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️❤️&#x1f4a5;&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑…

【加油站会员管理小程序】05 充值套餐功能

上一篇我们讲解了轮播图的开发,本篇我们讲解充值优惠功能的开发。 开发之前我们要思考如何展示信息,在我们的功能规划里,在首页部分是要展示三个充值的套餐信息。那这个套餐呢最好是存在数据源中,便于日后维护信息。 在应用的编辑器里,点击数据源的图标,我们创建一个数…

m最小二乘法自适应均衡误码率仿真,对比LS,DEF以及LMMSE三种均衡算法误码率

目录 1.算法描述 2.仿真效果预览 3.MATLAB核心程序 4.完整MATLAB 1.算法描述 信道估计是通信系统接收机的重要功能模块&#xff0c;主要是用来估计信号所经历信道的冲击响应&#xff0c;并用于后续的信道均衡处理&#xff0c;以便消除多径信号混叠造成的ISI。 信道估…

[附源码]Node.js计算机毕业设计二手车交易平台设计Express

项目运行 环境配置&#xff1a; Node.js最新版 Vscode Mysql5.7 HBuilderXNavicat11Vue。 项目技术&#xff1a; Express框架 Node.js Vue 等等组成&#xff0c;B/S模式 Vscode管理前后端分离等等。 环境需要 1.运行环境&#xff1a;最好是Nodejs最新版&#xff0c;我…

硕士生论文学习——基于孪生神经网络的改进模型在中文语义相似度上的研究

文章目录摘要2.2 孪生神经网络3.2 基于孪生ELETRA网络的语义相似度交互模型结构3.3 实验结果分析3.3.4 评价指标摘要 啥啊&#xff1a;两个文本之间的交互特征 LSTM 应用于孪生神经网络的特征提取层&#xff0c;可以获取到长文本的语义信息。 孪生神经网络的特征提取层&…

【kernel exploit】CVE-2022-25636 nftables OOB 写堆指针漏洞利用

影响版本&#xff1a;Linux 5.4-rc1~5.17-rc5。5.17-rc6 已修补。 测试版本&#xff1a;Linux-5.13.19 &#xff08;原作者在Ubuntu 21.10 内核版本 5.13.0-30 中测试&#xff0c;成功率40%&#xff0c;由于用到 msg_msg 对象&#xff0c;所以只能用 5.14 以前的内核版本进行测…

Linux 下复现 Google Chrome RCE

写在前面&#xff1a;网上大多都是windows下复现的&#xff0c;不过最近我在Linux中也遇到了低版本的chrome&#xff0c;想着这也是一个点&#xff0c;但是没想到技术不够&#xff0c;没搞出来&#xff0c;还是看大佬的文档慢慢学吧。。。 目录 一.环境搭建 1.1 环境信息 1.…

GX Works3 跨网访问

需求背景 1&#xff0c;有N条产线。 2&#xff0c;每条产线是一个独立的局域网。类似于192.168.x.x 3&#xff0c;每条产线部署一台产线控制系统。采用双网卡。一张接车间网络&#xff1b;一张接产线自身的局域网。 现在的需求是&#xff1a; 需要读写任意一条产线的PLC(三…

强化学习学习资料

1、OpenAI建立的强化学习教育资源网站&#xff0c;可以让我们更轻松地学习深度强化学习。里面有很多有用的资源&#xff0c;包括&#xff1a; &#xff08;1&#xff09;强化学习基本术语、算法种类、基本理论的介绍。 &#xff08;2&#xff09;一篇关于如何成长为RL研究者的…

是一种非常的Cy类近红外荧光染料,1686147-55-6,ICG amine,本产品的ICG是临床中所使用的ICG染料的衍生物

ICG&#xff08;Indocyanine Green&#xff09;&#xff0c;是一种非常的Cy类近红外荧光染料&#xff0c;在临床中用于手术导航。ICG的体内药理学性质非常明确&#xff0c;具有良好的安全性&#xff0c;是常用近红外染料&#xff0c;被***运用于生物诊疗。ICG的荧光母核和Cy7.5…

Python中ArcPy基于矢量范围批量裁剪大量栅格遥感影像

本文介绍基于Python中ArcPy模块&#xff0c;基于矢量数据范围&#xff0c;对大量栅格遥感影像加以批量裁剪掩膜的方法。 本文所需要的代码如下所示。 # -*- coding: utf-8 -*- """ Created on Tue Dec 13 20:07:48 2022author: fkxxgis """impo…

31.前端笔记-CSS-CSS3盒子模型和其他特性

1、CSS3盒子模型 原来的CSS盒子设置了border和padding属性&#xff0c;就会撑大盒子。 现在CSS3中可以通过box-sizing来指定盒模型&#xff0c;有两个值&#xff1a; content-box&#xff1a;盒子大小是widthpaddingborderbordr-box:盒子大小就是width,padding和border不会撑…

【OpenFOAM】-olaFlow-算例2- breakwater

算例路径&#xff1a; olaFlow\tutorials\breakwater 算例描述&#xff1a; 波浪对防波堤的作用&#xff0c;堤身为孔隙可渗透结构&#xff0c;堤顶沉箱为不可渗透结构。 学习目标&#xff1a; 渗透模型、可渗结构设置、孔隙材料各项参数设置 算例快照&#xff1a; 图1 防波堤…

基于51单片机的四位数字频率计数码管显示设计

仿真原理图&#xff1a; 程序运行图&#xff1a; 部分程序&#xff1a; #include <reg52.h> #define uchar unsigned char #define uint unsigned int uchar duan[10]{0xc0,0Xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; //所需的段的位码 //uchar wei[…

企业数字化转型关键路径:构建数据驱动的管控体系

本案例以元年方舟企业数字化转型PaaS平台为某国际运动品牌&#xff0c;解决全渠道对账项目应用为例&#xff0c;通过建立全渠道对账系统研发&#xff0c;构建数据驱动的管控体系&#xff0c;帮助该零售企业实现数字化转型的突破。 关键词&#xff1a;企业数字化&#xff1b;新…

Transformer网络

Transformer网络可以利用数据之间的相关性&#xff0c;最近需要用到这一网络&#xff0c;在此做一些记录。 1、Transformer网络概述 Transformer网络最初被设计出来是为了自然语言处理、语言翻译任务&#xff0c;这里解释的也主要基于这一任务展开。 在 Transformer 出现之前…