BP神经网络拟合给定函数
近期在准备美赛,因为比赛需要故重新安装了matlab,在里面想尝试一下神将网络工具箱。就找了一个看起来还挺赏心悦目的函数例子练练手:
y=1+sin(1+pi*x/4)
  针对这个函数,我们首先画出其在[-1,8]上的函数图像,这里间隔为0.05.代码为:
  
p=[-1:0.05:8]
t=1+sin(1+pi*p/4)
plot(p,t,'-')
title("要逼近的线性函数")
xlabel("x")
画出的图像如下:

然后我们通过建立神经网络,并且训练,设置训练时间为50.这里采用了四层神经网络。
net=newff(minmax(p),[4,1],{'tansig''purelin'},'tranlm')
net=newff(minmax(p),[4,1],{'tansig','purelin'},'tranlm')
net=newff(minmax(p),[4,1],{'tansig','purelin'},'trainlm')
y1=sim(net,p);
figure;
plot(p,t,'-',p,y1,':')
title('未训练网络的输出结果');
xlabel('时间');
ylabel('仿真输出--原函数-');
net.trainParam.epochs=50
net.trainParam.goal=0.01;
net=train(net,p,t);
y2=sim(net,p);figure;plot(p,t,'-',p,y1,':',p,y2, '--')
title('训练后网络的输出结果');xlabel('时间');
ylabel('仿真输出');
y2=sim(net,p); figure;
 plot(p,t,' - ',p,y1,':',p,y2, '--')*
title('训练后网络的输出结果');
 xlabel('时间');
ylabel('仿真输出');
最后训练的结果如下,还是可以接受的

BP神经网络拟合给定函数的更多相关文章
- 使用TenforFlow 搭建BP神经网络拟合二次函数
		使用简单BP神经网络拟合二次函数 当拥有两层神经元时候,拟合程度明显比一层好 并出现如下警告: C:\Program Files\Python36\lib\site-packages\matplotl ... 
- tensorflow神经网络拟合非线性函数与操作指南
		本实验通过建立一个含有两个隐含层的BP神经网络,拟合具有二次函数非线性关系的方程,并通过可视化展现学习到的拟合曲线,同时随机给定输入值,输出预测值,最后给出一些关键的提示. 源代码如下: # -*- ... 
- 使用MindSpore的线性神经网络拟合非线性函数
		技术背景 在前面的几篇博客中,我们分别介绍了MindSpore的CPU版本在Docker下的安装与配置方案.MindSpore的线性函数拟合以及MindSpore后来新推出的GPU版本的Docker编 ... 
- MATLAB神经网络(2) BP神经网络的非线性系统建模——非线性函数拟合
		2.1 案例背景 在工程应用中经常会遇到一些复杂的非线性系统,这些系统状态方程复杂,难以用数学方法准确建模.在这种情况下,可以建立BP神经网络表达这些非线性系统.该方法把未知系统看成是一个黑箱,首先用 ... 
- Matlab的BP神经网络工具箱及其在函数逼近中的应用
		1.神经网络工具箱概述 Matlab神经网络工具箱几乎包含了现有神经网络的最新成果,神经网络工具箱模型包括感知器.线性网络.BP网络.径向基函数网络.竞争型神经网络.自组织网络和学习向量量化网络.反馈 ... 
- NO.2:自学tensorflow之路------BP神经网络编程
		引言 在上一篇博客中,介绍了各种Python的第三方库的安装,本周将要使用Tensorflow完成第一个神经网络,BP神经网络的编写.由于之前已经介绍过了BP神经网络的内部结构,本文将直接介绍Tens ... 
- BP神经网络原理及在Matlab中的应用
		一.人工神经网络 关于对神经网络的介绍和应用,请看如下文章  神经网络潜讲  如何简单形象又有趣地讲解神经网络是什么 二.人工神经网络分类 按照连接方式--前向神经网络.反馈(递归)神经网络 按照 ... 
- [matlab]bp神经网络工具箱学习笔记
		基本就三个函数: newff():创建一个bp神经网络 train():训练函数 sim():仿真函数 同时具有可视化界面,但目前不知道可视化界面如何进行仿真,且设置不太全 工具箱:Neural ne ... 
- MATLAB神经网络(3) 遗传算法优化BP神经网络——非线性函数拟合
		3.1 案例背景 遗传算法(Genetic Algorithms)是一种模拟自然界遗传机制和生物进化论而形成的一种并行随机搜索最优化方法. 其基本要素包括:染色体编码方法.适应度函数.遗传操作和运行参 ... 
随机推荐
- 机器学习回顾篇(15):集成学习之GDBT
			.caret, .dropup > .btn > .caret { border-top-color: #000 !important; } .label { border: 1px so ... 
- 生产者消费者代码学习,Producer_Consuner
			使用BlockingQuery实现生产者者消费者:考虑并发,解耦. 生产者消费者模式是面向过程的设计模式. 生产者制造数据 ------> 生产者把数据放入缓冲区 -------> ... 
- 18年第一弹射 和网络有关; 艾曲塞嗯诶系列篇 one
			1:当指定接口运行在RIP2组播方式时,以下说法正确的是 2个答案 A 只接收RIPv2组播报文 B 不接收RIPV1 广播报文 2 下面哪条命令是把PPP的认证方式设置为PAP? C ppp au ... 
- CSS盒子模型与双飞翼布局
			盒子模型&双飞翼实现 CSS盒模型本质上是一个盒子,封装周围的HTML元素,它包括:外边距(margin).边框(border).内边距(padding).实际内容(content)四个属性. ... 
- 一个注解搞懂 Sentinel,@SentinelResource 总结
			在前面的博客中,我给大家演示了使用 @SentinelResource 定义资源完成限流的例子, 下面就从源码解析开始,看下SentinelResource是如何实现限流的,以及@SentinelRe ... 
- echats  的使用
			第一步在我们的电脑上百度搜索echarts,点击进去,如下图所示: 2 第二步进去之后,点击下载,选择要下载的echarts版本,一般选择源代码,如下图所示: 3 第三步下载完成之后,我们也可以来使用 ... 
- Web自动化测试项目(三)用例的组织与运行
			一.Unittest用例组织 在test_case目录下创建test*.py,组织测试用例 ├── test_case │ ├── __init__.py │ └── test_login.p ... 
- laravel 服务容器的由来 代码展示
			<?php /** * 目的:代码的完善来说明从 基础类的调用到 工厂类的使用 再到容器的出现的原因 * (首先要明白工厂类和容器的关系 可以理解:容器就是工厂类的升级版(为了解决类的依赖)) ... 
- Java:多线程概述与创建方式
			目录 Java:多线程概述与创建方式 进程和线程 并发与并行 多线程的优势 线程的创建和启动 继承Thread类 start()和run() 实现Runnable接口 实现Callable接口 创建方 ... 
- js原型和原型链的简单理解
			构造函数创建对象: function Person() { } var person = new Person(); person.name = 'Tian'; console.log(person. ... 
