matlab神经模糊推理系统

该博客介绍了如何运用T_S模糊模型和anfis函数进行数据建模。首先,通过genfis1函数从训练数据生成模糊推理系统,然后利用anfis进行神经模糊建模,经过40次训练迭代优化模型。博客展示了训练和测试数据的分布、隶属度函数变化、训练误差及最终模型输出,并讨论了模型的预测能力。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

%数据点个数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');

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值