資源描述:
《神經(jīng)網(wǎng)絡(luò)Matlab和神經(jīng)網(wǎng)絡(luò)工具箱》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫(kù)。
2.1Matlab簡(jiǎn)介Matlab的首創(chuàng)者CleveMoler博士在數(shù)值分析,特別是在是指線性代數(shù)的領(lǐng)域中很有影響。Matlab(MatrixLaboratory,即矩陣實(shí)驗(yàn)室)Matlab于1984年推出了正式版本。后來(lái)Moler組建了一個(gè)名為MathWorks的軟件開發(fā)公司(http://www.Mathworks.com)專門擴(kuò)展并改進(jìn)Matlab。1998年推出5.3版。2000年11月6日推出最新版本Matlab6.0。
1Matlab6.0有30個(gè)工具箱包,包括控制系統(tǒng)工具箱(ControlSystemToolbox)信號(hào)處理工具箱(SignalProcessingtoolbox)系統(tǒng)辨識(shí)工具箱(SystemIdentificationtoolbox)魯棒控制工具箱(RobustControltoolbox)μ分析于綜合工具箱(μ-analysisandsynthesistoolbox)定量反饋理論工具箱(QFTtoolbox)神經(jīng)網(wǎng)絡(luò)工具箱(NeuralNetworktoolbox)最優(yōu)化工具箱(Optimisationtoolbox)數(shù)據(jù)庫(kù)工具箱(Databasetoolbox)網(wǎng)絡(luò)工具箱(MatlabWebServer)等。
2嚴(yán)格的說(shuō),Matlab并不是一種計(jì)算機(jī)語(yǔ)言,因?yàn)橛盟帉懗鰜?lái)的程序并不能脫離Matlab環(huán)境而執(zhí)行,但從功能上說(shuō),Matlab已經(jīng)完全具備了計(jì)算機(jī)語(yǔ)言的結(jié)構(gòu)和性能,因此我們也習(xí)慣的稱之為Matlab語(yǔ)言。Matlab5.3以上版本提供了C/C++的接口,通過(guò)另外一個(gè)工具M(jìn)atCom,能用VisualC++調(diào)用Matlab編寫的程序,從而大大減少C++程序的編寫難度。此工具我已經(jīng)用過(guò),效果不錯(cuò)。
32.2Matlab的基本操作2.2.1Matlab的安裝關(guān)鍵是選擇合適的工具箱和相應(yīng)的幫助文件。2.2.2幫助文件(helpdesk)兩種:(1)pdf格式(2)html格式2.2.3演示(demo)2.2.4退出:exit或quit命令
42.3Matlab的基本語(yǔ)句結(jié)構(gòu)2.3.1基本的賦值語(yǔ)句變量名列表=表達(dá)式如:A=[1,2,3;4,5,6;7,8,0]等號(hào)右邊的表達(dá)式可以用分號(hào)結(jié)束,也可以用逗號(hào)或換行號(hào)結(jié)束。Matlab區(qū)分大小寫,Abc,ABC,abc表示不同的矩陣名。在矩陣A中,同一行中的內(nèi)容用逗號(hào)分隔,而采用分號(hào)來(lái)表示換行。一般情況下,用于同行中分隔的逗號(hào)是可以由空格來(lái)代替的。
52.3.2Matlab的保留字符串判斷0元素用的誤差限eps,其默認(rèn)值為eps=2.2204×10-16pi表示圓周率Inf表示無(wú)窮大。Matlab允許的最大數(shù)據(jù)為1.797693×10308;一個(gè)數(shù)據(jù)大于此數(shù)則認(rèn)為是Inf。1/0產(chǎn)生Inf。即使在Matlab中保留了若干字符串,它們還可以重新進(jìn)行賦值。如果用戶想將判0的誤差限擴(kuò)大10倍,則可以采用eps=10×eps命令來(lái)進(jìn)行修正。
62.4矩陣的基本運(yùn)算矩陣A有n行m列,稱A矩陣為n×m矩陣。2.4.1矩陣加減法運(yùn)算:C=A+B和C=A-B。2.4.2矩陣的轉(zhuǎn)置:AT在Matlab下,矩陣A的轉(zhuǎn)置(包括復(fù)矩陣的轉(zhuǎn)置)均可以簡(jiǎn)單地由A’求出。2.4.3矩陣乘法C=A×B在這里并不需要指定A、B的維數(shù)。
72.4.4矩陣的點(diǎn)乘兩個(gè)矩陣對(duì)應(yīng)元素之間的乘積。C=A.×B2.4.5矩陣的除法Matlab定義了矩陣的除法運(yùn)算,其意義相當(dāng)于矩陣的求逆運(yùn)算。如:Ax=B,x=inv(A)×B,也可簡(jiǎn)單地寫成x=A/B。
82.4.6單個(gè)矩陣元素的賦值與運(yùn)算Matlab允許用戶對(duì)一個(gè)矩陣地單個(gè)元素進(jìn)行賦值和操作。Matlab還允許對(duì)子矩陣進(jìn)行定義和處理。A(:,j)表示A矩陣的第j列元素;A(i,:)表示A矩陣的第i行全部元素。A(:,1)=[1,4,7]A(2,:)=[4,5,6]
92.5Matlab的控制語(yǔ)句2.5.1Matlab的循環(huán)語(yǔ)句結(jié)構(gòu)for語(yǔ)句和while語(yǔ)句for語(yǔ)句的基本格式for循環(huán)變量i=表達(dá)式S1:表達(dá)式S3:表達(dá)式S2循環(huán)語(yǔ)句組end在C語(yǔ)言中,循環(huán)體的內(nèi)容是以大括號(hào){}括起來(lái)的,而在Matlab語(yǔ)言中,循環(huán)體的內(nèi)容是以循環(huán)語(yǔ)句和end語(yǔ)句括起來(lái)的,所以在使用Matlab時(shí)應(yīng)注意這一點(diǎn)。
10for循環(huán)體的程序框圖
11while語(yǔ)句的結(jié)構(gòu)while(條件式)循環(huán)語(yǔ)句組endwhile語(yǔ)句的框圖
122.5.2Matlab的條件轉(zhuǎn)移語(yǔ)句結(jié)構(gòu)基本格式:if(條件式)條件塊語(yǔ)句組end結(jié)構(gòu)框圖
13絕對(duì)轉(zhuǎn)移由于Matlab沒(méi)有提供絕對(duì)轉(zhuǎn)移的指令,所以這樣的功能可通過(guò)if和while的組合來(lái)完成。見例3。復(fù)雜的條件結(jié)構(gòu)if(條件式)條件塊語(yǔ)句組1else條件語(yǔ)句組2end
14if(條件式1)條件塊語(yǔ)句組1elseif(條件式2)條件塊語(yǔ)句組2………end
152.6Matlab的編程基礎(chǔ)2.6.1Matlab允許的文件類型Matlab編寫的程序分為M函數(shù)和M文件,其后綴名均為.m。Matlab允許用戶調(diào)用可執(zhí)行文件.exe。其調(diào)用方式是在>>下鍵入“!”,再接可執(zhí)行文件的文件名。Matlab通過(guò)Mex功能可以實(shí)現(xiàn)對(duì)C或Fortran語(yǔ)言編寫的程序的調(diào)用。
162.6.2Matlab變量的管理Size(A)得到A的維數(shù),包括行數(shù)和列數(shù),此時(shí)A是矩陣;Length(A)得到A的長(zhǎng)度,此時(shí)A是向量;Who查看當(dāng)前工作空間有哪些變量名;Whos了解這些變量的具體細(xì)節(jié),包括名稱(name),大?。╯ize),元素?cái)?shù)(element),字節(jié)數(shù)(bytes)等Clear刪除變量;Save文件名變量列表其它選項(xiàng):將工作空間的變量保存到文件中。-assii:ASCII碼格式Load文件名:將save命令存儲(chǔ)起來(lái)的數(shù)據(jù)再?gòu)奈募{(diào)入工作空間。
172.7Matlab的繪圖功能2.7.1建立和控制圖形窗口figure建立新的圖形窗口clf清除當(dāng)前圖形close關(guān)閉圖形
182.7.2基本X-Y圖形plot線性圖形title圖形標(biāo)題xlabelX軸標(biāo)記ylableY軸標(biāo)記text文本注釋grid網(wǎng)格線hold保持當(dāng)前圖形subplot在一個(gè)圖形窗口畫多個(gè)坐標(biāo)圖。例:subplot(2,3,2);plot(X)表示在2行3列的大圖形中的第2號(hào)圖中畫X的形狀。
192.8神經(jīng)網(wǎng)絡(luò)工具箱常用函數(shù)列表2.8.1重要的感知器神經(jīng)網(wǎng)絡(luò)函數(shù)初始化:initp訓(xùn)練:trainp仿真:simup學(xué)習(xí)規(guī)則:learnp
202.8.2線性神經(jīng)網(wǎng)絡(luò)函數(shù)初始化:initlin設(shè)計(jì):solvelin仿真:simulin離線訓(xùn)練:trainwh在線自適應(yīng)訓(xùn)練:adaptwh學(xué)習(xí)規(guī)則:learnwh
212.8.3BP網(wǎng)絡(luò)函數(shù)Initff:初始化不超過(guò)3層的前向網(wǎng)絡(luò);Simuff:仿真不超過(guò)3層的前向網(wǎng)絡(luò);Trainbp,trainbpx,trainlm:訓(xùn)練BP(Trainbp:最慢;trainbpx:次之;trainlm:速度最快,但需要更多的存儲(chǔ)空間。)Learnbp:學(xué)習(xí)規(guī)則
222.8.4自組織網(wǎng)絡(luò)初始化:initsm仿真:simuc訓(xùn)練:trainc:利用競(jìng)爭(zhēng)規(guī)則訓(xùn)練trainsm:利用Kohonen規(guī)則訓(xùn)練2.8.5反饋網(wǎng)絡(luò)(Hopfield網(wǎng)絡(luò))仿真:simuhop設(shè)計(jì):solvehop
232.9Matlab編程舉例作業(yè):2002年5月8日分塊矩陣求逆法:A=A11A12A21A22上面的矩陣是一個(gè)分塊矩陣,這時(shí)B=A-1=B11B12B21B22其中,B22=(A22-A21A11-1A12)-1,B12=-A11-1A12B22B21=-B22A21A11-1,B11=A11-1-B12A21A11-1。
24根據(jù)上述算法,計(jì)算:A=214-2-1-430-1-301234-2-3-4428631260-290-34686912的逆矩陣。(分塊維數(shù)n1取3)【允許用inv()求A11-1】