BP神經(jīng)網(wǎng)絡(luò)bp設(shè)計(jì)1課件_第1頁
BP神經(jīng)網(wǎng)絡(luò)bp設(shè)計(jì)1課件_第2頁
BP神經(jīng)網(wǎng)絡(luò)bp設(shè)計(jì)1課件_第3頁
BP神經(jīng)網(wǎng)絡(luò)bp設(shè)計(jì)1課件_第4頁
BP神經(jīng)網(wǎng)絡(luò)bp設(shè)計(jì)1課件_第5頁
已閱讀5頁,還剩102頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

第三章前饋人工神經(jīng)網(wǎng)絡(luò)--誤差反傳(BP)算法的改進(jìn)與BP網(wǎng)絡(luò)設(shè)計(jì)3.4基于BP算法的多層前饋網(wǎng)絡(luò)模型三層BP網(wǎng)絡(luò)輸入層隱層輸出層數(shù)學(xué)表達(dá)模型的數(shù)學(xué)表達(dá)輸入向量:

X=(x1,x2,…,xi,…,xn)T隱層輸出向量:

Y=(y1,y2,…,yj,…,ym)T輸出層輸出向量:

O=(o1,o2,…,ok,…,ol)T期望輸出向量:d=(d1,d2,…,dk,…,dl)T輸入層到隱層之間的權(quán)值矩陣:V=(V1,V2,…,Vj,…,Vm)隱層到輸出層之間的權(quán)值矩陣:W=(W1,W2,…,Wk,…,Wl)各個變量之間如何建立聯(lián)系,來描述整個網(wǎng)絡(luò)?BP算法的基本思想學(xué)習(xí)的類型:有導(dǎo)師學(xué)習(xí)核心思想:將輸出誤差以某種形式通過隱層向輸入層逐層反傳學(xué)習(xí)的過程:信號的正向傳播誤差的反向傳播將誤差分?jǐn)偨o各層的所有單元---各層單元的誤差信號修正各單元權(quán)值BP算法的學(xué)習(xí)過程正向傳播:輸入樣本---輸入層---各隱層---輸出層判斷是否轉(zhuǎn)入反向傳播階段:若輸出層的實(shí)際輸出與期望的輸出(教師信號)不符誤差反傳誤差以某種形式在各層表示----修正各層單元的權(quán)值網(wǎng)絡(luò)輸出的誤差減少到可接受的程度進(jìn)行到預(yù)先設(shè)定的學(xué)習(xí)次數(shù)為止建立權(quán)值變化量與誤差之間的關(guān)系輸出層與隱層之間的連接權(quán)值調(diào)整隱層和輸入層之間的連接權(quán)值調(diào)整j=0,1,2,…,m;k=1,2,…,l(3.4.9a)i=0,1,2,…,n;j=1,2,…,m(3.4.9b)式中負(fù)號表示梯度下降,常數(shù)η∈(0,1)表示比例系數(shù),反映了訓(xùn)練速率??梢钥闯鯞P算法屬于δ學(xué)習(xí)規(guī)則類,這類算法常被稱為誤差的梯度下降(GradientDescent)算法。BP算法的程序?qū)崿F(xiàn)然后根據(jù)總誤差計(jì)算各層的誤差信號并調(diào)整權(quán)值。

另一種方法是在所有樣本輸入之后,計(jì)算網(wǎng)絡(luò)的總誤差:多層前饋網(wǎng)的主要能力(1)非線性映射能力

多層前饋網(wǎng)能學(xué)習(xí)和存貯大量輸入-輸出模式映射關(guān)系,而無需事先了解描述這種映射關(guān)系的數(shù)學(xué)方程。只要能提供足夠多的樣本模式對供BP網(wǎng)絡(luò)進(jìn)行學(xué)習(xí)訓(xùn)練,它便能完成由n維輸入空間到m維輸出空間的非線性映射。多層前饋網(wǎng)的主要能力(2)泛化能力

當(dāng)向網(wǎng)絡(luò)輸入訓(xùn)練時未曾見過的非樣本數(shù)據(jù)時,網(wǎng)絡(luò)也能完成由輸入空間向輸出空間的正確映射。這種能力稱為多層前饋網(wǎng)的泛化能力。(3)容錯能力

輸入樣本中帶有較大的誤差甚至個別錯誤對網(wǎng)絡(luò)的輸入輸出規(guī)律影響很小。誤差曲面的分布--BP算法的局限性曲面的分布特點(diǎn)--------算法的局限性(1)存在平坦區(qū)域--------誤差下降緩慢,影響收斂速度(2)存在多個極小點(diǎn)------易陷入局部最小點(diǎn)曲面分布特點(diǎn)1:存在平坦區(qū)域平坦--誤差的梯度變化小--接近于零存在平坦區(qū)域的原因分析接近于零的情況分析造成平坦區(qū)的原因:各節(jié)點(diǎn)的凈輸入過大對應(yīng)著誤差的某個谷點(diǎn)平坦區(qū)曲面分布特點(diǎn)2:存在多個極小點(diǎn)BP算法---以誤差梯度下降為權(quán)值調(diào)整原則誤差曲面的這一特點(diǎn)---使之無法辨別極小點(diǎn)的性質(zhì)導(dǎo)致的結(jié)果:因而訓(xùn)練經(jīng)常陷入某個局部極小點(diǎn)而不能自拔,從而使訓(xùn)練無法收斂于給定誤差。標(biāo)準(zhǔn)BP算法的改進(jìn)--引言誤差曲面的形狀--固有的算法的作用是什么?調(diào)整權(quán)值,找到最優(yōu)點(diǎn)那么如何更好地調(diào)整權(quán)值?利用算法使得權(quán)值在更新的過程中,‘走’合適的路徑,比如跳出平坦區(qū)來提高收斂速度,跳出局部最小點(diǎn)等等如何操作?需要在進(jìn)入平坦區(qū)或局部最小點(diǎn)時進(jìn)行一些判斷,通過改變某些參數(shù)來使得權(quán)值的調(diào)整更為合理。標(biāo)準(zhǔn)的BP算法內(nèi)在的缺陷:⑴易形成局部極小而得不到全局最優(yōu);⑵訓(xùn)練次數(shù)多使得學(xué)習(xí)效率低,收斂速度慢;⑶隱節(jié)點(diǎn)的選取缺乏理論指導(dǎo);⑷訓(xùn)練時學(xué)習(xí)新樣本有遺忘舊樣本的趨勢。針對上述問題,國內(nèi)外已提出不少有效的改進(jìn)算法,下面僅介紹其中3種較常用的方法。改進(jìn)1:增加動量項(xiàng)提出的原因:標(biāo)準(zhǔn)BP算法只按t時刻誤差的梯度降方向調(diào)整,而沒有考慮t時刻以前的梯度方向---從而常使訓(xùn)練過程發(fā)生振蕩,收斂緩慢。方法:α為動量系數(shù),一般有α∈(0,1)實(shí)質(zhì):從前一次權(quán)值調(diào)整量中取出一部分迭加到本次權(quán)值調(diào)整量中作用:動量項(xiàng)反映了以前積累的調(diào)整經(jīng)驗(yàn),對于t時刻的調(diào)整起阻尼作用。當(dāng)誤差曲面出現(xiàn)驟然起伏時,可減小振蕩趨勢,提高訓(xùn)練速度。改進(jìn)1:增加動量項(xiàng)改進(jìn)2:自適應(yīng)調(diào)節(jié)學(xué)習(xí)率提出的原因:標(biāo)準(zhǔn)BP算法中,學(xué)習(xí)率η也稱為步長,確定一個從始至終都合適的最佳學(xué)習(xí)率很難。平坦區(qū)域內(nèi),η太小會使訓(xùn)練次數(shù)增加;在誤差變化劇烈的區(qū)域,η太大會因調(diào)整量過大而跨過較窄的“坑凹”處,使訓(xùn)練出現(xiàn)振蕩,反而使迭代次數(shù)增加。改進(jìn)3:引入陡度因子提出的原因:誤差曲面上存在著平坦區(qū)域。權(quán)值調(diào)整進(jìn)入平坦區(qū)的原因是神經(jīng)元輸出進(jìn)入了轉(zhuǎn)移函數(shù)的飽和區(qū)?;舅枷耄喝绻谡{(diào)整進(jìn)入平坦區(qū)后,設(shè)法壓縮神經(jīng)元的凈輸入,使其輸出退出轉(zhuǎn)移函數(shù)的不飽和區(qū),就可以改變誤差函數(shù)的形狀,從而使調(diào)整脫離平坦區(qū)。改進(jìn)3:引入陡度因子基本方法:在原轉(zhuǎn)移函數(shù)中引入一個陡度因子λ當(dāng)發(fā)現(xiàn)ΔE接近零而d-o仍較大時,可判斷已進(jìn)入平坦區(qū),此時令λ>1;當(dāng)退出平坦區(qū)后,再令λ=1。3.6BP網(wǎng)絡(luò)設(shè)計(jì)基礎(chǔ)一、訓(xùn)練樣本集的準(zhǔn)備1.輸入輸出量的選擇2.輸入量的提取與表示3.輸出量的表示二、輸入輸出數(shù)據(jù)的歸一化三、網(wǎng)絡(luò)訓(xùn)練與測試1輸出量的選擇

輸出量:代表系統(tǒng)要實(shí)現(xiàn)的功能目標(biāo)系統(tǒng)的性能指標(biāo)分類問題的類別歸屬非線性函數(shù)的函數(shù)值一、訓(xùn)練樣本集的準(zhǔn)備輸入量的選擇輸入量選擇的兩條基本原則必須選擇那些對輸出影響大且能夠檢測或提取的變量各輸入變量之間互不相關(guān)或相關(guān)性很小一、訓(xùn)練樣本集的準(zhǔn)備輸入輸出量的性質(zhì)從輸入、輸出量的性質(zhì)來看,可分為兩類:一類是數(shù)值變量,一類是語言變量。數(shù)值變量的值是數(shù)值確定的連續(xù)量或離散量。語言變量是用自然語言表示的概念,其“語言值”是用自然語言表示的事物的各種屬性。當(dāng)選用語言變量作為網(wǎng)絡(luò)的輸入或輸出變量時,需將其語言值轉(zhuǎn)換為離散的數(shù)值量。一、訓(xùn)練樣本集的準(zhǔn)備2.輸入量的提取與表示XC=(111100111)T

XI=(111100111)T

XT=(111100111)T(1)文字符號輸入一、訓(xùn)練樣本集的準(zhǔn)備(2)曲線輸入p=1,2,…,P一、訓(xùn)練樣本集的準(zhǔn)備(3)函數(shù)自變量輸入一般有幾個輸入量就設(shè)幾個分量,1個輸入分量對應(yīng)1個輸入層節(jié)點(diǎn)。(4)圖象輸入在這類應(yīng)用中,一般先根據(jù)識別的具體目的從圖象中提取一些有用的特征參數(shù),再根據(jù)這些參數(shù)對輸入的貢獻(xiàn)進(jìn)行篩選,這種特征提取屬于圖象處理的范疇。一、訓(xùn)練樣本集的準(zhǔn)備3.輸出量的表示(1)“n中取1”表示法

“n中取1”是令輸出向量的分量數(shù)等于類別數(shù),輸入樣本被判為哪一類,對應(yīng)的輸出分量取1,其余n-1個分量全取0。例如,用0001、0010、0100和1000可分別表示優(yōu)、良、中、差4個類別。(2)“n-1”表示法

如果用n-1個全為0的輸出向量表示某個類別,則可以節(jié)省一個輸出節(jié)點(diǎn)。例如,用000、001、010和100也可表示優(yōu)、良、中、差4個類別。(3)數(shù)值表示法

對于漸進(jìn)式的分類,可以將語言值轉(zhuǎn)化為二值之間的數(shù)值表示。數(shù)值的選擇要注意保持由小到大的漸進(jìn)關(guān)系,并要根據(jù)實(shí)際意義拉開距離。一、訓(xùn)練樣本集的準(zhǔn)備二、輸入輸出數(shù)據(jù)的歸一化

歸一化也稱為或標(biāo)準(zhǔn)化,是指通過變換處理將網(wǎng)絡(luò)的輸入、輸出數(shù)據(jù)限制在[0,1]或[-1,1]區(qū)間內(nèi)。

進(jìn)行歸一化的主要原因:歸一化的方法:進(jìn)行歸一化的主要原因:①網(wǎng)絡(luò)的各個輸入數(shù)據(jù)常常具有不同的物理意義和不同的量綱,歸一化給各輸入分量以同等重要的地位;②BP網(wǎng)的神經(jīng)元均采用Sigmoid轉(zhuǎn)移函數(shù),變換后可防止因凈輸入的絕對值過大而使神經(jīng)元輸出飽和,繼而使權(quán)值調(diào)整進(jìn)入誤差曲面的平坦區(qū);③Sigmoid轉(zhuǎn)移函數(shù)的輸出在0~1或-1~1之間。教師信號如不進(jìn)行歸一化處理,勢必使數(shù)值大的輸出分量絕對誤差大,數(shù)值小的輸出分量絕對誤差小。二、輸入輸出數(shù)據(jù)的歸一化歸一化的方法:將輸入輸出數(shù)據(jù)變換為[0,1]區(qū)間的值常用以下變換式其中,xI代表輸入或輸出數(shù)據(jù),xmin代表數(shù)據(jù)變化的最小值,xman代表數(shù)據(jù)的最大值。將輸入輸出數(shù)據(jù)變換為[-1,1]區(qū)間的值常用以下變換式其中,xmid代表數(shù)據(jù)變化范圍中間值。二、輸入輸出數(shù)據(jù)的歸一化三、網(wǎng)絡(luò)訓(xùn)練與測試

網(wǎng)絡(luò)的性能好壞主要看其是否具有很好的泛化能力,對泛化能力的測試不能用訓(xùn)練集的數(shù)據(jù)進(jìn)行,而要用訓(xùn)練集以外的測試數(shù)據(jù)來進(jìn)行檢驗(yàn)。三、網(wǎng)絡(luò)訓(xùn)練與測試在隱節(jié)點(diǎn)數(shù)一定的情況下,為獲得好的泛化能力,存在著一個最佳訓(xùn)練次數(shù)。三、網(wǎng)絡(luò)訓(xùn)練與測試三、網(wǎng)絡(luò)訓(xùn)練與測試MATLAB是一個功能十分強(qiáng)大的工程計(jì)算及數(shù)值分析軟件在20世紀(jì)70年代末期,線性代數(shù)領(lǐng)域頗有名望的CleveMoler博士利用Fortran語言、基于特征值計(jì)算的軟件包EISPACK和線性代數(shù)軟件包LINPACK,開發(fā)了集命令、解釋、科學(xué)計(jì)算于一身的交互式軟件MATLAB.1983年,工程師JohnLittle接觸到Matlab并深受其影響,于是與CleveMoler、Stev

Bangert合作用C開發(fā)了第二代Matlab專業(yè)版,增加了數(shù)據(jù)可視化功能。1984年MathWorks公司成立,MATLAB被推向市場,經(jīng)過多年發(fā)展,在數(shù)值性軟件市場占據(jù)了主導(dǎo)地位,已經(jīng)發(fā)展成為多學(xué)科多種工作平臺的功能強(qiáng)大的工程計(jì)算及數(shù)值分析軟件軟件,被譽(yù)為“巨人肩上的工具”MATLAB基礎(chǔ)2.1MATLAB概述

一、MATLAB的發(fā)展歷程和影響力MATLAB即MatrixLaboratory(矩陣實(shí)驗(yàn)室),主要用于矩陣運(yùn)算,具有豐富的矩陣運(yùn)算函數(shù),使之在求解諸如信號處理、系統(tǒng)識別、自動控制、非線性系統(tǒng)、模糊控制、優(yōu)化技術(shù)等、神經(jīng)網(wǎng)絡(luò)、小波分析等領(lǐng)域的問題時,顯得簡捷、高效、方便。有大量事先定義的數(shù)學(xué)函數(shù),并且有很強(qiáng)的用戶自定義函數(shù)的能力;有強(qiáng)大的繪圖功能,可方便地輸出復(fù)雜的二維、三維圖圖形;能與其它語言編寫的程序結(jié)合,具有輸入輸出格式化數(shù)據(jù)的能力;有在多個應(yīng)用領(lǐng)域解決難題的工具箱;Simulink是一個基于圖形界面的動態(tài)系統(tǒng)建模與仿真工具;具有符號運(yùn)算能力。二、MATLAB的主要特點(diǎn)三、MATLAB界面簡介

變量瀏覽器歷史命令記錄窗MATLAB工作窗當(dāng)前目路sumlink快捷按鈕1、MATLAB的主界面2、MATLAB的程序編輯器學(xué)習(xí)MATLAB什么是MATLAB?MATLAB能干什么?掌握MATLAB……應(yīng)用實(shí)例什么是MATLAB?1.MATLAB代表MATrixLABoratory它的首創(chuàng)者是美國新墨西哥大學(xué)計(jì)算機(jī)系的系主任CleveMoler博士,他在教授線性代數(shù)課程發(fā)現(xiàn)其他語言很不方便,篇構(gòu)思開發(fā)了MATLAB。最初采用FORTRAN語言編寫,20世紀(jì)80年代后出現(xiàn)了MATLAB的第二版,全部采用C語言編寫.1984年Moler博士和一批數(shù)學(xué)家及軟件專家創(chuàng)建了MathWorks公司,專門開發(fā)MATLAB。1993年出現(xiàn)了微機(jī)版,到2003年是6.5版2.一種演草紙式的科學(xué)計(jì)算語言3.MATLAB是一高性能的技術(shù)計(jì)算語言.強(qiáng)大的數(shù)值計(jì)算和工程運(yùn)算功能符號計(jì)算功能強(qiáng)大的科學(xué)數(shù)據(jù)可視化能力多種工具箱

MATLAB能干什么?MATLAB可以進(jìn)行:數(shù)學(xué)計(jì)算、算法開發(fā)、數(shù)據(jù)采集建模、仿真、原型數(shù)據(jù)分析、開發(fā)和可視化科學(xué)和工程圖形應(yīng)用程序的開發(fā),包括圖形用戶界面的創(chuàng)建。MATLAB廣泛應(yīng)用于:數(shù)值計(jì)算、圖形處理、符號運(yùn)算、數(shù)學(xué)建模、系統(tǒng)辨識、小波分析、實(shí)時控制、動態(tài)仿真等領(lǐng)域。MATLAB開發(fā)環(huán)境:進(jìn)行應(yīng)用研究開發(fā)的交互式平臺MATLAB數(shù)學(xué)與運(yùn)算函數(shù)庫:用于科學(xué)計(jì)算的函數(shù)MATLAB語言:進(jìn)行應(yīng)用開發(fā)的編程工具圖形化開發(fā):二維、三維圖形開發(fā)的工具應(yīng)用程序接口(API):用于與其他預(yù)言混編面向?qū)iT領(lǐng)域的工具箱:小波工具箱、神經(jīng)網(wǎng)絡(luò)工具箱、信號處理工具箱、圖像處理工具箱、模糊邏輯工具箱、優(yōu)化工具箱、魯棒控制工具箱等幾十個不同應(yīng)用的工具箱。MATLAB的構(gòu)成開發(fā)環(huán)境包括:命令窗口、圖形窗口、編輯窗口、幫助窗口TheMATLABLanguageMATLAB語言的特點(diǎn)Matlab的基本數(shù)據(jù)單元是不需指定維數(shù)的矩陣。Matlab的所有計(jì)算都是通過雙精度進(jìn)行的,在內(nèi)存中的數(shù)都是雙精度的。double是一個雙精度浮點(diǎn)數(shù),每個存儲的雙精度數(shù)用64位。char用于存儲字符,每個存儲的字符用16位。

程序M文件與m函數(shù)圖形顯示流程控制其它輸出函數(shù)語句變量各種運(yùn)算符MATLAB的程序構(gòu)成:常變量及其命名規(guī)則變量名可以有數(shù)字、字母、下劃線構(gòu)成;變量的首字符必須是字母;區(qū)分變量名的大小寫每個變量名最長只能包含19個字符。Matlab中預(yù)定義變量Ans分配最新計(jì)算表達(dá)式的值,這個表達(dá)式并沒有給定一個名字Eps返回機(jī)器精度Realmax返回計(jì)算機(jī)能處理的最大浮點(diǎn)數(shù)Realmin返回計(jì)算機(jī)能處理的最小的非零浮點(diǎn)數(shù)Pi,3.14159265Inf定義為1/0。當(dāng)出現(xiàn)被零除時,Matlab就返回inf,并不中斷執(zhí)行而繼續(xù)計(jì)算NaN定義為“NotaNumber”,這個非數(shù)值要么是%類型,要么是inf/inf向量的創(chuàng)建在matlab的命令窗口鍵入以下字符>>a=[123456987]a=123456987

希望得到元素從0到20,步距為2的一個向量,只需鍵入以下命令即可>>t=[0:2:20]t=2468101214161820矩陣的創(chuàng)建輸入矩陣時每一行元素有分號或者回車鍵分隔。例如:

B=[1234;5678;9101112]B=123456789101112各種運(yùn)算符Matlab語言最基本的賦值語句結(jié)構(gòu)為:變量名列表=表達(dá)式注1:整個賦值語句以;結(jié)束,則不在屏幕上返回結(jié)果,否則立即返回結(jié)果。注2:多個語句可在同一行,用逗號分開。注3:表達(dá)是太長可以用續(xù)行符號…語句函數(shù)

Matlab由包括許多標(biāo)準(zhǔn)函數(shù),每個函數(shù)都完成某一特定功能的代碼組成。Matlab也允許用戶編寫自己所需的函數(shù),其擴(kuò)展名為.m,其中必須以關(guān)鍵字function開頭.流程控制循環(huán)語句for,while條件轉(zhuǎn)移ifend,ifelseifelseend開關(guān)語句switchcase注是語句%中斷語句break暫停語句pause回顯語句echoon/off1、for循環(huán)語句基本格式for循環(huán)變量=起始值:步長:終止值循環(huán)體end步長缺省值為1,可以在正實(shí)數(shù)或負(fù)實(shí)數(shù)范圍內(nèi)任意指定。對于正數(shù),循環(huán)變量的值大于終止值時,循環(huán)結(jié)束;對于負(fù)數(shù),循環(huán)變量的值小于終止值時,循環(huán)結(jié)束。循環(huán)結(jié)構(gòu)可以嵌套使用。2、while循環(huán)語句基本格式while表達(dá)式循環(huán)體end若表達(dá)式為真,則執(zhí)行循環(huán)體的內(nèi)容,執(zhí)行后再判斷表達(dá)式是否為真,若不為真,則跳出循環(huán)體,向下繼續(xù)執(zhí)行。While循環(huán)和for循環(huán)的區(qū)別在于,while循環(huán)結(jié)構(gòu)的循環(huán)體被執(zhí)行的次數(shù)不是確定的,而for結(jié)構(gòu)中循環(huán)體的執(zhí)行次數(shù)是確定的。3、if,else,elseif語句(1)if邏輯表達(dá)式執(zhí)行語句end(2)if邏輯表達(dá)式(3)if邏輯表達(dá)式1執(zhí)行語句1執(zhí)行語句1elseelseif邏輯表達(dá)式2執(zhí)行語句2執(zhí)行語句2end…end4、switch語句switch表達(dá)式(可以是標(biāo)量或字符串)case值1語句1case值2語句2….otherwise語句3end

MATLAB程序的基本組成結(jié)構(gòu)%說明清除命令:清除workspace中的變量和圖形(clear,close)定義變量:包括全局變量的聲明及參數(shù)值的設(shè)定逐行執(zhí)行命令:指MATLAB提供的運(yùn)算指令或工具箱………提供的專用命令控制循環(huán):包含for,ifthen,switch,while等語句逐行執(zhí)行命令………end繪圖命令:將運(yùn)算結(jié)果繪制出來當(dāng)然更復(fù)雜程序還需要調(diào)用子程序,或與simulink以及其他應(yīng)用程序結(jié)合起來。2、程序M文件以.m格式進(jìn)行存取,包含一連串的MATLAB指令和必要的注解。需要在工作空間中創(chuàng)建并獲取變量,也就是說處理的數(shù)據(jù)為命令窗口中的數(shù)據(jù),沒有輸入?yún)?shù),也不會返回參數(shù)。程序運(yùn)行時只需在工作空間中鍵入其名稱即可。MATLAB的程序類型MATLAB的程序類型有三種,一種是在命令窗口下執(zhí)行的腳本M文件;另外一種是可以存取的M文件,也即程序文件;最后一種是函數(shù)(function)文件。1、腳本M文件在命令窗口中輸入并執(zhí)行,它所用的變量都要在工作空間中獲取,不需要輸入輸出參數(shù)的調(diào)用,退出MATLAB后就釋放了。(1)函數(shù)定義行(關(guān)鍵字function)function[out1,out2,..]=(in1,in2,..)輸入和輸出(返回)的參數(shù)個數(shù)分別由nargin和nargout兩個MATLAB保留的變量來給出。(2)第一行幫助行,即H1行以(%)開頭,作為lookfor指令搜索的行(3)函數(shù)體說明及有關(guān)注解以(%)開頭,用以說明函數(shù)的作用及有關(guān)內(nèi)容(4)函數(shù)體語句函數(shù)體內(nèi)使用的除返回和輸入變量這些在function語句中直接引用的變量以外的所有變量都是局部變量,即在該函數(shù)返回之后,這些變量會自動在MATLAB的工作空間中清除掉。如果希望這些中間變量成為在整個程序中都起作用的變量,則可以將它們設(shè)置為全局變量。3、函數(shù)文件與在命令窗口中輸入命令一樣,函數(shù)接受輸入?yún)?shù),然后執(zhí)行并輸出結(jié)果。用help命令可以顯示它的注釋說明。GraphicsMATLAB提供了豐富的繪圖功能helpgraph2d可得到所有畫二維圖形的命令helpgraph3d可得到所有畫三維圖形的命令1、基本的繪圖命令plot(x1,y1,option1,x2,y2,option2,…)x1,y1給出的數(shù)據(jù)分別為x,y軸坐標(biāo)值,option1為選項(xiàng)參數(shù),以逐點(diǎn)連折線的方式繪制1個二維圖形;同時類似地繪制第二個二維圖形。這是plot命令的完全格式,在實(shí)際應(yīng)用中可以根據(jù)需要進(jìn)行簡化。比如:plot(x,y);plot(x,y,option)選項(xiàng)參數(shù)option定義了圖形曲線的顏色、線型及標(biāo)示符號,它由一對單引號括起來。2、選擇圖像

figure(1);figure(2);…;figure(n)打開不同的圖形窗口,以便繪制不同的圖形。3、gridon:在所畫出的圖形坐標(biāo)中加入柵格gridoff:除去圖形坐標(biāo)中的柵格4、holdon:把當(dāng)前圖形保持在屏幕上不變,同時允許在這個坐標(biāo)內(nèi)繪制另外一個圖形。holdoff:使新圖覆蓋舊的圖形5、設(shè)定軸的范圍axis([xminxmaxyminymax])axis(‘equal’):將x坐標(biāo)軸和y坐標(biāo)軸的單位刻度大小調(diào)整為一樣。6、文字標(biāo)示text(x,y,’字符串’)在圖形的指定坐標(biāo)位置(x,y)處,標(biāo)示單引號括起來的字符串。title(‘字符串’)在所畫圖形的最上端顯示說明該圖形標(biāo)題的字符串。xlabel(‘字符串’),ylabel(‘字符串’)設(shè)置x,y坐標(biāo)軸的名稱。輸入特殊的文字需要用反斜杠(\)開頭。7、legend(‘字符串1’,‘字符串2’,…,‘字符串n’)在屏幕上開啟一個小視窗,然后依據(jù)繪圖命令的先后次序,用對應(yīng)的字符串區(qū)分圖形上的線。

8、subplot(m,n,k):分割圖形顯示窗口m:上下分割個數(shù),n:左右分割個數(shù),k:子圖編號9、semilogx:繪制以x軸為對數(shù)坐標(biāo)(以10為底),y軸為線性坐標(biāo)的半對數(shù)坐標(biāo)圖形。semilogy:繪制以y軸為對數(shù)坐標(biāo)(以10為底),x軸為線性坐標(biāo)的半對數(shù)坐標(biāo)圖形。10、了解應(yīng)用型繪圖指令:可用于數(shù)值統(tǒng)計(jì)分析或離散數(shù)據(jù)處理 bar(x,y);hist(y,x) stairs(x,y);stem(x,y) 三維的繪圖命令基本與二維的相同,稍有差別,不再詳述。Examples繪圖實(shí)例函數(shù)分析矩陣運(yùn)算線性方程組曲線擬合微分方程繪圖實(shí)例函數(shù)分析fplot('func',[-11.5])%作圖result=func(0)%求函數(shù)值xsolve=fzero('func',3)%求解Xmin=fminbnd('func',0.5,1)%求最小值矩陣運(yùn)算A=[123;456;789];B=[123;456];C=[101;023;450];expC=exp(C)expM=expm(C)logM=logm(expM)detA=det(A)traceA=trace(A)BT=B'invA=inv(A)rankA=rank(A)[EigenVectors,EigenValues]=eig(A)線性方程組與特征值A(chǔ)=[31-1;124;-145];

b=[3.6;2.1;-1.4];

X=A\b

[EigenVectors,EigenValues]=eig(A)曲線擬合%一次多項(xiàng)是擬合%已知離散點(diǎn)x=[11.534566.578];y=[1.211.72.522.32.533.1];%最小二乘擬合p1=polyfit(x,y,1);y1=polyval(p1,x);plot(x,y1);holdonplot(x,y,'ro')gridon%7次多項(xiàng)是擬合%已知離散點(diǎn)x=[11.534566.578];y=[1.211.72.522.32.533.1];%最小二乘擬合p7=polyfit(x,y,7);xi=1:0.25:8;yi=polyval(p7,xi);plot(x,y,'*r',xi,yi);gridon微分方程VanderPolEquation標(biāo)準(zhǔn)形式改寫程序?qū)崿F(xiàn)functiondydt=DifferentialCoe(t,y)dydt=[y(2);(1-y(1)^2)*y(2)-y(1)];感知器的神經(jīng)網(wǎng)絡(luò)工具箱1感知器的創(chuàng)建感知器生成函數(shù)newp用于創(chuàng)建一個感知器網(wǎng)絡(luò)net=newpnet=newp(pr,s,tf,lf)其中:net-函數(shù)返回值,表示生成的感知器網(wǎng)絡(luò)pr-一個RX2的矩陣,由R組輸入向量的最大值和最小值組成;s-神經(jīng)原數(shù);tf-感知器的傳遞函數(shù);可選參數(shù)為hardlim,hardlimslf-感知器的學(xué)習(xí)函數(shù),可選參數(shù)為learnp,learmpn網(wǎng)絡(luò)初始化net=newp([-25;-5+2],1);wts=net.IW{1,1}wts=00bias=net.b{1}bias=0net.IW{1,1}=3,4];Net.b{1}=5;再輸入net=init(net)可將網(wǎng)絡(luò)權(quán)值和閾值重新初始化為0感知器實(shí)例分析p1=[22]’;t1=0;p2=[1-2]’;t2=1;p3=[-22]’;t3=0;p2=[-11]’;t4=1;net=newp([-22;-2+2],1)p=[2;2];t=[0];net,traniParam.epochs=1;net=train(net,p,t)w=net.IW{1,1}w=-2-2b=net.b{1}b=-1訓(xùn)練兩個輸入和一個神經(jīng)元的感知器net=newp([-22;-2+2],1)net,traniParam.epochs=1;p=[[2;2][1;-2][-22][-1;1]];t=[0101];net=train(net,p,t)w=net.IW{1,1}w=-3-1b=net.b{1}b=0a=sim(netp)a=0011感知器訓(xùn)練net=newp([-22;-2+2],1)net,traniParam.epochs=10;p=[22;1-2;-22;-11]';t=[0101];net=train(net,p,t)w=net.IW{1,1}w=-2-3b=net.b{1}b=1a=sim(netp)a=0101clcclear;P=[000.620000;0.39150.47410.770.50.510.3158;0.28350.54020.6800.510.3158;0.62101.00.6310.511.0;0.41580.41830.670.5010.7368;0.21600.49480.710010.2632;0.9990.03830.750.5110.9474;0.58050.49250.710000.3684;0.08100.06920.760000.0526;0.39150.1230.980.5000.8974;0.02700.07420.620000.2105;0.17550.36670.7700.510.7368;0.43200.37900.680.5010.2632];T=[00.53130.59380.93750.43750.51.00.37500.31250.65630.18750.40620.4375];net=newff(minmax(P'),[12,1],{'logsig','purelin'});net.trainParam.epochs=200;net=train(net,P',T);Y=sim(net,P')T-YPP=[0.49950.43470.630010.6842;0.68850.58420.670.50.510.4211;0.54000.80380.710.50.510.5789;0.16200.25650.750010.4737]';Ysim=sim(net,PP)Tsim=[0.59380.62500.71870.3750]Ysim-TsimBP網(wǎng)絡(luò)預(yù)測地震MATLAB程序基于BP網(wǎng)絡(luò)的地震預(yù)測由四個過程組成:輸入模式由輸入層經(jīng)隱含層向輸出層的“模式順傳播”過程,網(wǎng)絡(luò)的希望輸出與實(shí)際輸出之差的誤差信號由輸出層向輸入層逐層修正連接權(quán)的“誤差逆?zhèn)鞑ァ边^程,由“模式順傳播”與“誤差逆?zhèn)鞑ァ钡姆磸?fù)交替進(jìn)行的網(wǎng)絡(luò)“記憶訓(xùn)練”過程,網(wǎng)絡(luò)趨向收斂即網(wǎng)絡(luò)的全局誤差趨向極小值的“學(xué)習(xí)收斂”過程。歸結(jié)起來為,

“模式順傳播”→“誤差逆?zhèn)鞑ァ薄坝洃浻?xùn)練”→“學(xué)習(xí)收斂”過程。BP網(wǎng)絡(luò)的學(xué)習(xí)(1)網(wǎng)絡(luò)實(shí)質(zhì)上實(shí)現(xiàn)了一個從輸入到輸出的映射功能,而數(shù)學(xué)理論已證明它具有實(shí)現(xiàn)任何復(fù)雜非線性映射的功能。這使得它特別適合于求解內(nèi)部機(jī)制復(fù)雜的問題;

(2)網(wǎng)絡(luò)能通過學(xué)習(xí)帶正確答案的實(shí)例集自動提取“合理的”求解規(guī)則,即具有自學(xué)習(xí)能力;

(3)網(wǎng)絡(luò)具有一定的推廣、概括能力。BP網(wǎng)絡(luò)的優(yōu)點(diǎn)

地震預(yù)測是地理問題研究領(lǐng)域中的一個重要課題,準(zhǔn)確的地震預(yù)測可以幫助人們即使采取有效措施,降低人員傷亡和經(jīng)濟(jì)損失。引發(fā)地震的相關(guān)性因素很多,其產(chǎn)生機(jī)理的復(fù)雜性、孕育過程的非線性和認(rèn)識問題的困難性使得人們很難建立較完善的物理理論模型。對有關(guān)物理參數(shù)加以精確的描述,只能借助一些觀測到的相關(guān)現(xiàn)象進(jìn)行分析、總結(jié)和推理。二.背景描述

傳統(tǒng)的非線性系統(tǒng)辨識在理論研究和實(shí)際應(yīng)用方面都存在著極大的困難,而BP網(wǎng)絡(luò)具有通過學(xué)習(xí)逼近任意非線性影射的能力,將BP網(wǎng)絡(luò)應(yīng)用于非線性系統(tǒng)的建模與辨識,可以不受非線性模型的限制,易于實(shí)現(xiàn)學(xué)習(xí)算法。BP網(wǎng)絡(luò)在非線性系統(tǒng)的預(yù)測方面有著廣泛的應(yīng)用。相對于傳統(tǒng)的預(yù)測方法,神經(jīng)網(wǎng)絡(luò)在處理這方面問題中有著獨(dú)特的優(yōu)勢。三、問題的提出以我國西南某地震常發(fā)地區(qū)的地震資料作為樣本來源,實(shí)現(xiàn)基于神經(jīng)網(wǎng)絡(luò)的地震預(yù)測。根據(jù)這些地震資料,提取出7個預(yù)測因子和實(shí)際發(fā)生的震級M作為輸入和目標(biāo)向量。預(yù)測因子為:

(1)半年內(nèi)M大于等于3的地震累計(jì)頻度;

(2)半年內(nèi)能量釋放積累值;

(3)b值;

(4)異常地震帶個數(shù);

(5)地震條帶個數(shù);

(6)是否處于活動期內(nèi);

(7)相關(guān)地震區(qū)地震震級。四、實(shí)際應(yīng)用一共收集10個學(xué)習(xí)樣本,如表1所示地震累計(jì)頻度累計(jì)釋放能量b值異常地震群個數(shù)地震條帶個數(shù)活動周期相關(guān)區(qū)震級實(shí)際震級000.62000000.39150.47410.770.50.510.31580.53130.28350.54020.6800.510.31580.59380.62101.00000.6310.511.00000.93750.415841830.670.5010.73680.43750.21600.49480.710010.26320.50000.99900.03830.750.5110.94741.00000.58050.49250.710000.36840.37500.08100.06920.760000.05260.31250.39150.12300.980.5000.89740.6563表1學(xué)習(xí)震例

表1中的前7項(xiàng)為學(xué)習(xí)樣本的輸入因子,輸出因子為實(shí)際震級,利用上表中的學(xué)習(xí)震例對網(wǎng)絡(luò)進(jìn)行訓(xùn)練。在訓(xùn)練前,應(yīng)對

溫馨提示

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

評論

0/150

提交評論