用matlab編BP神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)程序_第1頁(yè)
用matlab編BP神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)程序_第2頁(yè)
用matlab編BP神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)程序_第3頁(yè)
用matlab編BP神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)程序_第4頁(yè)
用matlab編BP神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)程序_第5頁(yè)
已閱讀5頁(yè),還剩17頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、求用matlab編BP神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)程序求一用matlab編的程序 P1=3140 3767 4801 5288 5501 6157 6495 7061P2=127 133 130 125 136 140 142 142 T=455 544 642 668 731 792 862 918 % 創(chuàng)建一個(gè)新的前向神經(jīng)網(wǎng)絡(luò) net_1=newff(minmax(P1),10,1,'tansig','purelin','traingdm')% 創(chuàng)建一個(gè)新的前向神經(jīng)網(wǎng)絡(luò) net_1=newff(minmax(P2),10,1,'tansig'

2、,'purelin','traingdm')% 當(dāng)前輸入層權(quán)值和閾值inputWeights=net_1.IW1,1inputbias=net_1.b1% 當(dāng)前網(wǎng)絡(luò)層權(quán)值和閾值layerWeights=net_1.LW2,1layerbias=net_1.b2% 設(shè)置訓(xùn)練參數(shù)net_1.trainParam.show = 50;net_1.trainParam.lr = 0.05;net_1.trainParam.mc = 0.9;net_1.trainParam.epochs = 10000;net_1.trainParam.goal = 1e-3;% 調(diào)用

3、TRAINGDM 算法訓(xùn)練 BP 網(wǎng)絡(luò)net_1,tr=train(net_1,P,T);% 對(duì) BP 網(wǎng)絡(luò)進(jìn)行仿真A = sim(net_1,P);% 計(jì)算仿真誤差 E = T - A;MSE=mse(E)X1=7505 7972'%測(cè)試sim(net_1,X1)X2=145 146'%測(cè)試sim(net_1,X2) %不可能啊 我2009  28 對(duì)初學(xué)神經(jīng)網(wǎng)絡(luò)者的小提示第二步:掌握如下算法:2.最小均方誤差,這個(gè)原理是下面提到的神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)算法的理論核心,入門者要先看高等數(shù)學(xué)(高等教育出版社,同濟(jì)大學(xué)版)第8章的第十節(jié):“最小二乘法”。3.在第2步的基礎(chǔ)上看He

4、bb學(xué)習(xí)算法、SOM和K-近鄰算法,上述算法都是在最小均方誤差基礎(chǔ)上的改進(jìn)算法,參考書籍是神經(jīng)網(wǎng)絡(luò)原理(機(jī)械工業(yè)出版社,Simon Haykin著,中英文都有)、人工神經(jīng)網(wǎng)絡(luò)與模擬進(jìn)化計(jì)算(清華大學(xué)出版社,閻平凡,張長(zhǎng)水著)、模式分類(機(jī)械工業(yè)出版社,Richard O. Duda等著,中英文都有)、神經(jīng)網(wǎng)絡(luò)設(shè)計(jì)(機(jī)械工業(yè)出版社,Martin T. Hargan等著,中英文都有)。4.ART(自適應(yīng)諧振理論),該算法的最通俗易懂的讀物就是神經(jīng)網(wǎng)絡(luò)設(shè)計(jì)(機(jī)械工業(yè)出版社,Martin T. Hargan等著,中英文都有)的第15和16章。若看理論分析較費(fèi)勁可直接編程實(shí)現(xiàn)一下16.2.7節(jié)的ART1

5、算法小節(jié)中的算法.4.BP算法,初學(xué)者若對(duì)誤差反傳的分析過(guò)程理解吃力可先跳過(guò)理論分析和證明的內(nèi)容,直接利用最后的學(xué)習(xí)規(guī)則編個(gè)小程序并測(cè)試,建議看機(jī)器學(xué)習(xí)(機(jī)械工業(yè)出版社,Tom M. Mitchell著,中英文都有)的第4章和神經(jīng)網(wǎng)絡(luò)設(shè)計(jì)(機(jī)械工業(yè)出版社,Martin T. Hargan等著,中英文都有)的第11章。BP神經(jīng)網(wǎng)絡(luò)Matlab實(shí)例(1)分類:Matlab實(shí)例采用Matlab工具箱函數(shù)建立神經(jīng)網(wǎng)絡(luò),對(duì)一些基本的神經(jīng)網(wǎng)絡(luò)參數(shù)進(jìn)行了說(shuō)明,深入了解參考Matlab幫助文檔。% 例1 采用動(dòng)量梯度下降算法訓(xùn)練 BP 網(wǎng)絡(luò)。 % 訓(xùn)練樣本定義如下: % 輸入矢量為   % p =-

6、1 -2 3 1 %     -1 1 5 -3 % 目標(biāo)矢量為   t = -1 -1 1 1 close all clear clc % -% NEWFF生成一個(gè)新的前向神經(jīng)網(wǎng)絡(luò),函數(shù)格式:% 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% (對(duì)于R維輸入,PR是一個(gè)R x 2 的矩陣,每一行是相應(yīng)輸入的邊界值)% Si - 第i層的維數(shù)% TFi - 第i層的傳遞函數(shù),

7、 default = 'tansig'% BTF - 反向傳播網(wǎng)絡(luò)的訓(xùn)練函數(shù), default = 'traingdx'% BLF - 反向傳播網(wǎng)絡(luò)的權(quán)值/閾值學(xué)習(xí)函數(shù), default = 'learngdm'% PF - 性能函數(shù), default = 'mse'% -% TRAIN對(duì) BP 神經(jīng)網(wǎng)絡(luò)進(jìn)行訓(xùn)練,函數(shù)格式:% train(NET,P,T,Pi,Ai,VV,TV),輸入?yún)?shù):% net - 所建立的網(wǎng)絡(luò)% P - 網(wǎng)絡(luò)的輸入% T - 網(wǎng)絡(luò)的目標(biāo)值, default = zeros% Pi - 初始輸入延遲, de

8、fault = zeros% Ai - 初始網(wǎng)絡(luò)層延遲, default = zeros% VV - 驗(yàn)證向量的結(jié)構(gòu), default = % TV - 測(cè)試向量的結(jié)構(gòu), default = % 返回值:% net - 訓(xùn)練之后的網(wǎng)絡(luò)% TR - 訓(xùn)練記錄(訓(xùn)練次數(shù)及每次訓(xùn)練的誤差)% Y - 網(wǎng)絡(luò)輸出% E - 網(wǎng)絡(luò)誤差% Pf - 最終輸入延遲% Af - 最終網(wǎng)絡(luò)層延遲% -% SIM對(duì) BP 神經(jīng)網(wǎng)絡(luò)進(jìn)行仿真,函數(shù)格式:% Y,Pf,Af,E,perf = sim(net,P,PiAi,T)% 參數(shù)與前同。% -% % 定義訓(xùn)練樣本 % P 為輸入矢量 echo onP=-1, -2,

9、   3,   1;  -1,   1,   5, -3; % T 為目標(biāo)矢量 T=-1, -1, 1, 1; % 創(chuàng)建一個(gè)新的前向神經(jīng)網(wǎng)絡(luò) net=newff(minmax(P),3,1,'tansig','purelin','traingdm') % -% 訓(xùn)練函數(shù):traingdm,功能:以動(dòng)量BP算法修正神經(jīng)網(wǎng)絡(luò)的權(quán)值和閾值。% 它的相關(guān)特性包括:% epochs:訓(xùn)練的次數(shù),默認(rèn):100% goal:誤差性能目標(biāo)值,默認(rèn):0% lr:學(xué)習(xí)率,默認(rèn):0.01% max_fail:確認(rèn)樣本進(jìn)

10、行仿真時(shí),最大的失敗次數(shù),默認(rèn):5% mc:動(dòng)量因子,默認(rèn):0.9% min_grad:最小梯度值,默認(rèn):1e-10% show:顯示的間隔次數(shù),默認(rèn):25% time:訓(xùn)練的最長(zhǎng)時(shí)間,默認(rèn):inf% -% 當(dāng)前輸入層權(quán)值和閾值 inputWeights=net.IW1,1 inputbias=net.b1 % 當(dāng)前網(wǎng)絡(luò)層權(quán)值和閾值 layerWeights=net.LW2,1 layerbias=net.b2 % 設(shè)置網(wǎng)絡(luò)的訓(xùn)練參數(shù) net.trainParam.show = 50; net.trainParam.lr = 0.05; net.trainParam.mc = 0.9; net

11、.trainParam.epochs = 1000; net.trainParam.goal = 1e-3;   % 調(diào)用 TRAINGDM 算法訓(xùn)練 BP 網(wǎng)絡(luò) net,tr=train(net,P,T); % 對(duì) BP 網(wǎng)絡(luò)進(jìn)行仿真 A = sim(net,P) % 計(jì)算仿真誤差 E = T - A MSE=mse(E) echo offfigure;plot(1:4),T,'-*',(1:4),A,'-o')1 B P神經(jīng)網(wǎng)絡(luò)的原理及算法的基本步驟理 論上已證 明 ,一個(gè) 3層的 B P網(wǎng)絡(luò)能夠?qū)崿F(xiàn)任意的連續(xù)映射 ,可以任意 精度逼近任何給定的連

12、續(xù)函數(shù) 。1. 1B P神經(jīng)網(wǎng)絡(luò)的原理B P (B ack P rop aga tion)神經(jīng)網(wǎng)絡(luò)通常由具有多個(gè)節(jié)點(diǎn)的 輸入層 ( inp u t laye r) 、隱含層 ( h idden laye r) 和多個(gè) 或一個(gè)輸 出節(jié)點(diǎn)的輸出層 ( ou tp u t laye r)組成 ,其學(xué)習(xí)過(guò)程分為信息的 正向傳播過(guò)程和誤差的反向傳播過(guò)程兩個(gè)階段 。外部輸入 的信號(hào)經(jīng)輸入層 、隱含層為止 。的神經(jīng)元逐層處理 ,向前傳播到輸 出層 ,給出結(jié)果 。如果在輸出層得不到期望輸出 ,則轉(zhuǎn)入逆 向傳播過(guò)程 ,將實(shí)際值與網(wǎng)絡(luò)輸出之間的誤差沿原連接通路 返回 ,通過(guò)修改各層神經(jīng)元的連接權(quán)重 ,減少誤差 ,

13、然后再轉(zhuǎn) 入正向傳播過(guò)程 ,反復(fù)迭代 ,直到誤差小于給定的值表1 19812005年全國(guó)總?cè)丝冢▎挝唬喝f(wàn)人)年份198119821983198419851986198719881989人口99622101541102495103604104639106008108000109614111191年份199019911992199319941995199619971998人口114333115823117171118517119850121121122389123626124810年份1999200020012002200320042005人口125909缺省1276271284531292271

14、29988130756模型二預(yù)測(cè)2001年2010年全國(guó)總?cè)丝冢▎挝?萬(wàn)人)年份20012002200320042005人口127699128457129220129987130758年份20062007200820092010人口131534132315133100133890134685 模型預(yù)測(cè)的全國(guó)總?cè)丝?1981年至2016年)(單位:萬(wàn)人)年份198119821983198419851991人口99266101308102967104600106203115172年份199219931994199520012002人口11655011789511920512048012740312

15、8436年份200320042005200620072008人口129437130405131340132244133116133958年份200920102015202020252030人口134770135552139049141921144257146144年份203520402045205020602070人口147659148869149832150596151678152352年份208020902100210521102120人口152769153026153185153240153283153344 模型四預(yù)測(cè)2011至2020年人口(單位:萬(wàn)人)年份2011201220132

16、0142015全國(guó)總?cè)丝?34668135478136325137185138036年份20162017201820192020全國(guó)總?cè)丝?388621396521404021411061417602.1利用Matlab Script節(jié)點(diǎn)實(shí)現(xiàn)在此以對(duì)一個(gè)非線性函數(shù)的逼近作為例子來(lái)說(shuō)明實(shí)現(xiàn)流程,其中輸入矢量p=-10.051;目標(biāo)矢量t=sin(2*pi*p)+0.1randn(size(p)。利用Mat-lab Script節(jié)點(diǎn)實(shí)現(xiàn)BP算法的過(guò)程如下:(1)新建一個(gè)LabVIEW vi,在框圖程序中添加Matlab Script節(jié)點(diǎn)。(2)在節(jié)點(diǎn)內(nèi)添加Matlab的動(dòng)量BP算法實(shí)現(xiàn)代碼,并分別

17、在節(jié)點(diǎn)左右邊框分別添加對(duì)應(yīng)的輸入/輸出參數(shù),如圖1所示。(3)在vi的前面板添加相應(yīng)的控件,設(shè)置輸入?yún)?shù),連接輸出控件。執(zhí)行程序,結(jié)果如圖2、圖3所示。下面的代碼將重建我們以前的網(wǎng)絡(luò),然后用批處理最速下降法訓(xùn)練網(wǎng)絡(luò)。(注意用批處 理方式訓(xùn)練的話所有的輸入要設(shè)置為矩陣方式)net=newff(-1 2; 0 5,3,1,'tansig','purelin','traingd');第 23 卷 第 1 期陳龍等:MATLAB 神經(jīng)網(wǎng)絡(luò)工具箱在河流水質(zhì)預(yù)測(cè)中的應(yīng)用73net.trainParam.show = 50; net.trainParam.lr

18、 = 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-10TRAINGD, Epoch 50/300, MSE 0.00236382/1e-05, Gradient0.0495292/1e-10TRAINGD, Epoch 100/300, MSE 0.000435947/1e-05,

19、Gradient0.0161202/1e-10TRAINGD, Epoch 150/300, MSE 8.68462e-05/1e-05, Gradient0.00769588/1e-10TRAINGD, Epoch 200/300, MSE 1.45042e-05/1e-05, Gradient0.00325667/1e-10TRAINGD, Epoch 211/300, MSE 9.64816e-06/1e-05, Gradient0.00266775/1e-10TRAINGD, Performance goal met. a = sim(net,p)a =-1.0010 -0.9989

20、1.0018 0.9985用nnd12sd1 來(lái)演示批處理最速下降法的性能。 帶動(dòng)量的批處理梯度下降法(TRAINGDM)net=newff(-1 2; 0 5,3,1,'tansig','purelin','traingdm');net.trainParam.show = 50; net.trainParam.lr = 0.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 =

21、-1 -1 1 1; net=train(net,p,t);TRAINGDM, Epoch 0/300, MSE 3.6913/1e-05, Gradient 4.54729/1e-10TRAINGDM, Epoch 50/300, MSE 0.00532188/1e-05, Gradient0.213222/1e-10TRAINGDM, Epoch 100/300, MSE 6.34868e-05/1e-05, Gradient0.0409749/1e-10TRAINGDM, Epoch 114/300, MSE 9.06235e-06/1e-05, Gradient0.00908756/1

22、e-10TRAINGDM, Performance goal met. a = sim(net,p)a =-1.0026 -1.0044 0.9969 0.99923.1MATLAB 神經(jīng)網(wǎng)絡(luò)工具箱的 GUI(圖形用戶界面)工具. 神經(jīng)網(wǎng)絡(luò)工具箱的 GUI 工具主要包括:1)神經(jīng)網(wǎng)絡(luò) GUI 工具主窗口;2)神經(jīng)網(wǎng)絡(luò)的建立 窗口;3)網(wǎng)絡(luò)訓(xùn)練對(duì)話框;4)自適應(yīng)參數(shù)設(shè)置對(duì)話框;5)權(quán)值顯示窗口. 通過(guò)神經(jīng)網(wǎng)絡(luò)工具箱的 GUI 工具按鈕就能很方便地打開所建立的神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)圖進(jìn)行察看,也可以看到一個(gè)訓(xùn)練過(guò)程的 偏差曲線變化圖.3.2神經(jīng)網(wǎng)絡(luò)工具箱解決問(wèn)題的一般步驟1)對(duì)待解決的問(wèn)題進(jìn)行分析,根據(jù)各

23、種網(wǎng)絡(luò)的特點(diǎn)選用合適的網(wǎng)絡(luò)模型;2)建立網(wǎng)絡(luò);3) 對(duì)網(wǎng)絡(luò)初始化;4)對(duì)網(wǎng)絡(luò)進(jìn)行訓(xùn)練;5)對(duì)網(wǎng)絡(luò)進(jìn)行仿真檢驗(yàn);6)應(yīng)用網(wǎng)絡(luò)解決問(wèn)題.4 系統(tǒng)的預(yù)測(cè)仿真4.1使用神經(jīng)網(wǎng)絡(luò) GUI 工具建立神經(jīng)網(wǎng)絡(luò)的輸入樣本和目標(biāo)樣本1)在 MATLAB 命令窗口輸入 nntool,打開圖形用戶界面工具主窗口,如圖 1 所示.2)單擊 New Data 按鈕,打開數(shù)據(jù)生成對(duì)話框. 建立輸入樣本 P,數(shù)據(jù)的輸入和設(shè)置如圖 2 所 示,單擊 Create 按鈕關(guān)閉對(duì)話框.3)依照上一步,輸入目標(biāo)樣本 T ,數(shù)據(jù)類型選 Targets. 回到 GUI 工具的主窗口,單擊 Export按鈕彈出導(dǎo)出對(duì)話框,選中變量 P 和

24、 T,然后單擊 Export 按鈕,把變量 P 和 T 導(dǎo)出到工作區(qū). 這為 仿真文件從工作空間調(diào)用導(dǎo)入數(shù)據(jù)做好了準(zhǔn)備.4.2建立仿真模型文件進(jìn)行預(yù)測(cè)運(yùn)行 MATLAB 軟件中的 Simulink 仿真環(huán)境,在神經(jīng)網(wǎng)絡(luò)模塊庫(kù)中調(diào)用神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)控制模塊 NN Predictive Controller,用模塊封裝技術(shù)建立河流水質(zhì)數(shù)學(xué)方程模塊,連接信號(hào)源模塊和示波器模 塊后就建立了河流水質(zhì)預(yù)測(cè)仿真文件 predwq.mdl,如圖 3,其中 From Workspace 模塊中是目標(biāo)樣本 T 的數(shù)據(jù),可以直接從工作區(qū)導(dǎo)入.雙擊神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)控制模塊 NN Predictive Controller,彈

25、出如圖 4 的窗口,此窗口用于設(shè)計(jì)模 型預(yù)測(cè)控制器,輸入控制器變量空間 N 2 和 Nu 、權(quán)值參數(shù) 和控制最優(yōu)化參數(shù) 的值. 然后點(diǎn)擊 Plant Identification 按鈕,打開系統(tǒng)辨識(shí)窗口,從工作區(qū)導(dǎo)入輸入樣本 P,設(shè)置好其它參數(shù)后訓(xùn)練網(wǎng)絡(luò), 單擊 OK 按鈕,將訓(xùn)練好的神經(jīng)網(wǎng)絡(luò)模型導(dǎo)入到神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)控制模塊中, 在 NN PredictiveController 窗口中單擊 OK 按鈕,將控制器參數(shù)導(dǎo)入到 NN Predictive Controller 模塊中.圖 3 predwq.mdl 仿真文件圖 4 神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)控制模塊窗口系統(tǒng)模塊 System Model 是用模塊封

26、裝技術(shù)封裝的河流水質(zhì)微分方程式(4)的仿真模塊,如圖5 所示.在 predwq Simulink 主窗口,仿真時(shí)間輸入 100,再單擊 Start simulation 命令按鈕開始仿真. 仿 真結(jié)束后,雙擊示波器模塊就可以查看仿真結(jié)果,如圖 6 所示. 對(duì)仿真結(jié)果和目標(biāo)樣本的值進(jìn)行比 較,根據(jù)它們的差值繪出預(yù)測(cè)誤差變化曲線,如圖 7 所示.圖 5 河流水質(zhì)微分方程仿真模塊圖6 目標(biāo)和預(yù)測(cè)結(jié)果圖5 結(jié)果與討論比較圖 6、圖 7 知,本文建立的網(wǎng)絡(luò)系統(tǒng)對(duì)水質(zhì)參 數(shù)耗氧量的預(yù)測(cè)圖像和目標(biāo)樣本基本一致. 把仿真預(yù)測(cè) 結(jié)果數(shù)據(jù)和實(shí)際目標(biāo)樣本數(shù)據(jù)進(jìn)行比較,正、負(fù)最大誤 差分別為 0.11 和0.06,最

27、小誤差為 0,雖然還有偏差, 但誤差是在滿意的范圍之內(nèi). 因此,把河流水質(zhì)的數(shù)學(xué) 模型用 MATLAB 神經(jīng)網(wǎng)絡(luò)進(jìn)行仿真預(yù)測(cè),具有較高的 精度,為河流水質(zhì)預(yù)測(cè)提供了方便的方法.圖 7 預(yù)測(cè)誤差的曲線變化利用NNToolbox 4.0.2架構(gòu)神經(jīng)網(wǎng)絡(luò)主要采用以下兩種方法:(1)使用網(wǎng)絡(luò)數(shù)據(jù)管理器(Network Data Manager)。具體操作為:在Launch Pad窗體中點(diǎn)擊Neural Network Toolbox目錄下的。nntool文件,即在計(jì)算機(jī)屏幕中央出現(xiàn)Network Data Manager窗體;點(diǎn)擊窗體中NewNetwork按鈕,根據(jù)提示設(shè)定網(wǎng)絡(luò)類型、網(wǎng)絡(luò)結(jié)構(gòu)、網(wǎng)絡(luò)算法

28、和網(wǎng)絡(luò)激活函數(shù)即可生成用戶定義的神經(jīng)網(wǎng)絡(luò);點(diǎn)擊View按鈕可顯示該神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)圖;點(diǎn)擊initialize、simu-late、train和adapt按鈕并設(shè)定參數(shù)可對(duì)神經(jīng)網(wǎng)絡(luò)進(jìn)行初始化、模擬、訓(xùn)練和仿真;最后點(diǎn)擊Export按鈕可將網(wǎng)絡(luò)模擬、訓(xùn)練和仿真的結(jié)果以文件的形式導(dǎo)出。該方法操作簡(jiǎn)易,無(wú)需編寫程序代碼,即可完成神經(jīng)網(wǎng)絡(luò)的構(gòu)建、初始化、訓(xùn)練和仿真等主要工作。但是該方法不能和MATLAB其他程序動(dòng)態(tài)鏈接,網(wǎng)絡(luò)仿真結(jié)果只能以數(shù)據(jù)文件的形式導(dǎo)出,不能可視化顯示。(2)編寫MATLAB應(yīng)用程序,即運(yùn)用MATLAB語(yǔ)言引用神經(jīng)網(wǎng)絡(luò)工具箱函數(shù)編寫程序代碼并保存為M文件,然后運(yùn)行該文件。該種方法可以

29、根據(jù)研究人員的需要,調(diào)用MATLAB豐富的內(nèi)部函數(shù),并能和各類數(shù)據(jù)庫(kù)及其他應(yīng)用程序(包括C、FOR-TRAN程序)動(dòng)態(tài)鏈接,使神經(jīng)網(wǎng)絡(luò)功能更為強(qiáng)大。本研究即采用該種方法,其中引用的重要算法、函數(shù)及參數(shù)將在第2、3節(jié)詳述。中國(guó)未來(lái)幾年人口總量的預(yù)測(cè)本文對(duì)所使用的序列數(shù)據(jù)進(jìn)行 GM(1,1)模型維數(shù)優(yōu)化時(shí) 得到最佳的維數(shù)是 58 維不等,均屬于短序列預(yù)測(cè),只適合短 期的人口總量的預(yù)測(cè),所以對(duì) 2008-2012 年共 5 個(gè)時(shí)間序列點(diǎn) 的中國(guó)人口總量進(jìn)行預(yù)測(cè),結(jié)果如表 2 所示。表 2 灰色人工神經(jīng)網(wǎng)絡(luò)(GANN)模型對(duì) 2008-2012 年 中國(guó)人口總量預(yù)測(cè)的結(jié)果萬(wàn)人年份20082009201

30、020112012總?cè)丝?32 663132 963133 706134 373135 025建立BP神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)模型在進(jìn)行BP網(wǎng)絡(luò)預(yù)測(cè)模型設(shè)計(jì)時(shí),主要考慮網(wǎng)絡(luò)的層數(shù)和每層中神經(jīng)元的個(gè)數(shù)。神經(jīng)網(wǎng)絡(luò)通過(guò)計(jì)算機(jī)程序?qū)崿F(xiàn)對(duì)非線性映射逼近,在眾多語(yǔ)言中,MATLAB語(yǔ)言允許數(shù)學(xué)形式的語(yǔ)言編寫程序,比其他語(yǔ)言更接近我們書寫計(jì)算公式的思維方式。因此編程效率高,易學(xué)易懂。年份人 口總數(shù) (萬(wàn)人)198510585119861075071987109300198811102619891127041990114333- 6 -1991115823199211717119931185171994119850199

31、51211211996122389199712362619981247611999125786200012674320011276272002128453200312922720041299882005130756采用單隱層的 BP 網(wǎng)絡(luò)進(jìn)行預(yù)測(cè)3。建立兩層神經(jīng)網(wǎng)絡(luò),由于輸入樣本為 3 維的輸入向量,因此,輸入層一共有 3 個(gè)神經(jīng)元,根據(jù) Kolmogorov2定理,網(wǎng)絡(luò)應(yīng)該為 3 × 7 × 3 的結(jié)構(gòu)。 其中,threshold 設(shè)定了網(wǎng)絡(luò)輸入向量的取值范圍0,1,第一層神經(jīng)元數(shù)為 3,傳函類型為L(zhǎng)OGSIG,第二層神經(jīng)元數(shù)為 7,傳函類型為PURELIN,采用動(dòng)量梯度

32、下降反向傳播算法對(duì) 網(wǎng)絡(luò)進(jìn)行訓(xùn)練。中間層的神經(jīng)元個(gè)數(shù)是很難確定的,而這又在很大程度上影響著網(wǎng)絡(luò)的預(yù)測(cè) 性能。當(dāng)網(wǎng)絡(luò)的預(yù)測(cè)誤差最小時(shí),網(wǎng)絡(luò)中間層的神經(jīng)元數(shù)目就是最佳值。進(jìn)行對(duì)比后,可見(jiàn) 中間層神經(jīng)元個(gè)數(shù)為 8 時(shí),網(wǎng)絡(luò)的預(yù)測(cè)性能最好。訓(xùn)練結(jié)果如圖 1 所示,網(wǎng)絡(luò)的預(yù)報(bào)誤差如Performance is 9.89455e-005, Goal is 0.00010100.035-110 0.030.025T raining-B lue G oal-B la c k-210 0.020.015-310 0.010.005-4100-0.0050 50 100 150155 Epochs-0.0111.

33、2 1.4 1.6 1.822.2 2.4 2.6 2.83圖 1 訓(xùn)練結(jié)果(中間層神經(jīng)元數(shù)目:8)圖 2 網(wǎng)絡(luò)的預(yù)報(bào)誤差(中間層神經(jīng)元數(shù)目:8)年份總?cè)丝跀?shù)(萬(wàn)人)200614080020071425002008146600200915100020101558002011159600201216210020131633002014163800201516400020161641002017164100201816410020191641002020164100,每行語(yǔ)句前都有一個(gè)符號(hào)“>>”,此即命令提示符。在此符號(hào)后(也只能 在此符號(hào)后)輸入各種語(yǔ)句并按 Enter 鍵,方可被

34、 MATLAB 接收和執(zhí)行。執(zhí)行的結(jié)果通常 就直接顯示在語(yǔ)句下方,如圖 1.2 所示。不同類型語(yǔ)句用不同顏色區(qū)分。在默認(rèn)情況下,輸入的命令、函數(shù)、表達(dá)式以及計(jì)算 結(jié)果等采用黑色字體,字符串采用赭紅色,if、for 等關(guān)鍵詞采用藍(lán)色,注釋語(yǔ)句用綠色。因?yàn)?MATLAB 是一個(gè)多功能集成軟件,不同的功能需要使用不同的文件格式去表現(xiàn), 所以 MATLAB 的文件也有多種格式。最基本的是 M 文件、數(shù)據(jù)文件和圖形文件,除此之 外,還有 MEX 文件、模型文件和仿真文件等。下面分別予以說(shuō)明。(1) M 文件,以.m 為擴(kuò)展名,所以稱為 M 文件。M 文件是由一系列 MATLAB 語(yǔ)句組 成的文件,包括命

35、令文件和函數(shù)文件兩類,命令文件類似于其他高級(jí)語(yǔ)言中的主程序或主 函數(shù),而函數(shù)文件則類似于子程序或被調(diào)函數(shù)。MATLAB 眾多工具箱中的(函數(shù))文件基本上是 M 函數(shù)文件。因?yàn)樗鼈兪怯?ASCII 碼表 示的文件,所以可由任一文字處理軟件編輯后以文本格式存放。(2) 數(shù)據(jù)文件,以.mat 為擴(kuò)展名,所以又稱 MAT 文件。在討論工作空間窗口時(shí)已經(jīng)涉 及到 MAT 文件。顯然,數(shù)據(jù)文件保存了 MATLAB 工作空間窗口中變量的數(shù)據(jù)。(3) 圖形文件,以.fig 為擴(kuò)展名。主要由 MATLAB 的繪圖命令產(chǎn)生,當(dāng)然也可用 File菜單中的 New 命令建立。(4) MEX 文件,以.mex 或.dl

36、l 為擴(kuò)展名,所以稱 MEX 文件。MEX 實(shí)際是由 MATLAB Executable 縮寫而成的,由此可見(jiàn),MEX 文件是 MATLAB 的可執(zhí)行文件。(5) 模型和仿真文件,模型文件以.mdl 為擴(kuò)展名,由 Simulink 仿真工具箱在建立各種 仿真模型時(shí)產(chǎn)生。仿真文件以.s 為擴(kuò)展名。鍵盤輸入語(yǔ)句(input)其調(diào)用格式有(1) x = input('prompt'):顯示提示字符串'prompt',要求用戶鍵盤輸入 x 的值。(2) x = input('prompt','s'):顯示提示字符串'prompt&

37、#39;,要求用戶鍵盤輸入字符型變量 x 的 值,不至于將輸入的數(shù)字看成是數(shù)值型數(shù)據(jù)。6.3.2屏幕輸出語(yǔ)句(disp)屏幕輸出最簡(jiǎn)單的方法是直接寫出欲輸出的變量或數(shù)組名,后面不加分號(hào)。此外,可 以采用 disp 語(yǔ)句,其調(diào)用格式為 disp(x)。6.3.3M 數(shù)據(jù)文件的存儲(chǔ)/加載(save / load)1. save 語(yǔ)句其調(diào)用格式有(1) save:將所有工作空間變量存儲(chǔ)在名為 MATLAB.mat 的文件中。(2) save filename:將所有工作空間變量存儲(chǔ)在名為 filename 的文件中。(3) save filename X Y Z:將工作空間的指定變量 X、Y、Z 存于名為 filename 的文件中。2. load 語(yǔ)句其調(diào)用格式有(1) load:如果 MATLAB.mat 文件存在,則加載 MATLAB.mat 文件中存儲(chǔ)的所有變量 到工作空間;否則返回一錯(cuò)誤信息。(2) load filename:如果 filen

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論