matlab神经模糊推理系统
生活随笔
收集整理的這篇文章主要介紹了
matlab神经模糊推理系统
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
%數據點個數51
numpts=51;
x1=linspace(0,1,numpts);
y=.6*sin(pi*x1)+.3*sin(3*pi*x1)+.1*sin(5*pi*x1);
data=[x1' y']; %整個數據集
trndata=data(1:2:numpts,:); %訓練數據集
chkdata=data(2:2:numpts,:); %測試數據集
%訓練數據和檢驗數據的分布曲線
plot(trndata(:,1),trndata(:,2),'o',chkdata(:,1),chkdata(:,2),'x') %建立T_S模糊模型
%采用genfis1()函數直接由訓練數據生成模糊推理系統
nummfs=5; %隸屬度函數個數
mftype='gbellmf'; %隸屬度函數類型
fismat=genfis1(trndata,nummfs,mftype); %繪制模糊推理系統的初始隸屬度函數
[x,mf]=plotmf(fismat,'input',1);
figure
plot(x,mf);
title('initial menbership functions') %使用函數anfis()進行神經模糊建摸
numepochs=40; %訓練次數40
[fismat1,truerr,ss,fismat2,chkerr]=anfis(trndata,fismat,numepochs,nan,chkdata);
%計算訓練后神經模糊系統的輸出與訓練數據的均方根誤差
trnout=evalfis(trndata(:,1),fismat1);
trnrmse=norm(trnout-trndata(:,2))/sqrt(length(trnout)); %繪制訓練過程中均方根誤差的變化情況
epoch=1:numepochs;
figure
plot(epoch,truerr,'o',epoch,chkerr,'x')
hold on
plot(epoch,[truerr,chkerr]);
hold off %繪制訓練過程中的步長的變化的情況
figure
plot(epoch,ss,'-',epoch,ss,'x'); %繪制訓練后模糊推理系統的隸書度函數曲線
[x,mf]=plotmf(fismat1,'input',1);
figure
plot(x,mf)
title('fiual membership function'); %繪制神經模糊推理系統的輸出曲線
anfis_y=evalfis(x1,fismat1);
figure
plot(x1,y,'-',x1,anfis_y,'x');
?
總結
以上是生活随笔為你收集整理的matlab神经模糊推理系统的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 基于matlab/simulink的双闭
- 下一篇: Matlab绘制包含双Y轴的图