【数学建模】

文章目录

  • Matlab BP神经网络

Matlab BP神经网络


归一化算法:
(0,1):
y=(x−min)/(max−min)y=(x-min)/(max-min)y=(x−min)/(max−min)
(-1,1):
y=2∗(x−min)/(max−min)−1y=2*(x-min)/(max-min)-1y=2∗(x−min)/(max−min)−1


重点函数:

% mapminmax:归一化
[Y, PS]=mapminmax(X,YMIN,YMAX)  % 把X归一化到(YMIN.YMAX)
% Y:归一化得到的数据;
% PS:结构体,里面是归一化的信息(最小值,最大值,范围等)
Z=mapminmax('apply',X,PS)   % 利用PS信息对X进行归一化输出Z
X=mapminmax('reverse',Y,PS) % 反归一化


S可以是数组[n1,n2,n3,…]设置多个隐藏层,每个神经元数目为n1,n2,n3.

https://www.cnblogs.com/long5683/p/10508012.html

https://blog.csdn.net/ckzhb/article/details/60879570



例子:

NIR(输入数据)是一个60X401矩阵;
octane(目标数据)是一个60X1矩阵;

%% I. 清空环境变量
clear;clc
%% II. 训练集/测试集产生
%%
% 1. 导入数据
load spectra_data.mat
%%
% 2. 随机产生训练集和测试集
temp = randperm(size(NIR,1));       % 随机索引
% 训练集——50个样本
P_train = NIR(temp(1:50),:)';       % 输入数据
T_train = octane(temp(1:50),:)';    % 输入数据的目标值
% 测试集——10个样本
P_test = NIR(temp(51:end),:)';
T_test = octane(temp(51:end),:)';
N = size(P_test,2);
%% III. 数据归一化
% 输入数据归一化
[p_train, ps_input] = mapminmax(P_train,0,1);
p_test = mapminmax('apply',P_test,ps_input);
% 目标值归一化
[t_train, ps_output] = mapminmax(T_train,0,1);
%% IV. BP神经网络创建、训练及仿真测试
%%
% 1. 创建网络
net = newff(p_train,t_train,9);
%%
% 2. 设置训练参数
net.trainParam.epochs = 1000;
net.trainParam.goal = 1e-3;
net.trainParam.lr = 0.01;
%%
% 3. 训练网络
net = train(net,p_train,t_train);
%net = newff(p_train,t_train,[9,4]);  %设置两个隐藏层,神经元个数分别为9,4
%%
% 4. 仿真测试
t_sim = sim(net,p_test);      % Y=sim()
%%
% 5. 数据反归一化
T_sim = mapminmax('reverse',t_sim,ps_output);
%% V. 性能评价
%%
% 1. 相对误差error
error = abs(T_sim - T_test)./T_test;
%%
% 2. 决定系数R^2
R2 = (N * sum(T_sim .* T_test) - sum(T_sim) * sum(T_test))^2 / ((N * sum((T_sim).^2) - (sum(T_sim))^2) * (N * sum((T_test).^2) - (sum(T_test))^2));
%%
% 3. 结果对比
result = [T_test' T_sim' error']
%% VI. 绘图
figure
plot(1:N,T_test,'b:*',1:N,T_sim,'r-o')
legend('真实值','预测值')
xlabel('预测样本')
ylabel('辛烷值')
string = {'测试集辛烷值含量预测结果对比';['R^2=' num2str(R2)]};
title(string)

结果:


(三)【数学建模】Matlab BP神经网络相关推荐

  1. 视频教程-MATLAB数学建模-Matlab

    MATLAB数学建模 图像和算法等领域有多年研究和项目经验:指导发表科技核心期刊经验丰富:多次指导数学建模爱好者参赛. 宋星星 ¥12.00 立即订阅 扫码下载「CSDN程序员学院APP」,1000+ ...

  2. 【电力负荷预测】基于matlab BP神经网络电力负荷预测【含Matlab源码 278期】

    ⛄一.获取代码方式 获取代码方式1: 完整代码已上传我的资源: [电力负荷预测]基于matlab BP神经网络电力负荷预测[含Matlab源码 278期] 获取代码方式2: 付费专栏Matlab智能算 ...

  3. 【故障诊断分析】基于matlab BP神经网络三相逆变器故障诊断研究【含Matlab源码 1736期】

    一.BP神经网络三相逆变器故障诊断简介 针对三相桥式逆变电路为研究对象,建立了仿真模型,并对逆变器主电路开关器件的开路故障进行仿 真,提出了基于BP神经网络的故障诊断方法,确定了网络的结构和参数,并以 ...

  4. 【停车位预测】基于matlab BP神经网络停车位预测【含Matlab源码 765期】

    ⛄一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[停车位预测]基于matlab BP神经网络停车位预测[含Matlab源码 765期] 点击上面蓝色字体,直接付费下载,即可. 获取代码方 ...

  5. matlab已知飞机下轮廓线,数学建模matlab插值及拟合.ppt

    数学建模matlab插值及拟合 2013数学建模培训 插值与拟合 插值与拟合属数值分析中函数逼近内容.在数学建模竞赛中,插值与拟合是一种常用的数据分析手段,被公认为建模中的十大算法之一. 本节首先通过 ...

  6. 数学建模之减肥计划 matlab编程,数学建模matlab算法大全第02章整数规划.pdf

    数学建模matlab算法大全第02章整数规划 第二章 整数规划 §1 概论 1.1 定义 规划中的变量(部分或全部)限制为整数时,称为整数规划.若在线性规划模型中, 变量限制为整数,则称为整数线性规划 ...

  7. Matlab BP神经网络拟合四足机器人足端轨迹线积分方程反函数用于足端轨迹规划

    Matlab BP神经网络拟合四足机器人足端轨迹线积分方程用于足端轨迹规划 问题描述 一般情况下,在对四足机器人足端轨迹进行规划时分别对足端路径和轨迹加速度进行规划,然后将规划好的加速度进行两次积分得 ...

  8. 数学建模matlab 优化模型,数学建模实验中三种优化模型的分析

    1. 引言 在20世纪中期,数学建模 [1] 就在欧美国度首次被发现,而在中国的呈现稍晚些,但是大约在80年代初始咱们国家也就有了.它的核心即是创立数学模型 [2] ,使得问题获得最优化的解决.而数学 ...

  9. 数学建模matlab imread,《matlab数学建模方法与实践》第三章 数据的处理

    3.1数据的获取 3.1.1从Excel中读取数据 a= xlsread('路径',n(sheetn),'A(n-1):Bn(读入的数据范围)') 3.1.2从TXT中读取数据 3.1.2.1.1 同 ...

最新文章

  1. windows xp远程桌面没有反应
  2. kirin710f是什么处理器_如何看待麒麟710F处理器?
  3. c语言递归函数检测回文,在C中使用递归函数的回文测试
  4. java x.length_Java中的length和length()
  5. 昨晚第一次使用了 NUnit,方才发现它是个好东西,似乎好多好东西其实一直在身边,只是没有勇气去尝试而一直无法体会。...
  6. Git学习系列(三)版本回退和管理文件的修改及删除操作
  7. 知识图谱特征学习算法
  8. 指数函数在c语言中怎么输入,指数函数如果想得到整型的值怎样做?
  9. 三星s8android8.0,三星S8国行升级安卓8.0 系统流畅度提升
  10. 1.单例(Singleton)模式
  11. 全新英特尔vPro平台,为数智时代保驾护航
  12. 力扣772 基本计算器 III
  13. java中mapper层作用_Java的MyBatis框架中Mapper映射配置的使用及原理解析
  14. C语言成绩统计源代码,C语言课程设计学生成绩管理系统+源码
  15. 写一副对子_续《一副对子的传奇故事》
  16. Altium Designer 21导出ANF到SIwave
  17. mysql忘记服务器上密码怎么修改密码,MySQL忘记密码怎么办-MySQL修改密码(亲测可用)...
  18. 使用Python究竟可以做什么?下面是Python的3个主要应用
  19. IEC 61970 标准系列简介
  20. 用Tkinter打造自己的Python IDE开发工具(4)利用HP_tk模块设计自己的代码编辑器

热门文章

  1. Unity删除工程记录
  2. RS232串口通信(UART的接收部分)
  3. OpenStack概述
  4. c语言常用的关键词,【必读】超全的C语言基础知识大全
  5. 猝不及防,Google成功“造人”令人胆寒!人类迎来史上最惨失业潮…
  6. 嵌入式驱动初级-阻塞与非阻塞
  7. 印尼飞机失事 60多条人命 如果我们身在其中最后一刻会有什么遗憾
  8. vb 修改sql数据库服务器时间格式,博途使用小结:用VB脚本向SQL数据库中写数据的方法...
  9. explain使用方法及结果分析
  10. 半导体视觉检测设备的应用