數(shù)學(xué)建模常用算法_第1頁(yè)
數(shù)學(xué)建模常用算法_第2頁(yè)
數(shù)學(xué)建模常用算法_第3頁(yè)
數(shù)學(xué)建模常用算法_第4頁(yè)
數(shù)學(xué)建模常用算法_第5頁(yè)
已閱讀5頁(yè),還剩95頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、數(shù)學(xué)建模常用算法數(shù)學(xué)建模常用算法數(shù)學(xué)數(shù)學(xué)建模校內(nèi)培訓(xùn)建模校內(nèi)培訓(xùn)2011年年8月月31日日目錄:一.數(shù)據(jù)擬合數(shù)據(jù)擬合二二. 規(guī)劃問題規(guī)劃問題三三. 灰色預(yù)測(cè)灰色預(yù)測(cè)四四. 遺傳算法遺傳算法五五. 模擬退火算法模擬退火算法六六. 人工神經(jīng)網(wǎng)絡(luò)算法人工神經(jīng)網(wǎng)絡(luò)算法七七. 小波分析小波分析八八. 蒙特卡羅方法蒙特卡羅方法一一. 數(shù)據(jù)擬合、參數(shù)估計(jì)、插值等算法數(shù)據(jù)擬合、參數(shù)估計(jì)、插值等算法 數(shù)據(jù)擬合在很多賽題中有應(yīng)用,與圖形處理有關(guān)的問題很多與擬合有關(guān)系,一個(gè)例子就是98 年美國(guó)賽A 題,生物組織切片的三維插值處理,94 年A 題逢山開路,山體海拔高度的插值計(jì)算,觀察數(shù)據(jù)的走向進(jìn)行處理。此類問題在MA

2、TLAB中有很多現(xiàn)成的函數(shù)可以調(diào)用,熟悉MATLAB,這些方法都能游刃有余的用好。曲線擬合的線性最小二乘法曲線擬合的線性最小二乘法 曲線擬合問題的提法是,已知一組(二維)數(shù)據(jù),即平面上的n 個(gè)點(diǎn)尋求一個(gè)函數(shù)(曲線) y = f (x) ,使f (x) 在某種準(zhǔn)則下與所有數(shù)據(jù)點(diǎn)最為接近,即曲線擬合得最好。線性最小二乘法是解決曲線擬合最常用的方法,基本思路是,令 其中是事先選定好的一組線性無(wú)關(guān)的函數(shù),)()()()(21xraxraxraxfmm 是待定系數(shù),擬合的準(zhǔn)則是使 與 的距離的平方和最小,即為最小二乘準(zhǔn)則。記為使 與 的距離的平方和最小,只需利用極值的必要條件 得到關(guān)于 的線性方程組,

3、該方程組的解即為所要求的待定系數(shù)而函數(shù) 的選取也是首要、關(guān)鍵的一步。一般需要經(jīng)驗(yàn)分析與判斷。常用的曲線有直線 多項(xiàng)式 (一般m=2,3, 不宜太高)雙曲線(一支) 指數(shù)函數(shù) 已知一組數(shù)據(jù),用什么樣的曲線擬合最好,可以在直觀判斷的基礎(chǔ)上,選幾種曲線分別擬合,然后比較,看哪條曲線的最小二乘指標(biāo)J 最小。ka, 2 , 1,niyi), 1(0mkaJkmaa,1niiiniimyxfaaJ12121)(),()(ixfmaa,1, 2 , 1,niyi)(ixf21axay11mmmaxaxay21axayxaeay21)(xrk多項(xiàng)式擬合方法多項(xiàng)式擬合方法如果取 即用m 次多項(xiàng)式擬合給定數(shù)據(jù),M

4、atlab中有現(xiàn)成的函數(shù) a=polyfit(x0,y0,m)其中輸入?yún)?shù)x0,y0 為要擬合的數(shù)據(jù),m 為擬合多項(xiàng)式的次數(shù),輸出參數(shù)a 為擬合多項(xiàng)式 y=a_mx_m+a_1x+a_0 系數(shù)a= a_m, , a_1, a_0。多項(xiàng)式在x 處的值y 可用下面的函數(shù)計(jì)算 y=polyval(a,x)x=1 2 3 4 5 6 7 8 9;y=9 7 6 3 -1 2 5 7 20;P=polyfit(x,y,3);xi=0:.2:10;yi=polyval(P,xi);plot(xi,yi,x,y,r*);, 1,),(11mmxxrxrsyms tx=0;0.4;1.2;2;2.8;3.6;

5、4.4;5.2;6;7.2;8;9.2;10.4;11.6;12.4;13.6;14.4;15;y=1;0.85;0.29;-0.27;-0.53;-0.4;-0.12;0.17;0.28;0.15;-0.03;-0.15;-0.071;0.059;0.09;0.032;-0.015;-0.02;%指定函數(shù)形式為f(t)=acos(kt)e(wt),進(jìn)行擬合f=fittype(a*cos(k*t)*exp(w*t),independent,t,coefficients,a,k,w);cfun=fit(x,y,f) %顯示擬合函數(shù)xi=0:.1:20;yi=cfun(xi);plot(x,y,r

6、*,xi,yi,b-);clearclc%讀人口數(shù)據(jù)Y=33815 33981 34004 34165 34212 34327 34344 34458 34498 34476, 34483 34488 34513 34497 34511 34520 34507 34509 34521 34513, 34515 34517 34519 34519 34521 34521 34523 34525 34525 34527T=1:30%因?yàn)閘ogistic 曲線模型的基本形式為y=1/(a+be(-t),%所以只要令y=1/y,x=e(-t),就可以轉(zhuǎn)化為線性模型 y=a+bx%下面利用Matlab進(jìn)

7、行回歸分析擬合計(jì)算for t=1:30 x(t)=exp(-t); y(t)=1/Y(t);end% 計(jì)算,并輸出回歸系數(shù) Bc=zeros(30,1)+1;X=c,x;B=inv(X*X)*X*yfor i=1:30 %計(jì)算回歸擬合值 z(i)=B(1,1)+B(2,1)*x(i); %計(jì)算離差 s(i)=y(i)-sum(y)/30; %計(jì)算誤差 w(i)=z(i)-y(i);end %計(jì)算離差平方和SS=s*s;%回歸誤差平方和QQ=w*w;%計(jì)算回歸平方和UU=S-Q;%計(jì)算 輸出F檢驗(yàn)值F=28*U/Q%計(jì)算 非線性回歸模型的擬合值for j=1:30 Y(j)=1/(B(1,1)+

8、B(2,1)*exp(-j);endplot(T,Y)min E(k,a,b)=sum_j=110a+be-0.02Kt_j-C_j2tdata=linspace(100,1000,10);cdata=1e-05.*454 499 535 565 590 610 626 639 650 659;x0=0.2,0.05,0.05;x=lsqcurvefit(curvefun,x0,tdata,cdata) %對(duì)曲線使用自定義函數(shù)進(jìn)行最小二乘擬合f=curvefun(x,tdata)plot(tdata,cdata,o,tdata,f,r-)function f=curvefun(x,tdata)

9、f=x(1)+x(2)*exp(-0.02*x(3)*tdata); %x(1)=a,x(2)=b,x(3)=k數(shù)據(jù)的可視化數(shù)據(jù)的可視化解決地形地貌問題的關(guān)鍵是要將未測(cè)量地點(diǎn)的高度用數(shù)據(jù)插值的方法求出來(lái),然后就可以用Matlab 繪圖方法畫出來(lái)。x,y=meshgrid(1:10) ; %構(gòu)造測(cè)量網(wǎng)絡(luò)h=rand(10,10); %測(cè)量數(shù)據(jù)點(diǎn) (此時(shí)為隨機(jī)產(chǎn)生的數(shù)據(jù))xi,yi=meshgrid(1:0.1:10) ; %構(gòu)造插值網(wǎng)絡(luò)hi=interp2(x,y,h,xi,yi,spline); %二維插值命令surf(hi); %畫出地貌圖xlabel(x),ylabel(y),zlabel

10、(h);2002 年年A 題是要繪制投影區(qū)域。需要建立車燈投影的數(shù)學(xué)模型,然后再題是要繪制投影區(qū)域。需要建立車燈投影的數(shù)學(xué)模型,然后再根據(jù)模型匯出投影效果圖根據(jù)模型匯出投影效果圖根據(jù)得到的線光源長(zhǎng)度,用投點(diǎn)法可畫出測(cè)試屏上反射光的亮區(qū)根據(jù)得到的線光源長(zhǎng)度,用投點(diǎn)法可畫出測(cè)試屏上反射光的亮區(qū)。p=0.03;x=25.0216;for y1=-0.002:0.0004:0.002 y0=(-0.036:0.001:0.036)*ones(1,73); z0=ones(73,1)*(-0.036:0.001:0.036); x0=(y0.2+z0.2)/(2*p); xn=(p3+4*x0*2*p.

11、*x0+p*(-4*y1*y0+3*2*p*x0)./(2*(p2+2*p*x0); yn=(2*p*x0.*y0+p2*(-y1+y0)+y1*(y0.2-z0.2)./(p2+2*p*x0); zn=(p2+2*p*x0+2*y1*y0).*z0./(p2+2*p*x0); y=y0+(yn-y0).*(x-x0)./(xn-x0); z=z0+(zn-z0).*(x-x0)./(xn-x0); plot(y,z,r.) xlabel(y) ylabel(z) hold onend 二二. 規(guī)劃問題規(guī)劃問題線性規(guī)劃線性規(guī)劃線性規(guī)劃是在一組線性約束條件的限制下, 求一線性目標(biāo)函數(shù)最大或最小的

12、問題。在解決實(shí)際問題時(shí),把問題歸結(jié)成一個(gè)線性規(guī)劃數(shù)學(xué)模型是很重要的一步,但往往也是困難的一步,模型建立得是否恰當(dāng),直接影響到求解。而選適當(dāng)?shù)臎Q策變量,是我們建立有效模型的關(guān)鍵之一。線性規(guī)劃的Malab 標(biāo)準(zhǔn)形式 其中c 和 為n 為列向量,A、Aeq 為適當(dāng)維數(shù)矩陣, b,beq 為適當(dāng)維數(shù)的列向量。基本函數(shù)形式為linprog(c,A,b),它的返回值是向量x 的值。還有其它的一些函數(shù)調(diào)用形式(在 Matlab 指令窗運(yùn)行 help linprog 可以看到所有的函數(shù)調(diào)用形式),如:x,fval=linprog(c,A,b,Aeq,beq,VLB,VUB,X0,OPTIONS)這里fval

13、返回目標(biāo)函數(shù)的值,LB 和UB 分別是變量x 的下界和上界,x0 是x 的初始值,OPTIONS 是控制參數(shù)。VUBXVLBbeqAeqXbAXtsXczTx.min非線性規(guī)劃非線性規(guī)劃如果目標(biāo)函數(shù)或約束條件中包含非線性函數(shù),就稱這種規(guī)劃問題為非線性規(guī)劃問題。一般說來(lái),解非線性規(guī)劃要比解線性規(guī)劃問題困難得多。而且,也不象線性規(guī)劃有單純形法這一通用方法,非線性規(guī)劃目前還沒有適于各種問題的一般算法,各個(gè)方法都有自己特定的適用范圍。(i)確定供選方案:首先要收集同問題有關(guān)的資料和數(shù)據(jù),在全面熟悉問題的基礎(chǔ)上,確認(rèn)什么是問題的可供選擇的方案,并用一組變量來(lái)表示它們。(ii)提出追求目標(biāo):經(jīng)過資料分析,

14、根據(jù)實(shí)際需要和可能,提出要追求極小化或極大化的目標(biāo)。并且,運(yùn)用各種科學(xué)和技術(shù)原理,把它表示成數(shù)學(xué)關(guān)系式。(iii)給出價(jià)值標(biāo)準(zhǔn):在提出要追求的目標(biāo)之后,要確立所考慮目標(biāo)的“好”或“壞”的價(jià)值標(biāo)準(zhǔn),并用某種數(shù)量形式來(lái)描述它。(iv)尋求限制條件:由于所追求的目標(biāo)一般都要在一定的條件下取得極小化或極大化效果,因此還需要尋找出問題的所有限制條件,這些條件通常用變量之間的一些不等式或等式來(lái)表示。如果線性規(guī)劃的最優(yōu)解存在,其最優(yōu)解只能在其可行域的邊界上達(dá)到(特別是可行域的頂點(diǎn)上達(dá)到);而非線性規(guī)劃的最優(yōu)解(如果最優(yōu)解存在)則可能在其可行域的任意一點(diǎn)達(dá)到。Matlab 中非線性規(guī)劃的數(shù)學(xué)模型寫成以下形式其

15、中f (x) 是標(biāo)量函數(shù),A, B, Aeq, Beq, LB,UB 是相應(yīng)維數(shù)的矩陣和向量,C(x),Ceq(x) 是非線性向量函數(shù)。VUBXVLBXCeqXCBeqAeqXBAXtsxf0)(0)(.)(minMatlab 中的命令是X=FMINCON(FUN,X0,A,B,Aeq,Beq,LB,UB,NONLCON,OPTIONS)它的返回值是向量x ,其中FUN 是用M 文件定義的函數(shù)f (x); 是x 的初始值;A,B,Aeq,Beq 定義了線性約束A* X B, Aeq * X = Beq,如果沒有線性約束,則A=,B=,Aeq=,Beq=;LB 和UB 是變量x 的下界和上界,如

16、果上界和下界沒有約束,則LB=,UB=,如果x 無(wú)下界,則LB 的各分量都為-inf,如果x 無(wú)上界,則UB的各分量都為inf;NONLCON 是用M 文件定義的非線性向量函數(shù)C(x),Ceq(x) ;OPTIONS定義了優(yōu)化參數(shù),可以使用Matlab 缺省的參數(shù)設(shè)置。0 x線性規(guī)劃線性規(guī)劃f=-5;-4;-6;A=1 -1 1; 3 2 4; 3 2 0;b=20; 42; 30;lb=zeros(3,1);x,fval,exifflag, output, lambda=linprog(f,A,b,lb)%非線性規(guī)劃非線性規(guī)劃options=optimset; x,y=fmincon(fun

17、1,rand(2,1),zeros(2,1),fun2,options)function f=fun1(x);f=x(1)2+x(2)2+8;function g,h=fun2(x);g=-x(1)2+x(2);h=-x(1)-x(2)2+2;x0=1;1;1;1;lb=0;0;0;0;ub=;A=;b=;Aeq=;beq=;x,fval=fmincon(fun44,x0,A,b,Aeq,beq,lb,ub,mycon1)function g,ceq=mycon1(x)g(1)=x(1)-400;g(2)=1.1*x(1)+x(2)-440;g(3)=1.21*x(1)+1.1*x(2)+x(

18、3)-484;g(4)=1.331*x(1)+1.218*x(2)+1.1*x(3)+x(4)-532.4;ceq=0;function f=fun44(x)f=-(sqrt(x(1)+sqrt(x(2)+sqrt(x(3)+sqrt(x(4);整數(shù)規(guī)劃整數(shù)規(guī)劃規(guī)劃中的變量(部分或全部)限制為整數(shù)時(shí),稱為整數(shù)規(guī)劃。若在線性規(guī)劃模型中,變量限制為整數(shù),則稱為整數(shù)線性規(guī)劃。目前所流行的求解整數(shù)規(guī)劃的方法,往往只適用于整數(shù)線性規(guī)劃。目前還沒有一種方法能有效地求解一切整數(shù)規(guī)劃。隨機(jī)取樣計(jì)算方法:隨機(jī)取樣計(jì)算方法:盡管整數(shù)規(guī)劃由于限制變量為整數(shù)而增加了難度,但由于整數(shù)解是有限個(gè),于是為枚舉法提供了方便。

19、應(yīng)用概率理論可以證明在有一定計(jì)算量的情況下,隨機(jī)取樣計(jì)算方法完全可以得到一個(gè)滿意解。例:function f,g=mengte(x);f=x(1)2+x(2)2+3*x(3)+4*x(4)2+2*x(5)-8*x(1)-2*x(2)-3*x(3)-x(4)-2*x(5);g(1)=sum(x)-400;g(2)=x(1)+2*x(2)+2*x(3)+x(4)+6*x(5)-800;g(3)=2*x(1)+x(2)+6*x(3)-200;g(4)=x(3)+x(4)+5*x(5)-200;rand(state,sum(clock); %初始化隨機(jī)數(shù)產(chǎn)生序列的辦法,每次產(chǎn)生隨機(jī)數(shù)的時(shí)候,隨機(jī)數(shù)生成

20、器觸發(fā)器的狀態(tài)都會(huì)翻轉(zhuǎn)一次。p0=0;ticfor i=1:105 x=99*rand(5,1); x1=floor(x);x2=ceil(x); f,g=mengte(x1); if sum(g=0)=4 if p0=f x0=x1;p0=f; endendf,g=mengte(x2);if sum(g=0)=4 if p0=f x0=x2;p0=f; endendendx0,p0toc灰色預(yù)測(cè)灰色預(yù)測(cè)灰色預(yù)測(cè)則是應(yīng)用灰色模型對(duì)灰色系統(tǒng)進(jìn)行分析、建模、求解、預(yù)測(cè)的過程。由于灰色建模理論應(yīng)用數(shù)據(jù)生成手段,弱化了系統(tǒng)的隨機(jī)性,使紊亂的原始序列呈現(xiàn)某種規(guī)律,規(guī)律不明顯的變得較為明顯,建模后還能進(jìn)行

21、殘差辨識(shí),即使較少的歷史數(shù)據(jù),任意隨機(jī)分布,也能得到較高的預(yù)測(cè)精度。因此,灰色預(yù)測(cè)在社會(huì)經(jīng)濟(jì)、管理決策、農(nóng)業(yè)規(guī)劃、氣象生態(tài)等各個(gè)部門和行業(yè)都得到了廣泛的應(yīng)用?;疑A(yù)測(cè)通過鑒別系統(tǒng)因素之間發(fā)展趨勢(shì)的相異程度,并對(duì)原始數(shù)據(jù)進(jìn)行生成處理來(lái)尋找系統(tǒng)變動(dòng)的趨勢(shì),生成有較強(qiáng)趨勢(shì)的數(shù)據(jù)序列,然后建立相應(yīng)的微分方程模型,從而預(yù)測(cè)事物的未來(lái)發(fā)展趨勢(shì)?;疑A(yù)測(cè)的數(shù)據(jù)是通過生成數(shù)據(jù)的模型所得到的預(yù)測(cè)值的逆處理結(jié)果。在諸多灰色預(yù)測(cè)模型中,以灰色系統(tǒng)中單一序列一階線性微分方程GM(1,1) 模型最為常用。下面簡(jiǎn)要介紹GM(1,1)模型。 已知某公司已知某公司1998-2008年利潤(rùn)為年利潤(rùn)為89677, 99215,

22、109655,120333,135823,159878,182321,209407,246619,300670,現(xiàn)要預(yù)測(cè)該,現(xiàn)要預(yù)測(cè)該公司未來(lái)幾年的利潤(rùn)情況。公司未來(lái)幾年的利潤(rùn)情況。clear syms a b;c=a b;A=89677, 99215, 109655, 120333,135823,159878,182321,209407,246619,300670;B=cumsum(A); %原始數(shù)據(jù)累加n=length(A);for i=1:(n-1) C(i)=(B(i)+B(i+1)/2; %生成累加矩陣end%計(jì)算待定參數(shù)的值D=A;D(1)=;D=D;E=-C;ones(1,n-1

23、);c=inv(E*E)*E*D;c=c;a=c(1);b=c(2);%預(yù)測(cè)后續(xù)數(shù)據(jù)F=;F(1)=A(1);for i=2:(n+10) F(i)=(A(1)-b/a)/exp(a*(i-1)+b/a;endG=;G(1)=A(1);for i=2:(n+10) G(i)=F(i)-F(i-1); %得出預(yù)測(cè)數(shù)據(jù)endt1=1999:2008;t2=1999:2018;G;plot(t1,A,o,t2,G)%2005A題題 長(zhǎng)江水質(zhì)的預(yù)測(cè)長(zhǎng)江水質(zhì)的預(yù)測(cè)clear syms a b;c=a b;A=174 179 183 189 207 234 220.5 256 270 285;B=cums

24、um(A);n=length(A);for i=1:(n-1) C(i)=(B(i)+B(i+1)/2;endD=A;D(1)=;D=D;E=-C;ones(1,n-1);c=inv(E*E)*E*D;c=c;a=c(1);b=c(2);F=;F(1)=A(1);for i=2:(n+10) F(i)=(A(1)-b/a)/exp(a*(i-1)+b/a;endG=;G(1)=A(1);for i=2:(n+10) G(i)=F(i)-F(i-1);endt1=1995:2004;t2=1995:2014;G;a,bplot(t1,A,o,t2,G)遺傳算法 BEGIN t=0 %遺傳代數(shù) 計(jì)

25、算P(t) 的適應(yīng)值 while (不滿足停止準(zhǔn)則) do begin t=t+1 從P(t-1)中選擇P (t) %選擇(或復(fù)制) 重組 P(t) %交叉和變異 計(jì)算P(t) 的適應(yīng)值 end END遺傳算法的起源遺傳算法的起源遺傳算法是由美國(guó)的J. Holland教授于1975年在他的專著自然界和人工系統(tǒng)的適應(yīng)性中首先提出的,它是一類借鑒生物界自然選擇和自然遺傳機(jī)制的隨機(jī)化搜索算法 。遺傳算法的搜索機(jī)制遺傳算法的搜索機(jī)制 遺傳算法模擬自然選擇和自然遺傳過程中發(fā)生的繁殖、交叉和基因突變現(xiàn)象,在每次迭代中都保留一組候選解,并按某種指標(biāo)從解群中選取較優(yōu)的個(gè)體,利用遺傳算子(選擇、交叉和變異)對(duì)這

26、些個(gè)體進(jìn)行組合,產(chǎn)生新一代的候選解群,重復(fù)此過程,直到滿足某種收斂指標(biāo)為止。 基本遺傳算法基本遺傳算法(Simple Genetic Algorithms,簡(jiǎn)稱SGA,又稱簡(jiǎn)單遺傳算法或標(biāo)準(zhǔn)遺傳算法),是由Goldberg總結(jié)出的一種最基本的遺傳算法,其遺傳進(jìn)化操作過程簡(jiǎn)單,容易理解,是其它一些遺傳算法的雛形和基礎(chǔ)?;具z傳算法的組成(1)編解碼(產(chǎn)生初始種群)(2)適應(yīng)度函數(shù)(3)遺傳算子(選擇、交叉、變異)(4)運(yùn)行參數(shù)編碼 GA是通過某種編碼機(jī)制把對(duì)象抽象為由特定符號(hào)按一定順序排成的串。正如研究生物遺傳是從染色體著手,而染色體則是由基因排成的串。SGA使用二進(jìn)制串進(jìn)行編碼。解碼解碼的目的

27、是為了將不直觀的二進(jìn)制數(shù)據(jù)還原為十進(jìn)制。遺傳算法的編碼和解碼在宏觀上可以對(duì)應(yīng)生物的基因型和表現(xiàn)型,在微觀上可以對(duì)應(yīng)DNA的轉(zhuǎn)錄和翻譯兩個(gè)過程。函數(shù)優(yōu)化示例函數(shù)優(yōu)化示例 求下列一元函數(shù)的最大值: x-1,2,求解結(jié)果精確到6位小數(shù)。0 .2)10sin()(xxxfSGA對(duì)于本例的編碼 由于區(qū)間長(zhǎng)度為3,求解結(jié)果精確到6位小數(shù),因此可將自變量定義區(qū)間劃分為3106等份。又因?yàn)?21 3106 222 ,所以本例的二進(jìn)制編碼長(zhǎng)度至少需要22位,本例的編碼過程實(shí)質(zhì)上是將區(qū)間-1,2內(nèi)對(duì)應(yīng)的實(shí)數(shù)值轉(zhuǎn)化為一個(gè)二進(jìn)制串(b21b20b0)。初始種群初始種群 SGA采用隨機(jī)方法生成若干個(gè)個(gè)體的集合,該集合稱

28、為初始種群。初始種群中個(gè)體的數(shù)量稱為種群規(guī)模。適應(yīng)度函數(shù) 遺傳算法對(duì)一個(gè)個(gè)體(解)的好壞用適應(yīng)度函數(shù)值來(lái)評(píng)價(jià),適應(yīng)度函數(shù)值越大,解的質(zhì)量越好。適應(yīng)度函數(shù)是遺傳算法進(jìn)化過程的驅(qū)動(dòng)力,也是進(jìn)行自然選擇的唯一標(biāo)準(zhǔn),它的設(shè)計(jì)應(yīng)結(jié)合求解問題本身的要求而定。選擇算子選擇算子遺傳算法使用選擇運(yùn)算來(lái)實(shí)現(xiàn)對(duì)群體中的個(gè)體進(jìn)行優(yōu)勝劣汰操作:適應(yīng)度高的個(gè)體被遺傳到下一代群體中的概率大;適應(yīng)度低的個(gè)體,被遺傳到下一代群體中的概率小。選擇操作的任務(wù)就是按某種方法從父代群體中選取一些個(gè)體,遺傳到下一代群體。SGA中選擇算子采用輪盤賭選擇方法。 輪盤賭選擇方法輪盤賭選擇方法 輪盤賭選擇又稱比例選擇算子,它的基本思想是:各個(gè)個(gè)

29、體被選中的概率與其適應(yīng)度函數(shù)值大小成正比。設(shè)群體大小為n ,個(gè)體i 的適應(yīng)度為 Fi,則個(gè)體i 被選中遺傳到下一代群體的概率為:niiiiFFP1/輪盤賭選擇方法的實(shí)現(xiàn)步驟(1) 計(jì)算群體中所有個(gè)體的適應(yīng)度函數(shù)值(需要解碼);(2) 利用比例選擇算子的公式,計(jì)算每個(gè)個(gè)體被選中遺傳到下一代群體的概率;(3) 采用模擬賭盤操作(即生成0到1之間的隨機(jī)數(shù)與每個(gè)個(gè)體遺傳到下一代群體的概率進(jìn)行匹配)來(lái)確定各個(gè)個(gè)體是否遺傳到下一代群體中。交叉算子所謂交叉運(yùn)算,是指對(duì)兩個(gè)相互配對(duì)的染色體依據(jù)交叉概率 Pc 按某種方式相互交換其部分基因,從而形成兩個(gè)新的個(gè)體。交叉運(yùn)算是遺傳算法區(qū)別于其他進(jìn)化算法的重要特征,它

30、在遺傳算法中起關(guān)鍵作用,是產(chǎn)生新個(gè)體的主要方法。 SGA中交叉算子采用單點(diǎn)交叉算子。 單點(diǎn)交叉運(yùn)算 交叉前:00000|0111000000001000011100|00000111111000101交叉后:00000|0000011111100010111100|01110000000010000交叉點(diǎn)交叉點(diǎn)變異算子所謂變異運(yùn)算,是指依據(jù)變異概率 Pm 將個(gè)體編碼串中的某些基因值用其它基因值來(lái)替換,從而形成一個(gè)新的個(gè)體。遺傳算法中的變異運(yùn)算是產(chǎn)生新個(gè)體的輔助方法,它決定了遺傳算法的局部搜索能力,同時(shí)保持種群的多樣性。交叉運(yùn)算和變異運(yùn)算的相互配合,共同完成對(duì)搜索空間的全局搜索和局部搜索。 SG

31、A中變異算子采用基本位變異算子?;疚蛔儺愃阕?基本位變異算子是指對(duì)個(gè)體編碼串隨機(jī)指定的某一位或某幾位基因作變異運(yùn)算。對(duì)于基本遺傳算法中用二進(jìn)制編碼符號(hào)串所表示的個(gè)體,若需要進(jìn)行變異操作的某一基因座上的原有基因值為0,則變異操作將其變?yōu)?;反之,若原有基因值為1,則變異操作將其變?yōu)? 。基本位變異算子的執(zhí)行過程 變異前:000001110000000010000變異后:000001110001000010000變異點(diǎn)變異點(diǎn)運(yùn)行參數(shù)(1)M : 種群規(guī)模 (2)T : 遺傳運(yùn)算的終止進(jìn)化代數(shù) (3)Pc : 交叉概率 (4)Pm : 變異概率 SGA的框圖 產(chǎn)生初始群體產(chǎn)生初始群體是否滿足停止準(zhǔn)

32、則是否滿足停止準(zhǔn)則是是輸出結(jié)果并結(jié)束輸出結(jié)果并結(jié)束計(jì)算個(gè)體適應(yīng)度值計(jì)算個(gè)體適應(yīng)度值比例選擇運(yùn)算比例選擇運(yùn)算單點(diǎn)交叉運(yùn)算單點(diǎn)交叉運(yùn)算基本位變異運(yùn)算基本位變異運(yùn)算否否產(chǎn)生新一代群體產(chǎn)生新一代群體執(zhí)行執(zhí)行M/2M/2次次運(yùn)用運(yùn)用GA 工具箱求解工具箱求解 cumcm 中多約束非線性規(guī)劃問題中多約束非線性規(guī)劃問題問題為問題為min f(x)=e(x_1)(4x_12+2x_22+4x_1x_2+2x_2+1)s.t. 1.5+x_1x_2-x_1-x_2=0; -x_1x_20|g210) f=100;else f=exp(x(1)*(4*x(1)2+2*x(2)2+4*x(1)*x(2)+2*x(2

33、)+1);endBestx = -9.45946346276848 1.05596649888319BestFval = 0.02520168130380 模擬退火算法模擬退火算法算法簡(jiǎn)介模擬退火算法得益于材料的統(tǒng)計(jì)力學(xué)的研究成果。統(tǒng)計(jì)力學(xué)表明材料中粒子的不同結(jié)構(gòu)對(duì)應(yīng)于粒子的不同能量水平。在高溫條件下,粒子的能量較高,可以自由運(yùn)動(dòng)和重新排列。在低溫條件下,粒子能量較低。如果從高溫開始,非常緩慢地降溫(這個(gè)過程被稱為退火),粒子就可以在每個(gè)溫度下達(dá)到熱平衡。當(dāng)系統(tǒng)完全被冷卻時(shí),最終形成處于低能狀態(tài)的晶體。如果用粒子的能量定義材料的狀態(tài),Metropolis 算法用一個(gè)簡(jiǎn)單的數(shù)學(xué)模型描述了退火過程

34、。假設(shè)材料在狀態(tài)i 之下的能量為E(i) ,那么材料在溫度T 時(shí)從狀態(tài)i 進(jìn)入狀態(tài)j 就遵循如下規(guī)律:(1)如果E( j) E(i) ,接受該狀態(tài)被轉(zhuǎn)換。(2)如果E( j) E(i) ,則狀態(tài)轉(zhuǎn)換以如下概率被接受: 其中K 是物理學(xué)中的波爾茲曼常數(shù), T是材料溫度。KTiEjEe)()(0TT 0 x算法基本步驟:算法基本步驟:(1)令 即開始退火的初始溫度,隨機(jī)生成一個(gè)初始解 ,并計(jì)算相應(yīng)的目標(biāo)函數(shù)值。(2)令 T 等于冷卻進(jìn)度表中的一個(gè)值 (3)根據(jù)當(dāng)前解 進(jìn)行擾動(dòng),產(chǎn)生一個(gè)新解 ,計(jì)算相應(yīng)的目標(biāo)函數(shù)值 ,得到 (4)若 ,則新解 被接受,作為新的當(dāng)前解;若 ,則新解 按照概率 接受,

35、為當(dāng)前溫度。(5)在溫度 下,重復(fù)Markov 鏈長(zhǎng)度 次的擾動(dòng)和接受過程,即執(zhí)行(3)與(4)。(6)判斷T 是否已到達(dá) ,是,則終止算法;否,則轉(zhuǎn)到(2)繼續(xù)執(zhí)行。ixjx0TT 0 x)()(ijxExEE)(jxE0Ejx0Ejx)/exp(iTEiTiTkLfTiT算法實(shí)質(zhì)分為兩循環(huán),在任一溫度隨機(jī)擾動(dòng)產(chǎn)生新解,并計(jì)算目標(biāo)函數(shù)的變化,決定是否被接受。由于算法初始溫度比較高,這樣使得E增大的新解在初始是也可以被接受,因而能跳出局部最小值然后通過緩慢地減低溫度,算法最終可能得到全局最優(yōu)解。新解產(chǎn)生的機(jī)制的基本要求是能夠盡量遍及解空間的各個(gè)區(qū)域,這樣在某一恒定溫度,不斷產(chǎn)生新解時(shí),就可能跳

36、出當(dāng)前區(qū)域的極小以搜索其他區(qū)域,這是模擬退火算法能夠進(jìn)行廣域搜索的一個(gè)重要條件??刂坪瘮?shù)T的衰減函數(shù)有多種形式,一個(gè)常用的衰減函數(shù)是: 其中 是一個(gè)常數(shù),可以取為0.50.99,它的取值,決定了降溫的過程。Markov 鏈長(zhǎng)度Markov 鏈長(zhǎng)度的選取原則是:在控制參數(shù)T的衰減函數(shù)已選定的前提下, 應(yīng)能使在控制參數(shù)T的每一取值上達(dá)到平衡。從經(jīng)驗(yàn)上看,對(duì)簡(jiǎn)單的情況可以令 ,n 為問題規(guī)模。kkTT1kLnLk100旅行商問題(TSP)代筆一類組合優(yōu)化問題,在物流、計(jì)算機(jī)網(wǎng)絡(luò)、電子地圖、交通疏導(dǎo)等方面都有重要的工程和理論價(jià)值,引起許多學(xué)者的關(guān)注。TSP簡(jiǎn)單描述為:一個(gè)商人要到n 個(gè)不同的地方去推銷

37、商品,每2個(gè)城市i 和j 之間的距離為 , 如何選擇一條路徑使得商人每個(gè)城市走一遍后回到起點(diǎn),所走的路徑最短。該問題當(dāng)城市數(shù)目在100以上,一般很難精確的求出其全局最優(yōu)解。說明:工程中許多實(shí)際優(yōu)化問題的目標(biāo)函數(shù)都是非凸的,存在許多局部最優(yōu)解,特別是隨著優(yōu)化規(guī)模的增大,局部最優(yōu)解的數(shù)目將迅速增加。有效地求出一般非凸目標(biāo)函數(shù)的全局解至今仍是一個(gè)難題。一般確定性算法往往容易陷入局部而非全局最優(yōu)。模擬退火算法是一種通用概率算法,用來(lái)在一個(gè)大的搜尋空間內(nèi)尋找問題的最優(yōu)解。具有高效、魯棒、通用、靈活的優(yōu)點(diǎn)。將模擬退火算法引入TSP求解,可以避免在求解過程中陷入TSP的局部最優(yōu)。ijd算法設(shè)計(jì)步驟:1. 問

38、題的解空間和初始解問題的解空間是遍訪每個(gè)城市恰好一次的所有回路,是所有城市排列的集合,即其中每一個(gè)排列 表示遍訪n 個(gè)城市的一個(gè)路徑, 表示第i 次訪問城市j.初始解為隨機(jī)生成一個(gè) 的隨機(jī)排列作為 。2. 目標(biāo)函數(shù)TSP 問題的目標(biāo)函數(shù)即為訪問所有城市的路徑的總長(zhǎng)度,也可以稱為代價(jià)函數(shù);現(xiàn)在TSP 問題的求解就是通過模擬退火算法求出目標(biāo)函數(shù) 的最小值。相應(yīng)地, 即為TSP 問題的最優(yōu)解。), 2 , 1 (),( | ),(2121的排列為nccccccSnnisjcj, 2 , 1n0s111121),(),(),(niniinccdccdcccC),(21ncccC),(*2*1ncccS

39、)(iissCC0),/ exp(0, 1CTCP3. 新解的產(chǎn)生新解的產(chǎn)生對(duì)問題的求解非常重要。新解可通過分別或者交替使用以下兩種方法來(lái)產(chǎn)生: (1) 二變換法:任選序號(hào)u,v (設(shè)uvn), 交換 u 和v 之間的訪問順序(2)三變換法:任選序號(hào)u,v,w (設(shè)u=vw), 將 u 和v 之間的路徑插到w之后訪問。4. 新解產(chǎn)生計(jì)算變換前的解和變換后目標(biāo)函數(shù)的差值:5. Metropolis 接受準(zhǔn)則以新解與當(dāng)前解的目標(biāo)函數(shù)差定義接受概率,即0-1 背包問題:有一個(gè)賊在偷竊一家商店時(shí)發(fā)現(xiàn)有背包問題:有一個(gè)賊在偷竊一家商店時(shí)發(fā)現(xiàn)有N件物品:第件物品:第i件物品件物品值值v_i 元,重元,重

40、w_i 磅(磅(1=i=tf for r=1:100 %產(chǎn)生隨機(jī)擾動(dòng) tmp=ceil(rand.*num); sol_new(1,tmp)=sol_new(1,tmp); while 1 q=(sol_new*d=restriction); ifq p=p; %實(shí)現(xiàn)交錯(cuò)著逆轉(zhuǎn)頭尾的第一個(gè)1 tmp=find(sol_new=1); if p sol_new(1,tmp)=0; else sol_new(1,tmp(end)=0; end else break end end %計(jì)算背包中的物品價(jià)值 E_new=sol_new*k; if E_newE_current E_current=E_

41、new; sol_current=sol_new; if E_newE_best %把冷卻過程中的解保存下來(lái) E_best=E_new; sol_best=sol_new; end else if randexp(-(E_new-E_current)./t) E_current=E_new; sol_current=sol_new; else sol_new=sol_current; end end end t=t.*a;enddisp(最優(yōu)解為:) sol_bestdisp(物品總價(jià)值等于;) val=-E_best;disp(val)disp(背包中物品重量是:)disp(sol_best

42、*d) 人工神經(jīng)網(wǎng)絡(luò)人工神經(jīng)網(wǎng)絡(luò) 人工神經(jīng)網(wǎng)絡(luò)具有人腦學(xué)習(xí)的記憶功能,主要應(yīng)用到數(shù)據(jù)建模、預(yù)測(cè)、模式識(shí)別和函數(shù)優(yōu)化等方向,在數(shù)學(xué)建模中也是經(jīng)常被用到,如人工神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)非典的傳播、人口的增長(zhǎng)等。 人工神經(jīng)網(wǎng)絡(luò) 是由大量簡(jiǎn)單的基本原件- 神經(jīng)元相互連接,通過模擬人的大腦神經(jīng)處理信息的方式,進(jìn)行信息并行處理和非線性轉(zhuǎn)換的復(fù)雜網(wǎng)絡(luò)系統(tǒng)。其優(yōu)點(diǎn)是多輸入多輸出實(shí)現(xiàn)了數(shù)據(jù)的并行處理及自學(xué)能力。它有三個(gè)基本要素:(i) 一組連接(對(duì)應(yīng)于生物神經(jīng)元的突觸),連接強(qiáng)度由各連接上的權(quán)值表示,權(quán)值為正表示激活,為負(fù)表示抑制。(ii)一個(gè)求和單元,用于求取各輸入信號(hào)的加權(quán)和(線性組合)。(iii)一個(gè)非線性激活函數(shù),

43、起非線性映射作用并將神經(jīng)元輸出幅度限制在一定范圍內(nèi)(一般限制在(0,1) 或(1,1) 之間)。此外還有一個(gè)閾值 (或偏置 )。以上作用可分別以數(shù)學(xué)式表達(dá)出來(lái):式中 為輸入信號(hào),為神經(jīng)元 k 之權(quán)值, 為線性組合結(jié)果, 為閾值(由刺激引起應(yīng)激組織反應(yīng)的最低值), 為激活函數(shù), 為神經(jīng)元k 的輸出。pxx,1kpkkwww,21ku)(kky激活函數(shù) 可以有以下幾種:(i)閾值函數(shù) 即階梯函數(shù)。這時(shí),相應(yīng)的輸出 為 其中 ,常稱此種神經(jīng)元為M-P 模型。(ii)分段線性函數(shù)它類似于一個(gè)放大系數(shù)為1 的非線性放大器,當(dāng)工作于線性區(qū)時(shí)它是一個(gè)線性組合器,放大系數(shù)趨于無(wú)窮大時(shí)變成一個(gè)閾值單元。(iii

44、)sigmoid 函數(shù)最常用的函數(shù)形式為 ,參數(shù) 可控制其斜率。 另一種常用的是雙曲正切函數(shù)。這類函數(shù)具有平滑和漸進(jìn)性,并保持單調(diào)性。0001)(vvv0001kkkvvyky)exp(11)(vv0Matlab 中的激活(傳遞)函數(shù)如下表所示: 各個(gè)函數(shù)的定義及使用方法,可以參看Matlab 的幫助。常見的神經(jīng)網(wǎng)絡(luò)理論常見的神經(jīng)網(wǎng)絡(luò)理論BP網(wǎng)絡(luò)基本數(shù)學(xué)原理BP網(wǎng)絡(luò)是一種多層前饋神經(jīng)網(wǎng)絡(luò)(各神經(jīng)元接受前一層的輸入,并輸出給下一層,沒有反饋)。BP 網(wǎng)絡(luò)是一種具有三層或三層以上神經(jīng)元的神經(jīng)網(wǎng)絡(luò),包括輸入層、中間層(隱含層)和輸出層。隱含層或輸出層將前一層所有的神經(jīng)元傳來(lái)的信息進(jìn)行整合,通常還會(huì)在

45、整合過的信息中添加一個(gè)閾值,這主要是模仿生物學(xué)中神經(jīng)元必須達(dá)到一定的閾值才會(huì)觸發(fā)的原理,然后將整合過的信息作為該層神經(jīng)元輸入。當(dāng)一對(duì)學(xué)習(xí)樣本提供給輸入神經(jīng)后,神經(jīng)元的激活值從輸入層經(jīng)過個(gè)隱含層向輸出層傳播,在輸出層的個(gè)神經(jīng)元獲得網(wǎng)絡(luò)輸出相應(yīng),然后按照減少網(wǎng)絡(luò)輸出與實(shí)際輸出樣本之間誤差方向,從輸出層反向經(jīng)過個(gè)隱含層,從而逐步修正個(gè)連接權(quán)值,這種算法交誤差反向傳播法,即BP算法。隨著這種誤差逆向傳播修正的反復(fù)進(jìn)行,網(wǎng)絡(luò)對(duì)輸入模式響應(yīng)的正確率也不斷上升。BP 算法的核心是數(shù)學(xué)中是“負(fù)梯度下降”理論,即BP網(wǎng)絡(luò)的誤差調(diào)整方向總是沿著誤差下降最快的方向進(jìn)行,常規(guī)三層BP網(wǎng)絡(luò)權(quán)值和閾值調(diào)整公式如下:其中,

46、 E為網(wǎng)絡(luò)輸出與實(shí)際輸出樣本之間的誤差平方和; 為網(wǎng)絡(luò)的學(xué)習(xí)速率即權(quán)值調(diào)整幅度; 為t 時(shí)刻輸入層第i 個(gè)神經(jīng)元與隱含層第j 個(gè)神經(jīng)元的連接權(quán)值; 為t+1 時(shí)刻輸入層第i 個(gè)神經(jīng)元與隱含層第j 個(gè)神經(jīng)元的連接權(quán)值, 為t+1 時(shí)刻輸隱含層第j 個(gè)神經(jīng)元與輸出層第k個(gè)神經(jīng)元的連接權(quán)值; 為神經(jīng)元的閾值,下標(biāo)的意義與權(quán)值的相同。根據(jù)神經(jīng)元具體激勵(lì)函數(shù)表達(dá)式,可以具體地求出 和 。 最終網(wǎng)絡(luò)通過負(fù)梯度 下降學(xué)習(xí)規(guī)則自行修正權(quán)值和閾值是誤差平方和E逐步變小并最終達(dá)到理想誤差。),() 1(twwEtwijijij),() 1(tEtijijij),()1(tEtjkjkjk),() 1(twwEtw

47、jkjkjkijwEjkwE)(twij) 1( twij) 1( twjk%公路運(yùn)輸主要包括公路客運(yùn)量和公路客運(yùn)量。公路運(yùn)輸主要包括公路客運(yùn)量和公路客運(yùn)量。%據(jù)研究,某地區(qū)公路運(yùn)量主要與該地區(qū)的人數(shù)、機(jī)動(dòng)車數(shù)量和公路面據(jù)研究,某地區(qū)公路運(yùn)量主要與該地區(qū)的人數(shù)、機(jī)動(dòng)車數(shù)量和公路面積有關(guān)。積有關(guān)。%數(shù)據(jù)如下(見下面程序)數(shù)據(jù)如下(見下面程序)%根據(jù)有關(guān)部門,該地區(qū)根據(jù)有關(guān)部門,該地區(qū)2010年年2011 年的人數(shù)分別為年的人數(shù)分別為73.39 和和75.55萬(wàn)萬(wàn)人,機(jī)動(dòng)車數(shù)量為人,機(jī)動(dòng)車數(shù)量為3.9635 和和4.0975萬(wàn)量,公路面積分別為萬(wàn)量,公路面積分別為0.9880和和1.0268 萬(wàn)平

48、方千米。萬(wàn)平方千米。%請(qǐng)利用請(qǐng)利用BP 網(wǎng)絡(luò)預(yù)測(cè)該地區(qū)網(wǎng)絡(luò)預(yù)測(cè)該地區(qū)2010 年和年和2011 年的公路客運(yùn)量和貨運(yùn)量。年的公路客運(yùn)量和貨運(yùn)量。function main()clcclear all;close all;SamNum=20; %輸入樣本數(shù)量為20TestSamNum=20; %測(cè)試樣本也是20ForcastSamNum=2; %預(yù)測(cè)樣本數(shù)量為2HiddenUnitNum=8; %中間層隱節(jié)點(diǎn)數(shù)量為8, 比工具箱多了1個(gè)InDim=3; %網(wǎng)絡(luò)輸入維度為3OutDim=2; %網(wǎng)絡(luò)輸出維度為2%原始數(shù)據(jù)%人數(shù)(單位:萬(wàn)人)sqrs=20.55 22.44 25.37 27.13

49、29.45 30.1 30.96 34.06 36.42 38.09 39.13 39.99 41.93 44.59 47.30 52.89 55.73 56.76 59.17 60.63;%機(jī)動(dòng)車數(shù)(萬(wàn)輛)sqjdcs=0.6 0.75 0.85 0.90 1.05 1.35 1.45 1.60 1.70 1.85 2.15 2.2 2.25 2.35 2.5 2.6 2.7 2.85 2.95 3.1;%公路面積(萬(wàn)平方千米)sqglmj=0.09 0.11 0.11 0.14 0.20 0.23 0.23 0.32 0.32 0.34 0.36 0.36 0.38 0.49 0.56 0

50、.59 0.59 0.67 0.69 0.79;%公路客運(yùn)量(萬(wàn)人)glhyl=5126 6217 7730 9145 10460 11387 12353 15750 18304 19836 21024 19490 20433 22598 25107 33442 36836 40548 42927 43462;%公路貨運(yùn)量(萬(wàn)噸)glkyl=1237 1379 1385 1399 1663 1714 1834 4322 8132 8936 11099 11203 10524 11115 13320 16762 18673 20724 20803 21804;p=sqrs;sqjdcs;sqgl

51、mj; %輸入數(shù)據(jù)矩陣t=glkyl;glhyl; %目標(biāo)數(shù)據(jù)矩陣SamIn, minp, maxp, tn, mint, maxt=premnmx(p,t); %原始樣本對(duì)(輸入和輸出)初始化rand(state,sum(100*clock); %依據(jù)系統(tǒng)時(shí)鐘種子產(chǎn)生隨機(jī)數(shù)Noisevar=0.01; %噪音強(qiáng)度為0.01(添加噪音的目的是為了防止網(wǎng)絡(luò)過度擬合)Noise=Noisevar*randn(2,SamNum); %生成噪音SamOut=tn + Noise; %將噪音添加到輸出樣本上TestSamIn=SamIn; %這里去輸入樣本與測(cè)試樣本相同,因?yàn)闃颖救萘科賂estSamO

52、ut=SamOut; %也取輸出樣本與測(cè)試樣本相同MaxEpochs=50000; %最多訓(xùn)練次數(shù)為50000lr=0.035; %學(xué)習(xí)速率為0.035E0=0.65*10(-3); %目標(biāo)誤差W1=0.5*rand(HiddenUnitNum,InDim)-0.1; %初始化輸入層與隱含層之間的權(quán)值B1=0.5*rand(HiddenUnitNum,1)-0.1; %初始化輸入層與隱含層之間的閾值W2=0.5*rand(OutDim,HiddenUnitNum)-0.1; %初始化輸出層與隱含層之間的權(quán)值B2=0.5*rand(OutDim,1)-0.1; %初始化輸出層與隱含層之間的閾值E

53、rrHistory=;for i=1:MaxEpochs HiddenOut=logsig(W1*SamIn+repmat(B1,1,SamNum); %隱含層網(wǎng)絡(luò)輸出 NetworkOut=W2*HiddenOut+repmat(B2,1,SamNum); %輸出層網(wǎng)絡(luò)輸出 Error=SamOut-NetworkOut; %實(shí)際輸出與網(wǎng)絡(luò)輸出之差 SSE=sumsqr(Error); %能量函數(shù)(誤差平方和) ErrHistory=ErrHistory SSE; if SSEE0, break, end %如果達(dá)到誤差要求,則跳出學(xué)習(xí)循環(huán)%以下6行是Bp網(wǎng)絡(luò)的核心程序%它們是權(quán)值(閾值)依

54、據(jù)能量函數(shù)負(fù)梯度下降原理所作的每一步動(dòng)態(tài)調(diào)整量Delta2=Error;Delta1=W2*Delta2.*HiddenOut.*(1-HiddenOut);dW2=Delta2*HiddenOut;dB2=Delta2*ones(SamNum,1);dW1=Delta1*SamIn;dB1=Delta1*ones(SamNum,1);%對(duì)輸出層與隱含層之間的權(quán)值和估值進(jìn)行修正W2=W2+lr*dW2;B2=B2+lr*dB2;%對(duì)輸入層與隱含層之間的權(quán)值和估值進(jìn)行修正W1=W1+lr*dW1;B1=B1+lr*dB1;endHiddenOut=logsig(W1*SamIn+repmat(B

55、1,1,TestSamNum); %隱含層輸出最終結(jié)果NetworkOut=W2*HiddenOut+repmat(B2,1,TestSamNum); %輸出層輸出最終結(jié)果a=postmnmx(NetworkOut,mint,maxt); %還原網(wǎng)絡(luò)輸出層的結(jié)果%用原始的數(shù)據(jù)仿真的結(jié)果與已知數(shù)據(jù)進(jìn)行對(duì)比測(cè)試x=1990:2009;newk=a(1,:); %網(wǎng)絡(luò)輸出客運(yùn)量newh=a(2,:); %網(wǎng)絡(luò)輸出貨運(yùn)量figure;subplot(2,1,1);plot(x,newk,r-o,x,glkyl,b-+);legend(網(wǎng)絡(luò)輸出客運(yùn)量,實(shí)際客運(yùn)量);xlabel(年份);ylabel(客

56、運(yùn)量/萬(wàn)人);title(源程序神經(jīng)網(wǎng)絡(luò)客運(yùn)量學(xué)習(xí)和測(cè)試對(duì)比圖);title(源程序神經(jīng)網(wǎng)絡(luò)客運(yùn)量學(xué)習(xí)和測(cè)試對(duì)比圖);subplot(2,1,2);plot(x,newh,r-o,x,glhyl,b-+);legend(網(wǎng)絡(luò)輸出貨運(yùn)量,實(shí)際貨運(yùn)量);xlabel(年份); ylabel(貨運(yùn)量/萬(wàn)噸);pnew=73.39 75.55 3.9635 4.0975 0.9889 1.0268; %2010年和2011 年的相關(guān)數(shù)據(jù)pnewn=tramnmx(pnew,minp,maxp); %利用原始輸入數(shù)據(jù)的歸一化參數(shù)對(duì)新數(shù)據(jù)進(jìn)行歸一化HiddenOut=logsig(W1*pnewn+rep

57、mat(B1,1,ForcastSamNum); %隱含層輸出預(yù)測(cè)結(jié)果anewn=W2*HiddenOut+repmat(B2,1,ForcastSamNum); %輸出層輸出預(yù)測(cè)結(jié)果%把網(wǎng)絡(luò)預(yù)測(cè)得到的數(shù)據(jù)還原為原始的數(shù)量級(jí)anew=postmnmx(anewn,mint,maxt);小波分析小波分析 小波分析是純數(shù)學(xué)、應(yīng)用數(shù)學(xué)和工程技術(shù)的完美結(jié)合。從數(shù)學(xué)來(lái)說是大半個(gè)世紀(jì)“調(diào)和分析”的結(jié)晶(包括傅里葉分析、函數(shù)空間等)。 小波變換是20世紀(jì)最輝煌科學(xué)成就之一。在計(jì)算機(jī)應(yīng)用、信號(hào)處理、圖象分析、非線性科學(xué)、地球科學(xué)和應(yīng)用技術(shù)等已有重大突破,預(yù)示著小波分析進(jìn)一步熱潮的到來(lái)。 “小波分析” 是分析原

58、始信號(hào)各種變化的特性,進(jìn)一步用于數(shù)據(jù)壓縮、噪聲去除、特征選擇等。例如歌唱信號(hào):是高音還是低音,發(fā)聲時(shí)間長(zhǎng)短、起伏、旋律等。從平穩(wěn)的波形發(fā)現(xiàn)突變的尖峰。小波分析是利用多種 “小波基函數(shù)” 對(duì) “原始信號(hào)” 進(jìn)行分解、再重構(gòu)。傅立葉變換缺點(diǎn)傅立葉變換缺點(diǎn)函數(shù)f(t)的連續(xù)傅立葉變換定義為函數(shù)f(t)的逆傅立葉變換定義為(1)用傅立葉變換提取信號(hào)的頻譜需要利用信號(hào)的全部時(shí)域信息。(2)傅立葉變換沒有反映出隨著時(shí)間的變化信號(hào)頻率成分的變化情況。(3)傅立葉變換的積分作用平滑了非平穩(wěn)信號(hào)的突變成分。t(t)(-tj -defFdeFf-tj)(21(t)反映傅立葉變換缺點(diǎn)的一個(gè)例子:解決傅立葉變換缺點(diǎn)的

59、方法:小波的定義小波的定義 小波(Wavelet)是由“wave”和“l(fā)et”構(gòu)成,表示的是一種長(zhǎng)度有限、平均值為0的波形。 確切定義:設(shè) 為一平方可積函數(shù),即 若其傅立葉變換 滿足條件: 則稱為一個(gè)基本小波、母小波或者容許小波。)(t)()(2RLt )(dCR2)(小波有兩個(gè)基本特點(diǎn):小波有兩個(gè)基本特點(diǎn):(1)小。在 空間內(nèi),常選取緊支集或近似緊支集(具有時(shí)域局限性)且具有正則性(具有頻域的局限性)的實(shí)數(shù)或復(fù)數(shù)作為小波母函數(shù)。這樣的小波母函數(shù)在時(shí)頻域都會(huì)有較好的局部特性,即快速收斂性。(2)正負(fù)交替的“波動(dòng)性”,也即直流分量為零,即震蕩性。)(2RL母小波伸縮平移母小波伸縮平移將母小波函數(shù)

60、 進(jìn)行伸縮和平移,就可以得到子函數(shù)其中 稱為依賴于參數(shù)a,b 的小波家族子函數(shù)。a 為伸縮因子,用來(lái)控制家族子小波 的體形(“肥胖”和“高矮”);b 為平移因子,用來(lái)控制小波子函數(shù)的中心位置。 稱為連續(xù)小波函數(shù)基兩點(diǎn)說明:(1)相互正交;(2)具有相等的能量。)(t)(,tba0,),(1)(,aRbaabtatba)(,tba)(,tbaHaar小波基母函數(shù)小波基母函數(shù)(a)Haar “近似”基函數(shù) (b)Haar “細(xì)節(jié)”基函數(shù) 低頻濾波系數(shù) 高頻濾波系數(shù) H0= 1 1 q H1= 1 -1 q = q q = q -q 其中:7071.02 qRbafdtabttfattfbaWT)(

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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)論