基于神經(jīng)網(wǎng)絡(luò)的Mackey-Glass時(shí)間序列預(yù)測_第1頁
基于神經(jīng)網(wǎng)絡(luò)的Mackey-Glass時(shí)間序列預(yù)測_第2頁
基于神經(jīng)網(wǎng)絡(luò)的Mackey-Glass時(shí)間序列預(yù)測_第3頁
基于神經(jīng)網(wǎng)絡(luò)的Mackey-Glass時(shí)間序列預(yù)測_第4頁
基于神經(jīng)網(wǎng)絡(luò)的Mackey-Glass時(shí)間序列預(yù)測_第5頁
已閱讀5頁,還剩5頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、目錄1引言12MG時(shí)間序列12.1MG時(shí)間序列簡介12.2利用dde23函數(shù)求解MG時(shí)間序列13BP神經(jīng)網(wǎng)絡(luò)33.1神經(jīng)網(wǎng)絡(luò)總體思路33.2MATLAB中的newff函數(shù)33.3BP神經(jīng)網(wǎng)絡(luò)的訓(xùn)練43.4構(gòu)建輸入輸出矩陣63.5對MG時(shí)間序列未來值預(yù)測64參考文獻(xiàn)75附錄81 引言本文選用的神經(jīng)網(wǎng)絡(luò)的是BP神經(jīng)網(wǎng)絡(luò),利用MATLAB編程實(shí)現(xiàn)。首先通過求解Mackey-Glass方程得到具有513個(gè)數(shù)據(jù)的Mackey-Glass時(shí)間序列,其中一半用于訓(xùn)練神經(jīng)網(wǎng)絡(luò),一半用于檢測預(yù)測值。BP神經(jīng)網(wǎng)絡(luò)輸入層神經(jīng)元個(gè)數(shù)為4,隱含層為8,輸出層為1。利用BP神經(jīng)網(wǎng)絡(luò)工具箱構(gòu)建神經(jīng)網(wǎng)絡(luò)并對其進(jìn)行訓(xùn)練,然后利

2、用訓(xùn)練好的神經(jīng)網(wǎng)絡(luò)對未來值進(jìn)行預(yù)測,畫出比較圖。2 MG時(shí)間序列2.1 MG時(shí)間序列簡介Mackey-Glass 混沌系統(tǒng)一類非常典型的混沌系統(tǒng),混沌系統(tǒng)模型由以下的時(shí)滯微分方程來描述:其中 =0.2, =0.1, =10,是可調(diào)參數(shù),x(t)是在t時(shí)刻的時(shí)間序列的值。MG方程表現(xiàn)出了某種周期性與混沌特性,在<16.8時(shí),表現(xiàn)出周期性,在 >16.8時(shí),則表現(xiàn)出混沌特性。2.2 利用dde23函數(shù)求解MG時(shí)間序列本課程設(shè)計(jì)中取=10,也就是說MG時(shí)間序列會(huì)表現(xiàn)為周期性??梢岳肕ATLAB求解MG方程,MG方程是一個(gè)時(shí)滯微分方程,其中一種求解方法是利用MATLAB的dde23函數(shù)。

3、具體求解方法是:首先建立MG.m函數(shù)文件,代碼如下function y = MG(t,x,z)%UNTITLED Summary of this function goes here% Detailed explanation goes herexlag=z(1,:);y=ones(1,1);y(1)=(0.2*xlag(1)/(1+(xlag(1)10)-0.1*x(1);end然后需要建立命令文件timeMG.m,代碼如下clear,clc;tau=10;sol=dde23('MG',tau,0.92,1,1000);figure;plot(sol.x,sol.y,'

4、;r');xlabel('t','fontsize',20,'fontname','times new roman','FontAngle','italic'); ylabel('x(t)','fontsize',20,'fontname','times new roman','FontAngle','italic'); grid on;在執(zhí)行完這個(gè)命令文件后會(huì)生成MG時(shí)間序列的圖像,具有很明顯的

5、周期性改變一下,在程序里使tau=30,可以得到另一種圖像,即具有混沌特性,本文不預(yù)測這種。3 BP神經(jīng)網(wǎng)絡(luò)3.1 神經(jīng)網(wǎng)絡(luò)總體思路利用MATLAB里的BP神經(jīng)網(wǎng)絡(luò)工具箱建立一個(gè)兩層BP神經(jīng)網(wǎng)絡(luò)(這里的兩層分別指的是隱含層和輸出層,而輸入層通常不算作一層)。其中輸入層神經(jīng)元個(gè)數(shù)為4,隱含層神經(jīng)元個(gè)數(shù)為8,輸出層個(gè)數(shù)為1。利用訓(xùn)練好的神經(jīng)網(wǎng)絡(luò)對未來的值進(jìn)行預(yù)測并與實(shí)際值比較。3.2 MATLAB中的newff函數(shù)BP神經(jīng)網(wǎng)絡(luò)的MATLAB實(shí)現(xiàn)可以采用MATLAB里的工具箱,通過調(diào)用newff來構(gòu)建BP神經(jīng)網(wǎng)絡(luò)。newff函數(shù)參數(shù)列表有很多的可選參數(shù),這里使用newff函數(shù)的一種簡單的形式。語法:

6、net = newff ( A, B, C ,Train)參數(shù):A:一個(gè)n×2的矩陣,第i行元素為輸入信號(hào)xi的最小值和最大值;B:一個(gè)k維行向量,其元素為網(wǎng)絡(luò)中各層節(jié)點(diǎn)數(shù);C:一個(gè)k維字符串行向量,每一分量為對應(yīng)層神經(jīng)元的激活函數(shù);Train:訓(xùn)練函數(shù),是一個(gè)字符串根據(jù)參考文獻(xiàn)1,選取各個(gè)參數(shù),至于各個(gè)參數(shù)的到底該怎么設(shè)計(jì)我并沒有研究。關(guān)于參數(shù)A,使用maxmin函數(shù)得到輸入矩陣沒列的最大值和最小值。關(guān)于參數(shù)B,兩層的BP神經(jīng)網(wǎng)絡(luò),隱含層為神經(jīng)元個(gè)數(shù)為8,輸出層為1,說以B為8 1,是一個(gè)2維向量。關(guān)于參數(shù)C,隱含層的激活函數(shù)采用S函數(shù),輸出層的激勵(lì)函數(shù)選用線性函數(shù),于是C為

7、9;logsig' 'purelin',是一個(gè)2維字符串向量。關(guān)于參數(shù)Train,選用梯度下降自適應(yīng)學(xué)習(xí)率訓(xùn)練函數(shù)Train取traingdx。3.3 BP神經(jīng)網(wǎng)絡(luò)的訓(xùn)練使用train函數(shù)對神經(jīng)網(wǎng)絡(luò)進(jìn)行訓(xùn)練。trian函數(shù)使用代碼train(net,inputs,targets);inputs是輸入矩陣,targets是輸出矩陣,將在下一節(jié)介紹。網(wǎng)絡(luò)配置參數(shù)一些重要的網(wǎng)絡(luò)配置參數(shù)如下:net.trainparam.goal :神經(jīng)網(wǎng)絡(luò)訓(xùn)練的目標(biāo)誤差net.trainparam.show : 顯示中間結(jié)果的周期net.trainparam.epochs :最大迭代次數(shù)ne

8、t.trainParam.lr : 學(xué)習(xí)率迭代次數(shù)的選擇太小雖然訓(xùn)練耗時(shí)短,但容易導(dǎo)致預(yù)測失敗。所以在此選擇10000。本文中使用的代碼如下%設(shè)置訓(xùn)練參數(shù)net.trainParam.lr=0.01;net.trainParam.epochs=10000;net.trainParam.goal=1e-6;net=train(net,inputs,targets);y=sim(net,inputs);MATLAB對BP神經(jīng)網(wǎng)絡(luò)進(jìn)行訓(xùn)練的MATLAB工具箱界面3.4 構(gòu)建輸入輸出矩陣輸出層神經(jīng)元個(gè)數(shù)為4,于是需要構(gòu)建一個(gè)4行N列的輸入矩陣。得到MG時(shí)間序列中有513個(gè)數(shù)據(jù),準(zhǔn)備使用其中一半訓(xùn)練神經(jīng)

9、網(wǎng)絡(luò),后一半用于檢驗(yàn)預(yù)測結(jié)果。以每4個(gè)連續(xù)數(shù)據(jù)作為輸入,緊跟著的下一數(shù)據(jù)作為輸出,一共可以得到200多組樣本進(jìn)行訓(xùn)練。構(gòu)建輸入輸出矩陣代碼如下tau=10;sol=dde23('MG',tau,0.92,1,1000);lag=4;% 輸入層神經(jīng)元個(gè)數(shù)iinput=sol.y' % sol.y為原始序列(行向量)n=length(iinput)/2;%數(shù)據(jù)用于神經(jīng)網(wǎng)絡(luò)的訓(xùn)練%準(zhǔn)備輸入和輸出數(shù)據(jù)inputs=zeros(lag,n-lag);for i=1:n-lag inputs(:,i)=iinput(i:i+lag-1)'endtargets=sol.y(l

10、ag+1:n);%輸出矩陣3.5 對MG時(shí)間序列未來值預(yù)測之前解出來的MG時(shí)間序列的一半用來訓(xùn)練BP神經(jīng)網(wǎng)絡(luò),后一半用作為未來的實(shí)際值,與預(yù)測值進(jìn)行比較。預(yù)測200個(gè)數(shù)據(jù),利用循環(huán)將網(wǎng)絡(luò)輸出重新輸入,具體代碼如下%預(yù)測與檢驗(yàn)forecastn=200; %預(yù)測步數(shù)forecast_in=iinput(n-lag+1:n);forecast_out=zeros(1,forecastn); %預(yù)測輸出% 多步預(yù)測時(shí),用下面的循環(huán)將網(wǎng)絡(luò)輸出重新輸入for i=1:forecastn forecast_out(i)=sim(net,forecast_in); forecast_in=forecast_

11、in(2:end);forecast_out(i);endyy=y,forecast_out;plot(yy);最終生成比較圖,其中紅色曲線為實(shí)際值,藍(lán)色曲線為預(yù)測值。從圖中可以看到有一部分預(yù)測值比較精準(zhǔn),但有一部分并不是很理想。4 參考文獻(xiàn)1趙新. 基于遺傳神經(jīng)網(wǎng)絡(luò)的MG時(shí)間序列預(yù)測方法研究D.武漢科技大學(xué),2006.2陳陽,王濤. 基于區(qū)間二型單點(diǎn)Mamdani模糊邏輯系統(tǒng)的Mackey-Glass時(shí)間序列預(yù)測J. 遼寧工業(yè)大學(xué)學(xué)報(bào)(自然科學(xué)版),2015,01:1-5.5 附錄完整代碼:MG.m中的代碼如下,其主要功能是為dde23函數(shù)提供求解MG方程需要的函數(shù)句柄。function y

12、 = MG(t,x,z)%UNTITLED Summary of this function goes here% Detailed explanation goes herexlag=z(1,:);y=ones(1,1);y(1)=(0.2*xlag(1)/(1+(xlag(1)10)-0.1*x(1);endBP.m中的代碼如下,是一個(gè)命令文件,實(shí)現(xiàn)MG時(shí)間序列的生成,神經(jīng)網(wǎng)絡(luò)的構(gòu)建和訓(xùn)練,以及預(yù)測MG時(shí)間序列未來值。clear,clc;tau=10;sol=dde23('MG',tau,0.92,1,1000);lag=4;% 輸入層神經(jīng)元個(gè)數(shù)iinput=sol.y&#

13、39; % sol.y為原始序列(行向量)n=length(iinput)/2;%數(shù)據(jù)用于神經(jīng)網(wǎng)絡(luò)的訓(xùn)練%準(zhǔn)備輸入和輸出數(shù)據(jù)inputs=zeros(lag,n-lag);for i=1:n-lag inputs(:,i)=iinput(i:i+lag-1)'endtargets=sol.y(lag+1:n);%創(chuàng)建兩層的BP神經(jīng)網(wǎng)絡(luò);隱含層神經(jīng)元個(gè)數(shù)為8,激活函數(shù)為Logarithmic sigmoid transfer%function;輸出層神經(jīng)元個(gè)數(shù)為1,激活函數(shù)為Linear transfer function;net = newff(minmax(inputs),8 1,'logsig' 'purelin', 'traingdx');%設(shè)置訓(xùn)練參數(shù)net.trainParam.lr=0.01;net.trainParam.epochs=10000;net.trainParam.goal=1e-6;net=train(net,inputs,targets);y=sim(net,inputs);%plot(y);% hold on;plot(sol.y(5:end),'r');hold on;%預(yù)測與檢驗(yàn)forecastn=200; %預(yù)測步數(shù)foreca

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論