m基于神经网络的气候预测matlab仿真,气候数据采用的BoM气候数据,神经网络为matlab编程实现不使用工具箱函数

news2024/11/14 17:24:17

目录

1.算法描述

2.仿真效果预览

3.MATLAB核心程序

4.完整MATLAB


1.算法描述

        人工神经网络(Artificial Neural Networks,简写为ANNs)也简称为神经网络(NNs)或称作连接模型(Connection Model),它是一种模仿动物神经网络行为特征,进行分布式并行信息处理的算法数学模型。这种网络依靠系统的复杂程度,通过调整内部大量节点之间相互连接的关系,从而达到处理信息的目的。

        生物神经网络主要是指人脑的神经网络,它是人工神经网络的技术原型。人脑是人类思维的物质基础,思维的功能定位在大脑皮层,后者含有大约10^11个神经元,每个神经元又通过神经突触与大约103个其它神经元相连,形成一个高度复杂高度灵活的动态网络。作为一门学科,生物神经网络主要研究人脑神经网络的结构、功能及其工作机制,意在探索人脑思维和智能活动的规律。

       人工神经网络是生物神经网络在某种简化意义下的技术复现,作为一门学科,它的主要任务是根据生物神经网络的原理和实际应用的需要建造实用的人工神经网络模型,设计相应的学习算法,模拟人脑的某种智能活动,然后在技术上实现出来用以解决实际问题。因此,生物神经网络主要研究智能的机理;人工神经网络主要研究智能机理的实现,两者相辅相成。

       神经网络的输入层的每一个节点代表的是一个对象的其中的一个特征,这个些特征可以用一个矩阵x表示,因为这是我们人类看的懂的东西,所以要转换成计算机看的懂的东西。使用函数进行计算,w是权重,b是偏置。神经网络 

       y=w1x+b1

       其中输如层有3个节点是一个1x3的矩阵,对应的隐藏是一个1x4的矩阵,则要乘以w1是一个3x4的矩阵,b是一个1x4的矩阵。
       其中神经网络还需要一个激活函数,常用的有的sigmoid,relu,tanh,因为神经网络对应的是一个线性化的函数,我们有的时候要解决非线性化的问题,所以引入激活函数,解决线性模型不能解决的问题。
 

func_data_process.m

    这个函数,主要功能就是识别数据中的数据,然后分别统计出每年的数据,每个月的数据以及每天的数据。

func_NN_prediction.m

    这个函数,是利用训练得到的神经网络进行预测的函数,其主要功能就是将测试数据输入,输出预测数据。

func_NN_train.m

这个函数,是神经网络训练函数,通过对测试数据集和目标测试集进行训练,得到一个神经网络,其中所涉及的非线性函数为:

main_func.m

    这个函数就是对数据处理,神经网络训练,神经网络测试三个主要函数进行调用,实

NN_parameter_define.m

     神经网络的一些参数定义;

2.仿真效果预览

matlab2022a仿真结果如下:

 

 

 

 

 

3.MATLAB核心程序

%神经网络参数初始化调用
NN_parameter_define;

%网络训练
%循环开始,进化网络
for Iter=1:Iteration_times
    Iter
    %对输入的每个数据进行处理
    for k=1:length(Data_IN)    
        In = Data_IN(k);
        %输出层结算
        for i=1:Num_node_IN
            for j=1:Num_node_HIDE
                %定义非线性函数
                u(i,j) = exp(-(In(i)-nodec(j,i))^2/nodeb(j,i));
            end
        end
        W    = u(1,:); 
        Ws   = sum(W);
        for i=1:Num_node_HIDE
            HIDE_data(i) = Iter_b(i) + Iter_b2(i) * In;
        end
        HIDE_W  = HIDE_data*W';

        %网络预测计算
        OUT(k)  = HIDE_W/Ws;
        ERR(k)  = Data_OUT(k)-OUT(k); 

        P_point = zeros(Num_node_HIDE,1);
        P_point = COFF_1 * ERR(k) * W ./ Ws;
        P_point = P_point';

        B_point = zeros(Num_node_HIDE,Num_node_IN);
        for i=1:Num_node_HIDE
            for j=1:Num_node_IN
                B_point(i,j) =     COFF_1 * ERR(k) * ( HIDE_data(i) * Ws - HIDE_W ) * ( In(j) - nodec(i,j) )^2 * W(i) / (nodeb(i,j)^2 * Ws^2);
            end
        end  

        B_point = zeros(Num_node_HIDE,Num_node_IN);
        for i=1:Num_node_HIDE
            for j=1:Num_node_IN
                C_point(i,j) = 2 * COFF_1 * ERR(k) * ( HIDE_data(i) * Ws - HIDE_W ) * ( In(j) - nodec(i,j) )   * W(i) / (nodeb(i,j) * Ws^2);
            end
        end
        %节点更新
        Iter_a  = Iter_b  + P_point    + COFF_2 * ( Iter_b  - Iter_c );
        Iter_a2 = Iter_b2 + P_point*In + COFF_2 * ( Iter_b2 - Iter_c2);
        nodeb   = nodeb1  + B_point    + COFF_2 * ( nodeb1  - nodeb2 );      
        nodec   = nodec1  + C_point    + COFF_2 * ( nodec1  - nodec2 );
        %延迟赋值
        Iter_c  = Iter_b;
        Iter_b  = Iter_a;
        Iter_c2 = Iter_b2;
        Iter_b2 = Iter_a2;
        nodec2  = nodec1;
        nodec1  = nodec;   
        nodeb2  = nodeb1;
        nodeb1  = nodeb;
    end   
end  
05_007_m

4.完整MATLAB

V

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

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

相关文章

UICollectionView 实际使用

一. 使用UICollectionView制作书架 我想的书架是那种每一排都可以滑动的。暂时的想法是使用两个collectionView,第一个collectionView布置书架的每一排,第二个布置每一排内部的书。 布置外部的colletionView,这部分很简单,item的…

[ 数据结构 -- 手撕排序算法第五篇 ] 堆排序

文章目录前言一、常见的排序算法二、堆的概念及结构三、堆的实现3.1 堆的插入3.2 堆的删除四、堆排序4.1 向上调整建堆4.2 向下调整建堆4.3 建堆的时间复杂度4.4 堆排序五、堆排序的特性前言 手撕排序算法第五篇:堆排序! 从本篇文章开始,我会…

Java+JSP超市管理系统(含源码+论文+答辩PPT等)

项目功能简介: 该项目采用的技术后台框架:Servlet、JSP、JDBC、UI界面:BootStrap、jQuery、数据库:MySQL 系统功能 该系统共包含两种角色:员工和管理员。系统的主要功能模块如下: 1.系统管理 系统登陆、系统退出、修改…

《Mysql是怎样运行的》补充

19 第19章 从猫爷被杀说起-事务简介 19.1 事务的起源 19.1.1 原子性(Atomicity) 19.1.2 隔离性(Isolation) 其它的状态转换不会影响到本次状态转换,这个规则被称之为 隔离性 19.1.3 一致性(Consisten…

[ISITDTU 2019]EasyPHP rce替换字母

<?php highlight_file(__FILE__);$_ $_GET[_]; if ( preg_match(/[\x00- 0-9\"$&.,|[{_defgops\x7F]/i, $_) )die(ros will not do it);if ( strlen(count_chars(strtolower($_), 0x3)) > 0xd )die(you are so close, omg);eval($_); ?> 打开界面有两个i…

Mysql分布式锁(四)乐观锁实现并发

文章目录CAS - Compare And Swap业务改造1. 表结构新增version列2. 修改代码3. 测试问题1. 高并发情况下&#xff0c;性能极低2. ABA问题3. 读写分离情况下导致乐观锁不可靠CAS - Compare And Swap 先比较再交换&#xff0c;一般通过时间戳或者version版本号。 举例&#xff1…

【审计思路】如何快速定位SQLMS注入漏洞?

0x00 前言 MCMS是政府、教育等其他行业常用的CMS&#xff0c;应用广泛&#xff0c;但是底层的代码中仍然遗留不少的问题。这篇文章主要针对SQL注入进行审计并探讨如何快速定位SQL注入漏洞&#xff0c;以及其他工具的应用。 MCMS&#xff0c;是完整开源的Java CMS&#xff01;基…

[ vulhub漏洞复现篇 ] Apache Airflow Celery 消息中间件命令执行漏洞复现 CVE-2020-11981

&#x1f36c; 博主介绍 &#x1f468;‍&#x1f393; 博主介绍&#xff1a;大家好&#xff0c;我是 _PowerShell &#xff0c;很高兴认识大家~ ✨主攻领域&#xff1a;【渗透领域】【数据通信】 【通讯安全】 【web安全】【面试分析】 &#x1f389;点赞➕评论➕收藏 养成习…

基于asp.net企业网上办公自动化系统-计算机毕业设计

企业网上办公自动化通过对各办公自动化要素的闭环整合&#xff0c;实现了工作流、信息流、知识流和办公自动化系统的整合管理&#xff0c;提供了一个科学、开放、先进的信息化办公平台&#xff0c;实现办公自动化&#xff0c;并进行远程办公或在家办公。企业网上办公自动化将人…

redis开启二级缓存

目录 1. redis集成 2. pom.xml加入redis缓存支持 3. 在项目配置文件中加入cache配置 4. 在启动类开发缓存功能 5. 需要缓存的实体对象实现序列化接口 6. 缓存的使用 7. 测试 今天与大家分享&#xff0c;redis二级缓存实现案例。如有问题&#xff0c;望指教。 1. redis集…

计算机毕业设计springboot+vue基本微信小程序的校园二手物品交易平台系统

项目介绍 目的:设计一个同学们能自由发布和浏览求购或卖出商品信息的校园二手交易小程序,解决信息的不流通以及传统二手商品信息交流方式的笨拙等问题。 意义:在大学校园里,存在着很多的二手商品,但是由于信息资源的不流通以及传统二手商品信息交流方式的笨拙,导致了很多仍然具…

十年阿里测试工程师浅谈UnitTest单元测试框架

一、UnitTest单元测试框架提供了那些功能 1.提供用例组织和执行 如何定义一条“测试用例”? 如何灵活地控制这些“测试用例”的执行? 2.提供丰定的断言方法 当测试用例的执行结果与预期结果不一致时&#xff0c;判定测试用例失败。在自动化测试中&#xff0c;通过“断言”…

2022 软件测试简答题【太原理工大学】

四、简答题 1. 比较自顶向下集成测试方法和自底向上集成测试方法各自的优缺点。 ① 自顶向下集成 优点&#xff1a;较早地验证了主要控制和判断点:按深度优先可以首先实现和验证一个完整的软件功能;功能较早证实&#xff0c;带来信心;只需一个驱动&#xff0c;减少驱动器开发…

python+pyqt5设置窗体图标和任务栏图标及窗体标题的方法

本次设置窗体标题只用了一种方法&#xff0c;在进行窗体实例化后window Window()&#xff0c;使用setWindowTitle(str)命令&#xff0c;在主程序中的设置命令如下所示&#xff1a; if __name__ __main__:QApplication.setAttribute(Qt.AA_EnableHighDpiScaling) #Qt从5.6.0开…

机器学习——05线性回归

机器学习——05线性回归 参考资料 AIlearningMachine-Learning-in-Action庞善民.西安交通大学机器学习导论2022春PPT 使用Jupyter进行练习&#xff0c;python3 具体项目地址&#xff1a;https://github.com/yijunquan-afk/machine-learning/tree/master/basic-learn/05-reg…

ARM S5PV210 X210 刷机教程总结

前言 S5PV210 X210 开发板外观介绍 一、开发板刷系统1 1. 什么是刷系统 刷系统就是利用刷机工具&#xff0c;向开发板中烧录预先编译好的系统镜像&#xff0c;使之在开发板上运行起来。 2. 串口输出的意义&#xff08;做系统控制台&#xff09; 串口是一种硬件通信口&…

【将高光谱、多光谱和全色图像进行融合】

HyperNet: A deep network for hyperspectral, multispectral, and panchromatic image fusion &#xff08;HyperNet&#xff1a;一种用于高光谱、多光谱和全色图像融合的深度网络&#xff09; 传统的方法主要是将高光谱图像&#xff08;hyperspectral image (HSI)&#xff0…

定时红绿灯(C51单片机)

一&#xff0e;项目题目&#xff1a;利用中断处理制作的定时LED红绿灯系统 二&#xff0e;项目器件&#xff1a; 红色LED灯 绿色LED灯 黄色LED灯 100R电阻 电源 电容器 C51单片机 接地线 三&#xff0e;项目原理图 四&#xff0e;项目实现功能&#xff1a; 使用定时器/计数…

【云原生 | Kubernetes 实战】14、K8s 控制器 Statefulset 入门到企业实战应用

目录 一、Statefulset 控制器&#xff1a;概念、原理解读 1.1 什么是有状态服务&#xff1f; 1.2 什么是无状态服务&#xff1f; 二、 Statefulset 资源清单文件编写技巧 三、Statefulset 使用案例&#xff1a;部署 web 站点 3.1 StatefulSet 由以下几个部分组成&#xf…

VMware克隆虚拟机

一、克隆虚拟机 1. 在WMware中&#xff0c;右键虚拟机模板&#xff08;需要克隆的虚拟机原型&#xff09;&#xff0c;选择&#xff1a;管理 ----> 克隆&#xff0c;如下图所示&#xff1a; 2. 然后&#xff0c;如下图进行操作&#xff1a; 二、扩展&#xff1a;移除、删除…