神经网络控制与matlab仿真,神经网络matlab代码程序
用神經網絡預測睡眠分期的matlab程序
由于睡眠的周期相對來說是沒有規律可循的,所以用神經網絡對一個晚上的睡眠分期進行訓練,然后預測另一個晚上的睡眠分期。你可以考慮用anfis自適應神經網絡來預測。
現舉例說明,如何使用anfis自適應神經網絡來預測。
x=(0:0.1:10)';????y=sin(2*x)./exp(x/5);????epoch_n=20;????in_fis?=genfis1([xy],5,'gbellmf');????out_fis=anfis([xy],in_fis,epoch_n);????plot(x,y,x,evalfis(x,out_fis));??????legend('TrainingData','ANFISOutput');??????xlabel('x'),ylabel('y');。
谷歌人工智能寫作項目:神經網絡偽原創
GA-BP神經網絡模型預測的MATLAB程序問題
Matlab神經網絡工具箱提供了一系列用于建立和訓練bp神經網絡模型的函數命令,很難一時講全寫作貓。下面僅以一個例子列舉部分函數的部分用法。
更多的函數和用法請仔細查閱NeuralNetworkToolbox的幫助文檔。例子:利用bp神經網絡模型建立z=sin(x+y)的模型并檢驗效果%第1步。
隨機生成200個采樣點用于訓練x=unifrnd(-5,5,1,200);y=unifrnd(-5,5,1,200);z=sin(x+y);%第2步。建立神經網絡模型。
其中參數一是輸入數據的范圍,參數二是各層神經元數量,參數三是各層傳遞函數類型。
N=newff([-55;-55],[5,5,1],{'tansig','tansig','purelin'});%第3步。訓練。這里用批訓練函數train。
也可用adapt函數進行增長訓練。N=train(N,[x;y],z);%第4步。檢驗訓練成果。
[X,Y]=meshgrid(linspace(-5,5));Z=sim(N,[X(:),Y(:)]');figuremesh(X,Y,reshape(Z,100,100));holdon;plot3(x,y,z,'.')。
如何利用matlab進行神經網絡預測
matlab帶有神經網絡工具箱,可直接調用,建議找本書看看,或者MATLAB論壇找例子。
核心調用語句如下:%數據輸入%選連樣本輸入輸出數據歸一化[inputn,inputps]=mapminmax(input_train);[outputn,outputps]=mapminmax(output_train);%%BP網絡訓練%%初始化網絡結構net=newff(inputn,outputn,[88]);net.trainParam.epochs=100;=0.01;=0.01;%網絡訓練net=train(net,inputn,outputn);%%BP網絡預測%預測數據歸一化inputn_test=mapminmax('apply',input_test,inputps);%網絡預測輸出an=sim(net,inputn_test);%網絡輸出反歸一化BPoutput=mapminmax('reverse',an,outputps);%%結果分析。
bp神經網絡人口預測程序(matlab實現)
。
x=[54167???55196???56300???57482???58796???60266???61465???62828???64653???65994???67207???66207???65859???67295???69172???70499???72538???74542???76368???78534???80671???82992???85229???87177???89211????90859????92420????93717????94974????96259????97542????98705???100072???101654???103008???104357???105851???107507???109300???111026???112704???114333???115823???117171???118517???119850???121121???122389???123626???124761???125786???126743???127627???128453???129227???129988???130756???131448???132129???132802???134480???135030???135770???136460???137510]';%該腳本用來做NAR神經網絡預測%作者:Macer程lag=3;???%自回歸階數iinput=x;%x為原始序列(行向量)n=length(iinput);%準備輸入和輸出數據inputs=zeros(lag,n-lag);fori=1:n-lag???inputs(:,i)=iinput(i:i+lag-1)';endtargets=x(lag+1:end);%創建網絡hiddenLayerSize=10;%隱藏層神經元個數net=fitnet(hiddenLayerSize);%避免過擬合,劃分訓練,測試和驗證數據的比例net.divideParam.trainRatio=70/100;net.divideParam.valRatio=15/100;net.divideParam.testRatio=15/100;%訓練網絡[net,tr]=train(net,inputs,targets);%%根據圖表判斷擬合好壞yn=net(inputs);errors=targets-yn;figure,ploterrcorr(errors)?????????????????????%繪制誤差的自相關情況(20lags)figure,parcorr(errors)?????????????????????????%繪制偏相關情況%[h,pValue,stat,cValue]=lbqtest(errors)????????%Ljung-BoxQ檢驗(20lags)figure,plotresponse(con2seq(targets),con2seq(yn))%看預測的趨勢與原趨勢%figure,ploterrhist(errors)?????????????????????%誤差直方圖%figure,plotperform(tr)?????????????????????????%誤差下降線%%下面預測往后預測幾個時間段fn=7;?%預測步數為fn。
f_in=iinput(n-lag+1:end)';f_out=zeros(1,fn);?%預測輸出%多步預測時,用下面的循環將網絡輸出重新輸入fori=1:fn???f_out(i)=net(f_in);???f_in=[f_in(2:end);f_out(i)];end%畫出預測圖figure,plot(1949:2013,iinput,'b',2013:2020,[iinput(end),f_out],'r')圖1自相關圖2誤差圖3預測上面的程序是可以通用的,只要你根據自己需要是可以修改用在其他地方的,基本思想就是用前lag年的人口數來預測下一年的人口,至于lag等于幾你是可以自己改的。
還有在對結果好壞的判斷中,僅僅看誤差圖是不夠的,如果是一個好的預測,那么自相關性圖中除了0階自相關外,其他的自相關系數系數都不應該超過上下置信區間。
還有其他的統計量和圖表都都寫在”%“后面了,如果需要,去掉就可用。
最后的預測值為f_out,我的預測值為138701.065269972???139467.632609654???140207.209707364???141210.109373609???141981.285378849???142461.332139592???143056.073139776。
求預測一組數據的bp神經網絡模型的matlab代碼
。
用matlab求預測一組數據的bp神經網絡模型,可以分1、給定已經數據,作為一個原始序列;2、設定自回歸階數,一般2~3,太高不一定好;3、設定預測某一時間段4、設定預測步數5、用BP自定義函數進行預測6、根據預測值,用plot函數繪制預測數據走勢圖其主要實現代碼如下:clc%x為原始序列(行向量)x=[208.72205.69231.5242.78235.64218.41];%x=[101.4101.4101.9102.4101.9102.9];%x=[140137112125213437.43];t=1:length(x);%自回歸階數lag=3;%預測某一時間段t1=t(end)+1:t(end)+5;%預測步數為fnfn=length(t1);[f_out,iinput]=BP(x,lag,fn);P=vpa(f_out,5);A=[t1'P'];disp('預測值')disp(A)%畫出預測圖figure(1),plot(t,iinput,'bo-'),holdonplot(t(end):t1(end),[iinput(end),f_out],'rp-'),gridontitle('BP神經網絡預測某地鐵線路客流量')xlabel('月號'),ylabel('客流量(百萬)');運行結果:
matlab中用RBF神經網絡做預測的代碼怎么寫
。
clc;clearall;closeall;%%----BuildatrainingsetofasimilarversionofXORc_1=[00];c_2=[11];c_3=[01];c_4=[10];n_L1=20;%numberoflabel1n_L2=20;%numberoflabel2A=zeros(n_L1*2,3);A(:,3)=1;B=zeros(n_L2*2,3);B(:,3)=0;%createrandompointsfori=1:n_L1A(i,1:2)=c_1+rand(1,2)/2;A(i+n_L1,1:2)=c_2+rand(1,2)/2;endfori=1:n_L2B(i,1:2)=c_3+rand(1,2)/2;B(i+n_L2,1:2)=c_4+rand(1,2)/2;end%showpointsscatter(A(:,1),A(:,2),[],'r');holdonscatter(B(:,1),B(:,2),[],'g');X=[A;B];data=X(:,1:2);label=X(:,3);%%Usingkmeanstofindcintervectorn_center_vec=10;rng(1);[idx,C]=kmeans(data,n_center_vec);holdonscatter(C(:,1),C(:,2),'b','LineWidth',2);%%Calulatesigman_data=size(X,1);%calculateKK=zeros(n_center_vec,1);fori=1:n_center_vecK(i)=numel(find(idx==i));end%UsingknnsearchtofindKnearestneighborpointsforeachcentervector%thencalucatesigmasigma=zeros(n_center_vec,1);fori=1:n_center_vec[n,d]=knnsearch(data,C(i,:),'k',K(i));L2=(bsxfun(@minus,data(n,:),C(i,:)).^2);L2=sum(L2(:));sigma(i)=sqrt(1/K(i)*L2);end%%Calutateweights%kernelmatrixk_mat=zeros(n_data,n_center_vec);fori=1:n_center_vecr=bsxfun(@minus,data,C(i,:)).^2;r=sum(r,2);k_mat(:,i)=exp((-r.^2)/(2*sigma(i)^2));endW=pinv(k_mat'*k_mat)*k_mat'*label;y=k_mat*W;%y(y>=0.5)=1;%y(y。
求MATLAB的BP神經網絡預測程序
%由于數據比較大,我又懶得用歸一化,所以直接把數據降了3個數量級,%不過我覺得應該沒問題,但用歸一化結果應該更準確些。。%由于初始權值和閥值均是隨機給的,所以每次仿真都有點點不同,這是正常的。
p=[118313031278;130312781284;127812841187;...128411871154;118711541267;115412671241;...126712411302;124113021195;130211951256]'*0.001;t=[128411871154126712411302119512561348]*0.001;net=newff(minmax(p),[3,1],{'tansig','purelin'},'traingda');=0.001;=20;net.trainParam.epochs=1000;net.trainParam.min_grad=1e-10;=0.95;[net,tr]=train(net,p,t);t1=sim(net,[130211951256]'*0.001);t2013=t1*1000%2013的預測數據運行結果:t2013=1301.9。
求一個bp神經網絡預測模型的MATLAB程序
BP神經網絡預測的步驟:1、輸入和輸出數據。2、創建網絡。fitnet()3、劃分訓練,測試和驗證數據的比例。
net.divideParam.trainRatio;?net.divideParam.valRatio;net.divideParam.testRatio4、訓練網絡。
train()5、根據圖表判斷擬合好壞。ploterrcorr();parcorr();plotresponse()6、預測往后數據。net()7、畫出預測圖。
plot()執行下列命令BP_prediction得到結果:[2016,14749.呵呵6798210144042969][2017,15092.847215188667178153991699219][2018,15382.150005970150232315063476562][2019,?15398.85769711434841156005859375][2020,15491.935150090605020523071289062]。
?
總結
以上是生活随笔為你收集整理的神经网络控制与matlab仿真,神经网络matlab代码程序的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Android图片轮播效果
- 下一篇: C#莱姆达表达式的使用