用matlab写模糊逼近程序
下面是一个使用模糊逼近的matlab程序示例:
% 定义输入和输出变量 x = -5:0.1:5; y = sin(x); y_noisy = y + 0.1*randn(size(x)); figure; subplot(2,1,1); plot(x,y); title('原始sin函数');
subplot(2,1,2); plot(x,y_noisy); title('添加噪声后的sin函数');
% 使用模糊逼近拟合曲线 mf = @(x) [ones(size(x)); x; x.^2; x.^3]; fis = genfis1(x,y_noisy,mf); y_fuzzy = evalfis(x,fis); figure; plot(x,y,'b-',x,y_noisy,'g--',x,y_fuzzy,'r-.'); legend('原始sin函数','添加噪声后的sin函数','模糊逼近拟合的sin函数');
% 显示模糊系统 figure; subplot(2,1,1); plotmf(fis,'input',1); title('第1个输入变量');
subplot(2,1,2); plotmf(fis,'input',2); title('第2个输入变量');
% 输出模糊规则 ruleview(fis);
在这个程序中,我们首先定义了输入变量x和输出变量y,然后向y中添加了一些噪声。接下来,我们使用matlab的genfis1函数来生成一个模糊系统。这个函数需要三个参数:输入变量、输出变量和一个模糊化函数。在这个例子中,我们使用一个包含1、x、x^2和x^3四个项的多项式函数来模糊化输入变量。然后,我们使用evalfis函数来评估模糊系统,并使用plot函数将原始sin函数、添加噪声后的sin函数和模糊逼近拟合的sin函数绘制在同一张图上。最后,我们使用plotmf和ruleview函数来显示模糊系统的输入和输出变量以及模糊规则
原文地址: https://www.cveoy.top/t/topic/fa2B 著作权归作者所有。请勿转载和采集!