《2022年用matlab编BP神经网络预测程序加一个优秀程序 .pdf》由会员分享,可在线阅读,更多相关《2022年用matlab编BP神经网络预测程序加一个优秀程序 .pdf(29页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、求用 matlab 编 BP 神经网络预测程序求一用 matlab 编的程序P=。;输入 T=。;输出%创建一个新的前向神经网络net_1=newff(minmax(P),10,1,tansig,purelin,traingdm)%当前输入层权值和阈值inputWeights=net_1.IW1,1 inputbias=net_1.b1%当前网络层权值和阈值layerWeights=net_1.LW2,1 layerbias=net_1.b2%设置训练参数net_1.trainParam.show=50;net_1.trainParam.lr=0.05;net_1.trainParam.mc=
2、0.9;net_1.trainParam.epochs=10000;net_1.trainParam.goal=1e-3;%调用 TRAINGDM 算法训练BP 网络net_1,tr=train(net_1,P,T);%对 BP 网络进行仿真A=sim(net_1,P);%计算仿真误差E=T-A;MSE=mse(E)x=。;%测试sim(net_1,x)%不可能啊我 2009 28对初学神经网络者的小提示名师资料总结-精品资料欢迎下载-名师精心整理-第 1 页,共 29 页 -第二步:掌握如下算法:2.最小均方误差,这个原理是下面提到的神经网络学习算法的理论核心,入门者要先看高等数学(高等教育
3、出版社,同济大学版)第8 章的第十节:“最小二乘法”。3.在第 2 步的基础上看 Hebb 学习算法、SOM 和 K-近邻算法,上述算法都是在最小均方误差基础上的改进算法,参考书籍是神经网络原理(机械工业出版社,Simon Haykin著,中英文都有)、人工神经网络与模拟进化计算(清华大学出版社,阎平凡,张长水著)、模式分类(机械工业出版社,Richard O.Duda 等著,中英文都有)、神经网络设计(机械工业出版社,Martin T.Hargan等著,中英文都有)。4.ART(自适应谐振理论),该算法的最通俗易懂的读物就是 神经网络设计(机械工业出版社,Martin T.Hargan等著,
4、中英文都有)的第15 和 16 章。若看理论分析较费劲可直接编程实现一下16.2.7节的ART1 算法小节中的算法.4.BP 算法,初学者若对误差反传的分析过程理解吃力可先跳过理论分析和证明的内容,直接利用最后的学习规则编个小程序并测试,建议看机器学习(机械工业出版社,Tom M.Mitchell著,中英文都有)的第4章和神经网络设计(机械工业出版社,Martin T.Hargan等著,中英文都有)的第 11 章。BP 神经网络 Matlab实例(1)分类:Matlab实例采用 Matlab工具箱函数建立神经网络,对一些基本的神经网络参数进行了说明,深入了解参考Matlab帮助文档。%例 1
5、采用动量梯度下降算法训练BP 网络。%训练样本定义如下:%输入矢量为%p=-1-2 3 1%-1 1 5-3%目标矢量为t=-1-1 1 1 close all clear clc%-%NEWFF 生成一个新的前向神经网络,函数格式:%net=newff(PR,S1 S2.SNl,TF1 TF2.TFNl,BTF,BLF,PF)takes,%PR-R x 2 matrix of min and max values for R input elements%(对于 R 维输入,PR 是一个 R x 2 的矩阵,每一行是相应输入的名师资料总结-精品资料欢迎下载-名师精心整理-第 2 页,共 29
6、 页 -边界值)%Si-第 i 层的维数%TFi-第 i 层的传递函数,default=tansig%BTF-反向传播网络的训练函数,default=traingdx%BLF-反 向 传 播 网 络 的 权 值/阈 值 学 习 函 数,default=learngdm%PF-性能函数,default=mse%-%TRAIN 对 BP 神经网络进行训练,函数格式:%train(NET,P,T,Pi,Ai,VV,TV),输入参数:%net-所建立的网络%P-网络的输入%T-网络的目标值,default=zeros%Pi-初始输入延迟,default=zeros%Ai-初始网络层延迟,default
7、=zeros%VV-验证向量的结构,default=%TV-测试向量的结构,default=%返回值:%net-训练之后的网络%TR-训练记录(训练次数及每次训练的误差)%Y-网络输出%E-网络误差%Pf-最终输入延迟%Af-最终网络层延迟%-%SIM 对 BP 神经网络进行仿真,函数格式:%Y,Pf,Af,E,perf=sim(net,P,PiAi,T)%参数与前同。%-%定义训练样本%P 为输入矢量echo on P=-1,-2,3,1;-1,1,5,-3;%T 为目标矢量T=-1,-1,1,1;%创建一个新的前向神经网络net=newff(minmax(P),3,1,tansig,pur
8、elin,traingdm)%-%训练函数:traingdm,功能:以动量 BP 算法修正神经网络的权值和阈值。%它的相关特性包括:%epochs:训练的次数,默认:100%goal:误差性能目标值,默认:0%lr:学习率,默认:0.01 名师资料总结-精品资料欢迎下载-名师精心整理-第 3 页,共 29 页 -%max_fail:确认样本进行仿真时,最大的失败次数,默认:5%mc:动量因子,默认:0.9%min_grad:最小梯度值,默认:1e-10%show:显示的间隔次数,默认:25%time:训练的最长时间,默认:inf%-%当前输入层权值和阈值inputWeights=net.IW1
9、,1 inputbias=net.b1%当前网络层权值和阈值layerWeights=net.LW2,1 layerbias=net.b2%设置网络的训练参数net.trainParam.show=50;net.trainParam.lr=0.05;net.trainParam.mc=0.9;net.trainParam.epochs=1000;net.trainParam.goal=1e-3;%调用 TRAINGDM 算法训练BP 网络net,tr=train(net,P,T);%对 BP 网络进行仿真A=sim(net,P)%计算仿真误差E=T-A MSE=mse(E)echo off f
10、igure;plot(1:4),T,-*,(1:4),A,-o)1 B P神经网络的原理及算法的基本步骤理 论上已证明,一个3层的B P网络能够实现任意的连续映射,可以任意精度逼近任何给定的连续函数。1.1B P神经网络的原理B P(B ack P rop aga tion)神经网络通常由具有多个节点的输入层(inp u t laye r)、隐含层(h idden laye r)和多个 或一个输出节点的输出层(ou tp u t laye r)组成,其学习过程分为信息的正向传播过程和误差的反向传播过程两个阶段。外部输入的信号经输入层、隐含层为止。的神经元逐层处理,向前传播到输出层,给出结果。如
11、果在输出层得不到期望输出,则转入逆向传播过程,将实际值与网络输出之间的误差沿原连接通路返回,通过修改各层神经元的连接权重,减少误差,然后再转入正向传播过程,反复迭代,直到误差小于给定的值名师资料总结-精品资料欢迎下载-名师精心整理-第 4 页,共 29 页 -表 1 1981 2005 年全国总人口(单位:万人)年份1981 1982 1983 1984 1985 1986 1987 1988 1989 人口99622 101541 102495 103604 104639 106008 108000 109614 111191 年份1990 1991 1992 1993 1994 1995
12、1996 1997 1998 人口114333 115823 117171 118517 119850 121121 122389 123626 124810 年份1999 2000 2001 2002 2003 2004 2005 人口125909 缺省127627 128453 129227 129988 130756 模型二预测2001 年 2010 年全国总人口(单位:万人)年份2001 2002 2003 2004 2005 人口127699 128457 129220 129987 130758 年份2006 2007 2008 2009 2010 人口131534 132315
13、133100 133890 134685 模型预测的全国总人口(1981 年至 2016 年)(单位:万人)年份1981 1982 1983 1984 1985 1991 人口99266 101308 102967 104600 106203 115172 年份1992 1993 1994 1995 2001 2002 人口116550 117895 119205 120480 127403 128436 年份2003 2004 2005 2006 2007 2008 人口129437 130405 131340 132244 133116 133958 年份2009 2010 2015 20
14、20 2025 2030 人口134770 135552 139049 141921 144257 146144 年份2035 2040 2045 2050 2060 2070 人口147659 148869 149832 150596 151678 152352 年份2080 2090 2100 2105 2110 2120 人口152769 153026 153185 153240 153283 153344 名师资料总结-精品资料欢迎下载-名师精心整理-第 5 页,共 29 页 -模型四预测2011 至 2020 年人口(单位:万人)年份2011 2012 2013 2014 2015
15、全国总人口134668 135478 136325 137185 138036 年份2016 2017 2018 2019 2020 全国总人口138862 139652 140402 141106 141760 2.1 利用 Matlab Script节点实现在此以对一个非线性函数的逼近作为例子来说明实现流程,其中输入矢量 p=-1 0.051;目标矢量 t=sin(2*pi*p)+0.1randn(size(p)。利用 Mat-名师资料总结-精品资料欢迎下载-名师精心整理-第 6 页,共 29 页 -lab Script节点实现 BP算法的过程如下:(1)新建一个 LabVIEW vi,在
16、框图程序中添加Matlab Script节点。(2)在节点内添加 Matlab 的动量 BP算法实现代码,并分别在节点左右边框分别添加对应的输入/输出参数,如图 1 所示。(3)在 vi 的前面板添加相应的控件,设置输入参数,连接输出控件。执行程序,结果如图 2、图 3 所示。名师资料总结-精品资料欢迎下载-名师精心整理-第 7 页,共 29 页 -下面的代码将重建我们以前的网络,然后用批处理最速下降法训练网络。(注意用批处理方式训练的话所有的输入要设置为矩阵方式)net=newff(-1 2;0 5,3,1,tansig,purelin,traingd);名师资料总结-精品资料欢迎下载-名师
17、精心整理-第 8 页,共 29 页 -第23 卷第1 期陈龙等:MATLAB 神经网络工具箱在河流水质预测中的应用73 net.trainParam.show=50;net.trainParam.lr=0.05;net.trainParam.epochs=300;net.trainParam.goal=1e-5;p=-1-1 2 2;0 5 0 5;t=-1-1 1 1;net=train(net,p,t);TRAINGD,Epoch 0/300,MSE 1.59423/1e-05,Gradient 2.76799/1e-10 TRAINGD,Epoch 50/300,MSE 0.002363
18、82/1e-05,Gradient 0.0495292/1e-10 TRAINGD,Epoch 100/300,MSE 0.000435947/1e-05,Gradient 0.0161202/1e-10 TRAINGD,Epoch 150/300,MSE 8.68462e-05/1e-05,Gradient 0.00769588/1e-10 TRAINGD,Epoch 200/300,MSE 1.45042e-05/1e-05,Gradient 0.00325667/1e-10 TRAINGD,Epoch 211/300,MSE 9.64816e-06/1e-05,Gradient 0.00
19、266775/1e-10 TRAINGD,Performance goal met.a=sim(net,p)a=-1.0010-0.9989 1.0018 0.9985 用nnd12sd1 来演示批处理最速下降法的性能。带动量的批处理梯度下降法(TRAINGDM)net=newff(-1 2;0 5,3,1,tansig,purelin,traingdm);net.trainParam.show=50;名师资料总结-精品资料欢迎下载-名师精心整理-第 9 页,共 29 页 -第23 卷第1 期陈龙等:MATLAB 神经网络工具箱在河流水质预测中的应用73 net.trainParam.lr=0
20、.05;net.trainParam.mc=0.9;net.trainParam.epochs=300;net.trainParam.goal=1e-5;p=-1-1 2 2;0 5 0 5;t=-1-1 1 1;net=train(net,p,t);TRAINGDM,Epoch 0/300,MSE 3.6913/1e-05,Gradient 4.54729/1e-10 TRAINGDM,Epoch 50/300,MSE 0.00532188/1e-05,Gradient 0.213222/1e-10 TRAINGDM,Epoch 100/300,MSE 6.34868e-05/1e-05,G
21、radient 0.0409749/1e-10 TRAINGDM,Epoch 114/300,MSE 9.06235e-06/1e-05,Gradient 0.00908756/1e-10 TRAINGDM,Performance goal met.a=sim(net,p)a=-1.0026-1.0044 0.9969 0.9992 3.1 MATLAB 神经网络工具箱的GUI(图形用户界面)工具.神经网络工具箱的GUI 工具主要包括:1)神经网络GUI 工具主窗口;2)神经网络的建立窗口;3)网 络训练对话框;4)自适应参数设置对话框;5)权 值显示窗口.通过神 经网络工具箱的GUI 工具按
22、钮就能 很 方便 地 打 开所 建立 的神 经网 络的 结 构 图进 行 察看,也可 以 看 到一个训练过程的 偏 差曲线变化图.3.2 神 经 网 络 工 具 箱 解 决 问 题 的 一 般 步 骤1)对 待解 决的 问题 进行 分析,根 据 各种 网络 的特点 选 用合 适 的网络模 型;2)建 立网 络;3)对网络初始化;4)对网 络进行训练;5)名师资料总结-精品资料欢迎下载-名师精心整理-第 10 页,共 29 页 -第23 卷第1 期陈龙等:MATLAB 神经网络工具箱在河流水质预测中的应用73 对网络进行仿真检验;6)应用 网络解 决问题.4 系统的预测仿真4.1 使 用 神 经
23、 网 络GUI 工 具 建 立 神 经 网 络 的 输 入 样 本 和 目 标 样 本1)在 MATLAB 命令窗口输入nntool,打开图形用户界面工具主窗口,如图1 所示.2)单击 New Data 按钮,打开数据生成对话框.建立输 入样本 P,数据的输入和设置如图 2 所 示,单击Create 按钮关闭对话框.3)依 照 上 一 步,输 入 目 标 样 本T,数 据 类 型 选Targets.回 到GUI 工 具 的 主 窗 口,单 击Export按钮弹出导出对话框,选中变量P 和 T,然后单击Export 按钮,把变量 P 和 T 导出到工作区.这为仿真文 件从工作空间调用导入数据做好
24、了准备.4.2 建 立 仿 真 模 型 文 件 进 行 预 测运行 MATLAB 软件中的Simulink 仿真环境,在神经网络模块库中调用神经网络预测控制模块NN Predictive Controller,用模块封装技术建立河流水质数学方程模块,连接信号源模块和示波器模 块后就建立了河流水质预测仿真文件predwq.mdl,如图 3,其中 From Workspace 模块中是目标样本T 的数据,可以直接从工作区导入.双击神经网络预测控制模块NN Predictive Controller,弹出如图4 的窗口,此窗口用于设 计模型预测控制器,输入控制器变量空间N 2 和Nu、权 值 参 数
25、 和 控 制 最 优 化 参 数 的 值.然 后 点 击Plant Identification 按钮,打 开系 统辨 识窗 口,从工 作区导 入 输 入样 本 P,设置好其它参数后训练网络,单 击OK 按 钮,将 训 练 好 的 神 经 网络 模 型 导 入 到 神 经 网 络 预 测 控 制 模 块 中,在NN Predictive Controller 窗 口 中 单 击OK 按 钮,将 控 制 器 参 数 导 入 到NN Predictive Controller 模 块 中.名师资料总结-精品资料欢迎下载-名师精心整理-第 11 页,共 29 页 -第23 卷第1 期陈龙等:MATL
26、AB 神经网络工具箱在河流水质预测中的应用73 图 3predwq.mdl 仿 真文 件图4神 经 网 络 预 测 控制 模 块窗 口系 统 模 块System Model 是 用 模 块 封 装 技 术 封 装 的 河 流 水 质 微 分 方 程 式(4)的 仿 真 模 块,如 图5 所 示.在 predwq Simulink 主 窗 口,仿 真 时 间 输 入 100,再 单 击 Start simulation 命 令 按 钮 开 始 仿 真.仿 真 结 束 后,双 击 示 波 器 模 块 就 可 以 查 看 仿 真 结 果,如 图 6 所 示.对 仿 真 结 果 和 目 标 样 本 的
27、值 进 行 比较,根 据 它 们 的 差 值 绘 出 预 测 误 差 变 化 曲 线,如 图 7 所 示.图 5 河 流 水 质 微 分 方 程 仿 真 模 块图6 目 标 和 预 测 结 果 图5 结 果 与 讨论比 较 图 6、图 7 知,本 文 建 立 的 网 络 系 统 对 水 质 参 数 耗 氧 量 的 预 测 图 像 和 目 标 样 本 基 本 一致.把 仿 真 预 测结 果 数 据 和 实 际 目 标 样 本 数 据 进 行 比 较,正、负 最 大 误差 分 别 为 0.11 和0.06,最 小 误 差 为 0,虽 然 还 有 偏 差,但 误 差 是 在 满 意 的 范 围 之
28、内.因 此,把 河 流 水 质 的 数 学模型 用MATLAB 神 经 网 络 进 行 仿 真 预 测,具 有 较 高 的精 度,为 河 流 水 质 预 测 提 供 了 方 便 的 方法.名师资料总结-精品资料欢迎下载-名师精心整理-第 12 页,共 29 页 -第23 卷第1 期陈龙等:MATLAB 神经网络工具箱在河流水质预测中的应用73 图 7 预 测 误 差 的 曲 线 变 化名师资料总结-精品资料欢迎下载-名师精心整理-第 13 页,共 29 页 -第23 卷第1 期陈龙等:MATLAB 神经网络工具箱在河流水质预测中的应用73 利用 NNToolbox 4.0.2 架构神经网络主要
29、采用以下两种方法:(1)使用网络数据管理器(Network Data Manager)。具体操作为:在 Launch Pad 窗体中点击 Neural Network Toolbox目录下的。nntool 文件,即在计算机屏幕中央出现Network Data Manager 窗体;点击窗体中 NewNetwork按钮,根据提示设定网络类型、网络结构、网络算法和网络激活函数即可生成用户定义的神经网络;点击 View 按钮可显示该神经网络的结构图;点击 initialize、simu-late、train和 adapt 按钮并设定参数可对神经网络进行初始化、模拟、训练和仿真;最后点击 Export
30、 按钮可将网络模拟、训练和仿真的结果以文件的形式导出。该方法操作简易,无需编写程序代码,即可完成神经网络的构建、初始化、训练和仿真等主要工作。但是该方法不能和MATLAB 其他程序动态链接,网络仿真结果只能以数据文件的形式导出,不能可视化显示。(2)编写 MATLAB 应用程序,即运用 MATLAB 语言引用神经网络工具箱函数编写程序代码并保存为M文件,然后运行该文件。该种方法可以根据研究人员的需要,调用 MATLAB 丰富的内部函数,并能和各类数据库及其他应用程序(包括 C、FOR-TRAN 程序)动态链接,使神经网络功能更为强大。本研究即采用该种方法,其中引用的重要算法、函数及参数将在第2
31、、3 节详述。名师资料总结-精品资料欢迎下载-名师精心整理-第 14 页,共 29 页 -第23 卷第1 期陈龙等:MATLAB 神经网络工具箱在河流水质预测中的应用73 中国未来几年人口总量的预测本文对所使用的序列数据进行GM(1,1)模型维数优化时得到最佳的维数是58 维不等,均属于短序列预测,只 适合短期的人口总量的预测,所以对2008-2012 年共5 个时间序列点的中国人口总量进行预测,结果如表2 所示。表2 灰色人工神经网络(GANN)模型对2008-2012 年中国人口总量预测的结果万人年份20082009201020112012总人口132 663132 963133 7061
32、34 373135 025名师资料总结-精品资料欢迎下载-名师精心整理-第 15 页,共 29 页 -http:/-1-建立 BP神经网络预测模型在进行 BP网络预测模型设计时,主要考虑网络的层数和每层中神经元的个数。神经网络通过计算机程序实现对非线性映射逼近,在众多语言中,MATLAB 语言允许数学形式的语言编写程序,比其他语言更接近我们书写计算公式的思维方式。因此编程效率高,易学易懂。年份人 口总数(万人)198510585119861075071987109300198811102619891127041990114333名师资料总结-精品资料欢迎下载-名师精心整理-第 16 页,共 2
33、9 页 -http:/-2-Training-BlueGoal-Bla ck199111582319921171711993118517199411985019951211211996122389199712362619981247611999125786200012674320011276272002128453200312922720041299882005130756采用单隐层的BP 网络进行预测3。建立两层神经网络,由于输入样本为3 维的输入向量,因此,输入层一共有 3 个神经元,根据 Kolmogorov2定理,网络应该为 3 7 3 的结构。其中,threshold 设定了网络输入
34、向量的取值范围 0,1,第一层神经元数为3,传函类型为 LOGSIG,第二层神经元数为7,传函类型为 PURELIN,采用动量梯度下降反向传播算法对网络进行训练。中间层的神经元个数是很难确定的,而这又在很大程度上影响着网络的预测性能。当网络的预测误差最小时,网络中间层的神经元数目就是最佳值。进行对比后,可见 中间层神经元个数为 8 时,网络的预测性能最好。训练结果如图 1 所示,网络的预报误差如Performance is 9.89455e-005,Goal is 0.0001010 0.035-110 0.030.025-210 0.02 0.015-310 0.01 0.005-410 0
35、-0.005 0 50 100 150 155 Epochs-0.01 1 1.2 1.4 1.6 1.8 2 2.2 2.4 2.6 2.8 3 名师资料总结-精品资料欢迎下载-名师精心整理-第 17 页,共 29 页 -http:/-3-图1训练结果(中间层神经元数目:8)图2网络的预报误差(中间层神经元数目:8)年份总人口数(万人)2006140800200714250020081466002009151000名师资料总结-精品资料欢迎下载-名师精心整理-第 18 页,共 29 页 -http:/-4-2010155800201115960020121621002013163300201
36、4163800201516400020161641002017164100201816410020191641002020164100,每行语句前都有一个符号“”,此即命令提示符。在此符号后(也只能在此符号后)输入各种语句并按Enter 键,方可被MATLAB 接收和执行。执行的结果通常就直接显示在语句下方,如图1.2 所示。不同类型语句用不同颜色区分。在默认情况下,输入的命令、函数、表达式以及计算结果等采用黑色字体,字符串采用赭红色,if、for 等关键词采用蓝色,注释语句用绿色。因为 MATLAB 是一个多功能集成软件,不同的功能需要使用不同的文件格式去表现,所以 MATLAB 的文件也有
37、多种格式。最基本的是 M文件、数据文件和图形文件,除此之外,还有 MEX 文件、模型文件和仿真文件等。下面分别予以说明。(1)M 文件,以.m 为扩展名,所以称为 M 文件。M 文件是由一系列MATLAB 语句组 成的文件,包括命令文件和函数文件两类,命令文件类似于其他高级语言中的主程序或主 函数,而函数文件则类似于子程序或被调函数。MATLAB 众多工具箱中的(函数)文件基本上是M 函数文件。因为它们是由ASCII 码表示的文件,所以可由任一文字处理软件编辑后以文本格式存放。(2)数据文件,以.mat 为扩展名,所以又称 MAT 文件。在讨论工作空间窗口时已经涉及到 MAT 文件。显然,数据
38、文件保存了MATLAB 工作空间窗口中变量的数据。(3)图形文件,以.fig 为扩展名。主要由MATLAB 的绘图命令产生,当然也可用File菜单中的 New 命令建立。(4)MEX 文件,以.mex 或.dll 为扩展名,所以称 MEX 文件。MEX 实际是由 MATLAB Executable 缩写而成的,由此可见,MEX 文件是 MATLAB 的可执行文件。(5)模型和仿真文件,模型文件以.mdl 为扩展名,由Simulink 仿真工具箱在建立各种 仿真模型时产生。仿真文件以.s 为扩展名。名师资料总结-精品资料欢迎下载-名师精心整理-第 19 页,共 29 页 -http:/-5-键盘
39、输入语句(input)其调用格式有(1)x=input(prompt):显示提示字符串prompt,要求用户键盘输入x 的值。(2)x=input(prompt,s):显示提示字符串prompt,要求用户键盘输入字符型变量x 的 值,不至于将输入的数字看成是数值型数据。6.3.2 屏幕输出语句(disp)屏幕输出最简单的方法是直接写出欲输出的变量或数组名,后面不加分号。此外,可 以采用 disp 语句,其调用格式为disp(x)。6.3.3 M 数据文件的存储/加载(save/load)1.save 语句其调用格式有(1)save:将所有工作空间变量存储在名为MATLAB.mat 的文件中。(
40、2)save filename:将所有工作空间变量存储在名为filename 的文件中。(3)save filename X Y Z:将工作空间的指定变量X、Y、Z 存于名为 filename 的文件中。2.load 语句其调用格式有(1)load:如果 MATLAB.mat 文件存在,则加载 MATLAB.mat 文件中存储的所有变量到工作空间;否则返回一错误信息。(2)load filename:如果 filename 文件存在,则加载 filename 文件中存储的所有变量到工作空间;否则返回一错误信息。(3)load filename X Y Z:如果filename 文件及存储的变量
41、X、Y、Z 存在,则加载 filename文件中存储的变量X、Y、Z 到工作空间;否则返回一错误信息。在MATLAB 中,主要的二维绘图函数如下:(1)plot:x 轴和 y 轴均为线性刻度。(2)loglog:x 轴和 y 轴均为对数刻度。(3)semilogx:x 轴为对数刻度,y 轴为线性刻度。(4)semilogy:x 轴为线性刻度,y 轴为对数刻度。(5)plotyy:绘制双纵坐标图形。其中 plot 是最基本的二维绘图函数,其调用格式有plot(Y):若Y 为实向量,则以该向量元素的下标为横坐标,以 Y 的各元素值为纵坐标,绘制二维曲线;若Y 为复数向量,则等效于plot(real
42、(Y),imag(Y);若 Y 为实矩阵,则按列绘制每列元素值相对其下标的二维曲线,曲线的条数等于Y 的列数;若Y 为复数矩阵,则按列分别以元素实部和虚部为横、纵坐标绘制多条二维曲线。plot(X,Y):若 X、Y 为长度相等的向量,则绘制以X 和 Y 为横、纵坐标的二维曲线;若 X 为向量,Y 是有一维与Y 同维的矩阵,则以 X 为横坐标绘制出多条不同色彩的曲线,曲线的条数与 Y 的另一维相同;若X、Y 为同维矩阵,则绘制以 X 和Y 对应的列元素为横、纵坐标的多条二维曲线,曲线的条数与矩阵的列数相同。plot(X1,Y1,X2,Y2,X n,Yn):其中的每一对参数Xi 和 Yi(i=1,
43、2,.,n)的取值和所绘图名师资料总结-精品资料欢迎下载-名师精心整理-第 20 页,共 29 页 -http:/-6-形与中相同。plot(X1,Y1,LineSpec,.):以 LineSpec 指定的属性,绘制所有Xn、Yn 对应的曲线。plot(.,PropertyName,PropertyValue,.):对于由 plot 绘制的所有曲线,按照设置的属性值进行绘制,PropertyName 为属性名,PropertyValue 为对应的属性值。h=plot(.):调用函数 plot 时,同时返回每条曲线的图形句柄h(列向量)。在 工作空 间 查 看 各个 变 量,或在 命 令 窗 口
44、用 who,whos(注 意 大 小写)查看各 个变量。在工作空间双击变量,弹出Array Editor 窗口(数组编辑器窗口),即可修改变量。使用 save 命令把工作空间的全部变量保存为my_var.mat 文件。save my_var.mat 输入下列命令:clear all%清除工作空间的所有变量观察工作空间的变量是否被清空。使用load 命令把刚才保存的变量载入工作空间。load my_var.mat 清除命令窗口命令:clc 名师资料总结-精品资料欢迎下载-名师精心整理-第 21 页,共 29 页 -http:/-7-一个非常优秀的BP 神经网络源程序%Construct the
45、network object net=network;%Specify the input and layer size net.numInputs=1;net.numLayers=3;%Set connections among all parts net.biasConnect=1;1;1;net.inputConnect=1;1;0;net.layerConnect=0 0 0;%(1,j):connect to layer 1 from layer j 1 0 0;%(2,j):connect to layer 2 from layer j 0 1 0;%(3,j):connect t
46、o layer 3 from layer j net.outputConnect=0 0 1;net.targetConnect=0 0 1;%Set input range net.inputs1.range=-2 2;-1 1;-2 2;-1 1;-1 1;%Set neural number for layer 1 net.layers1.size=4;%8,10,15%Set transfer functions for layer 1 net.layers1.transferFcn=purelin;%Set initial function for layer 2 net.layer
47、s1.initFcn=initnw;%Set neural number for layer 2 net.layers2.size=3;%4,10,15%Set transfer functions for layer 2 net.layers2.transferFcn=tansig;%Set initial function for layer 2 net.layers2.initFcn=initnw;%Set neural number for layer 3 net.layers3.size=1;%Set transfer functions for layer 3 net.layers
48、3.transferFcn=purelin;名师资料总结-精品资料欢迎下载-名师精心整理-第 22 页,共 29 页 -http:/-8-%Set initial function for layer 3 net.layers3.initFcn=initnw;%Set input weight delays for layer 1 net.inputWeights1,1.delays=0 1 2 3 5 7 10 15 20 25 30 40 50 60 80;%from input 1 to layer 1 net.inputWeights2,1.delays=0 1 2 7 10 30;%
49、from input 1 to layer 2 net.initFcn=initlay;net.performFcn=mse;%Choose the train method net.adaptFcn=trainlm;%Initialize the optimized parameters in net works net=init(net);%Set data file:Loading orignal data fNameIn1=testFileName;fileName1=fullfile(C:,stockeys,stockDatabase,NYStock60,fNameIn1ii);fi
50、d=fopen(fileName1);data=fscanf(fid,%d,%d,%g,%g,%g,%g,%g,7 inf);data=data;fclose(fid);date=data(:,1);time=data(:,2);openp=data(:,3);highp=data(:,4);lowp=data(:,5);closep=data(:,6);volume=data(:,7);endLine_wholwFile=size(time);file_Length=endLine_wholwFile;%Set input data and target data startLine0=20