人工智能matlab仿真_第1頁
人工智能matlab仿真_第2頁
人工智能matlab仿真_第3頁
人工智能matlab仿真_第4頁
人工智能matlab仿真_第5頁
已閱讀5頁,還剩20頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、1. 函數(shù)優(yōu)化fx2 4 1 6 2 4 4x1 2.1x1 3x1 x1x2 4x2 4x2該二元 6次函數(shù)式一個多峰函數(shù), 共有 6個極值,其中有兩個極值點對應的 函數(shù)取值為最小值。試求解函數(shù)的極值點。(1)設計思路本題采用遺傳算法, 遺傳算法搜索最優(yōu)解的方法是模仿生物的進化過程, 遺 傳算法主要使用選擇算子、 交叉算子與變異算子來模擬生物進化,從而產(chǎn)生一 代又一代的種群。遺傳算法具有通用、并行、穩(wěn)健、簡單與全局優(yōu)化能力強等突 出優(yōu)點,適用于解決復雜、困難的全局優(yōu)化問題2)程序流程圖3)實驗程序function objV=objectFunction(pop) m=size(pop,1);

2、for i=1:m objV(i,1)=4*pop(i,1)2-2.1*pop(i,1)4+(1/3)*pop(i,1)6+pop(i,1)*pop(i,2)-4*po p(i,2)2+4*pop(i,2)4;end %初始化clc;clear;pc=0.7;pm=0.05;NIND=20;MAXGEN=1000;NVAR=2;PRECI=40;GGAP=0.9;%交叉率%變異率%個體數(shù)目%最大遺傳代數(shù)%變量維數(shù)%變量二進制數(shù)%代溝%每代極小值%每代極大值Chrom=crtbp(NIND,NVAR*PRECI);%計 算第 0 代函數(shù)適應度,尋找最優(yōu)個體 gen=0;pop=bs2rv(Chr

3、om,FieldD);objV=objectFunction(pop);minY=min(objV);maxY=max(objV);POP(:,:,gen+1)=pop(1:end,1:end);%進 化過程while gen<MAXGENFitnV=ranking(-objV);SelCh=select('sus',Chrom,FitnV,GGAP); SelCh=recombin('xovsp',SelCh,pc); SelCh=mut(SelCh,pm);popnew=bs2rv(SelCh,FieldD);%創(chuàng)建初始種群%將二進制初始種群轉(zhuǎn)化為十進

4、制%計算函數(shù)適應度%函數(shù)適應度最小值即函數(shù)最小值%選擇%重組 %變異 %新一代種群trace_min=zeros(MAXGEN,1);trace_max=zeros(MAXGEN,1);%種 群初始化FieldD=rep(PRECI,1,NVAR);-1,-1;1,1;rep(1;0;1;1,1,NVAR);%區(qū)域掃描objVSel=objectFunction(popnew); % 計算子代目標函數(shù)值Chrom,objV=reins(Chrom,SelCh,1,1,objV,objVSel);%尋找當前極小值gen=gen+1;if minY>min(objV)minY=min(obj

5、V);y,i=min(objV);x=bs2rv(Chrom,FieldD);xmin(1,:)=x(i,:);%輸出最優(yōu)個體%輸出最優(yōu)個體%尋找當前極大值disp(' 對應最小自變量取值: ',num2str(x(i,:)disp(' 對應最小值: ',num2str(y) endif maxY<max(objV)maxY=max(objV);Y,I=max(objV);X=bs2rv(Chrom,FieldD);xmax(1,:)=X(I,:);disp(' 對應最大自變量取值: ',num2str(X(I,:)disp(' 對

6、應最大值: ',num2str(Y) end%輸出最優(yōu)個體%輸出最優(yōu)個體trace_min(gen,1)=minY;trace_max(gen,1)=maxY;end%畫 圖%保存當前極小值%保存當前極大值figure(1) plot(1:gen,trace_min(:,1); hold on%畫進化過程圖plot(1:gen,-1.031570364,'r-');figure(2)plot(1:gen,trace_max(:,1);hold on%目標函數(shù)在區(qū)間最小值plot(1:gen,3.2333,'r-');%目標函數(shù)在區(qū)間最大值4)運行結(jié)果優(yōu)化

7、函數(shù)如圖所示:由優(yōu)化函數(shù)圖可知,此函數(shù)存在 2 個極小值點, 4 個極大值點4 個最大值為:對應 x1,x2 最大自變量取值:-0.99543-0.91298 對應函數(shù)最大值:2.5798對應 x1,x2 最大自變量取值:-0.92829-0.99328 對應函數(shù)最大值:2.97對應 x1,x2 最大自變量取值:-0.989-0.99817 對應函數(shù)最大值:3.1879對應 x1,x2 最大自變量取值:-0.99168-0.99925 對應函數(shù)最大值:3.20472 個最小值為:對應 x1,x2 最小自變量取值:-0.0447820.76447 對應函數(shù)最小值: -0.99772對應 x1,x

8、2 最小自變量取值:0.11984-0.66623 對應函數(shù)最小值:-1.01022. 體重約 70kg 的某人在短時間喝下 2 瓶啤酒后,隔一段時間測量他的血液中酒精含量( mg/100mL ),得到以下數(shù)據(jù):時間 /(h)0.250.50.7511.522.533.544.5567酒精含量 /3068758282776868585150413835時間 /(h)8910111213141516酒精含量282518151210774根據(jù)酒精在人體血液分解的動力學規(guī)律可知, 血液中酒精濃度與時間的關系可表示為:c t k e qt e rt試根據(jù)表中數(shù)據(jù)求出參數(shù) k、q、r 。(1)設計思路本

9、題采用遺傳算法, 遺傳算法搜索最優(yōu)解的方法是模仿生物的進化過程, 遺 傳算法主要使用選擇算子、 交叉算子與變異算子來模擬生物進化,從而產(chǎn)生一 代又一代的種群。遺傳算法具有通用、并行、穩(wěn)健、簡單與全局優(yōu)化能力強等突 出優(yōu)點,適用于解決復雜、困難的全局優(yōu)化問題。2)程序流程圖3) 實驗程序:%求 函數(shù)適應度子程序function objV=objectFunction(pop,Data)m=size(pop,1);n=size(Data,1);for i=1:mfor j=1:nC(j,1)=abs(pop(i,1)*(exp(pop(i,2)*(-1)*Data(j,1)-exp(pop(i,3

10、)*(-1)*Data(j,1)-Data(j,2); endobjV(i,1)=mean(C);end%求 方差子程序function RESM=variance(a,a_1)M=size(a,1);y=0;y_1=0;for i=1:My_1=y_1+(a(i,1)-a_1(i,1)2;endRESM=sqrt(y_1/M);%主 程序load Data%初 始化%交叉率 %變異率 %個體數(shù)目pc=0.7;pm=0.05;NIND=500;MAXGEN=2000;%最大遺傳代數(shù)NVAR=3;%變量維數(shù)PRECI=20;%變量二進制數(shù)GGAP=0.9;%代購%每代最優(yōu)值%區(qū)域掃描%創(chuàng)建初始種

11、群%計 算第 0 代函數(shù)適應度,尋找最優(yōu)個體 gen=0;pop=bs2rv(Chrom,FieldD); objV=objectFunction(pop,Data); minY=min(objV);%進 化過程while gen<MAXGENFitnV=ranking(-objV);SelCh=select('sus',Chrom,FitnV,GGAP); SelCh=recombin('xovsp',SelCh,pc);SelCh=mut(SelCh,pm);popnew=bs2rv(SelCh,FieldD); objVSel=objectFunct

12、ion(popnew,Data); %將二進制初始種群轉(zhuǎn)化為十進制%計算函數(shù)適應度%函數(shù)適應度最小值即最優(yōu)值%選擇%重組%變異%新一代種群 計算子代目標函數(shù)值Chrom,objV=reins(Chrom,SelCh,1,1,objV,objVSel);gen=gen+1;if minY>min(objV)%尋找當前最優(yōu)個體endminY=min(objV);trace(gen,1)=minY;end%結(jié) 果輸出%保存當前最優(yōu)個體Y,I=min(objV);X=bs2rv(Chrom,FieldD);Xmin(1,:)=X(I,:);disp(' 對應自變量取值: ',nu

13、m2str(X(I,:)%輸出最優(yōu)個體m=size(Data,1);for i=1:m%輸出最優(yōu)個體的函數(shù)擬合值Y(i,1)=Xmin(1,1)*(exp(-1)*Xmin(1,2)*(Data(i,1)-exp(-1)*Xmin(1,3)*(Data(i,1);ARE(i,1)=Data(i,2)-Y(i,1); endRESM=variance(Data(:,2),Y); disp(' 方差: ',num2str(RESM) %畫 圖figure(1) plot(1:gen,trace(:,1);figure(2);%計算方差%畫進化過程圖%畫出期望值與擬合值曲線trace

14、=zeros(MAXGEN,1); %種 群初始化 FieldD=rep(PRECI,1,NVAR);100,0,0;150,1,3;rep(1;0;1;1,1,NVAR); Chrom=crtbp(NIND,NVAR*PRECI);plot(Data(:,1),Data(:,2),'rd-'); hold on plot(Data(:,1),Y,'b*-') xlabel('時間 '); ylabel(' 酒精含量 '); legend(' 期望值 ','擬合值 '); figure(3) plo

15、t(Data(:,1),ARE,'rd-') xlabel('時間 '); ylabel(' 誤差');4) 運行結(jié)果進行 20 次的多項式擬合后圖如下:所以,對應自變量取值: k=113.3353 q=0.1841013 r=2.206932方差: 3.37483. 設計一個神經(jīng)網(wǎng)絡,并對輸入信號進行預測。輸入為一線性調(diào)頻信號,信號采樣時間為 2s,采樣頻率為 1000Hz,起始到信號的瞬時為 0Hz,1s 時的瞬時頻率為 150Hz。(1)本題采用三層 BP 神經(jīng)網(wǎng)絡。第一步,網(wǎng)絡初始化。 給各連接權值分別賦一個區(qū)間的隨機數(shù), 設定誤差函 數(shù)

16、 e,給定計算精度值和最大學習次數(shù) M 。第二步,隨機選取第 2000 個輸入樣本,前 1900 作為訓練樣本最后 100做測 試。第三步,計算隱含層各神經(jīng)元的輸入和輸出。 第四步,利用網(wǎng)絡期望輸出和實際輸出, 計算誤差函數(shù)對輸出層的各神經(jīng)元 的偏導數(shù) a。第五步利用隱含層到輸出層的連接權值、 輸出層和隱含層 a 的輸出計算誤差 函數(shù)對隱含層各神經(jīng)元的偏導數(shù) b。第六步,利用輸出層各神經(jīng)元的 a 和隱含層各神經(jīng)元的輸出來修正連接權值 w。 第七步:利用隱含層各神經(jīng)元的 a 和輸入層各神經(jīng)元的輸入修正連接權。 (2)神經(jīng)網(wǎng)絡算法流程圖:初始化加輸入和期望輸出計算隱層和輸出層的輸出調(diào)節(jié)輸出層和隱層

17、的鏈接權值改變訓練樣板迭代次數(shù)加 13)實驗程序%設 計一個神經(jīng)網(wǎng)絡,并對輸入信號進行預測%信 號采樣時間為 2s,采樣頻率為 1000Hz ,起始到信號的瞬時為 0Hz,1s 時的瞬時 頻率為 150Hzclc;clear;time=0:0.001:2;y=chirp(time,0,1,150,'linear');y=y'time=time'm=size(y,1);%網(wǎng) 絡訓練數(shù)據(jù) 以前四個時刻預測第五個時刻for i=1:1896 X(i,1)=y(i,1); X(i,2)=y(i+1,1); X(i,3)=y(i+2,1); X(i,4)=y(i+3,1)

18、; Y(i,1)=y(i+4,1);end%網(wǎng) 絡訓練s=size(Y,2);p=X't=Y'%數(shù)據(jù)歸一化pn,minX,maxX=premnmx(p);%將數(shù)據(jù)歸一化tn,minY,maxY=premnmx(t);%將數(shù)據(jù)歸一化%訓練網(wǎng)絡 net=newff(minmax(pn),8,s,'tansig','purelin','trainlm');net.trainParam.goal=0.001;net.trainParam.epochs=800;net=train(net,pn,tn);yn =sim(net,pn);Yn

19、= postmnmx(yn,minY,maxY);y_train=Yn'%訓 練誤差 train_number=size(X,1);for i=1:train_numberARE(i,1)=Y(i,1)-y_train(i,1);end%網(wǎng) 絡測試數(shù)據(jù)for i=1:97X_test(i,1)=y(i+1900,1);X_test(i,2)=y(i+1901,1);X_test(i,3)=y(i+1902,1);X_test(i,4)=y(i+1903,1);Y_test(i,1)=y(i+1904,1);end%網(wǎng) 絡測試q=X_test'u=Y_test'qn=tr

20、amnmx(q,minX,maxX);y_tr=sim(net,qn);y_trr=postmnmx(y_tr,minY,maxY);y_test=y_trr'train_number=size(X,1);test_number=size(X_test,1);test_number=size(X_test,1);%測 試誤差for i=1:test_numberARE_1(i,1)=Y_test(i,1)-y_test(i,1);end%畫 圖figure(1);plot(Y,'rd-');hold onplot(y_train,'b*-')legend

21、(' 訓練樣本輸出期望值 ',' 訓練樣本輸出預測值 '); axis(0 500 -1.5 1.5)figure(2);plot(Y,'rd-');hold onplot(y_train,'b*-')legend(' 訓練樣本輸出期望值 ',' 訓練樣本輸出預測值 '); axis(501 1000 -1.5 1.5)figure(3);plot(Y,'rd-');hold onplot(y_train,'b*-')legend(' 訓練樣本輸出期望值 &#

22、39;,' 訓練樣本輸出預測值 ');axis(1001 1500 -1.5 1.5)figure(4);plot(Y,'rd-');hold onplot(y_train,'b*-')legend(' 訓練樣本輸出期望值 ',' 訓練樣本輸出預測值 ');axis(1501 1900 -1.5 1.5)figure(5);plot(ARE,'b*-');axis(0 500 -0.2 0.2)figure(6);plot(ARE,'b*-');axis(501 1000 -0.2 0.2)figure(7);plot(ARE,'b*-');axi

溫馨提示

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

評論

0/150

提交評論