資源簡介
MATLAB優化算法案例分析與應用-配書代碼,只有代碼。
代碼片段和文件信息
%模糊逼近
clc?%?清屏
clear?all;?%?刪除workplace變量
close?all;?%?關掉顯示圖形窗口
L1=-3;L2=3;?%?U范圍
L=L2-L1;?%?模糊集變化范圍長度
h=0.2;??%?逼近精度
N=L/h+1;?%模糊集的個數
T=0.01;?%步長
x=L1:T:L2;?%?模糊集變化范圍
for?i=1:N
????e(i)=L1+L/(N-1)*(i-1);?%?模糊集的邊界值
end
c=0;d=0;?%初始值
for?j=1:N
???%?隸屬度函數
???if?j==1
u=trimf(x[e(1)e(1)e(2)]);????%The?first?MF
???elseif?j==N
u=trimf(x[e(N-1)e(N)e(N)]);??%The?last?MF
???else
????u=trimf(x[e(j-1)e(j)e(j+1)]);?
???end
???hold?on;
???plot(xu‘r‘‘LineWidth‘2);
???c=c+sin(e(j))*u;??%?分子
???d=d+u;???%?分母
end
xlabel(‘x‘);ylabel(‘隸屬函數模糊集‘);
for?k=1:L/T+1
????f(k)=c(k)/d(k);?%?模糊系統
end
????
y=sin(x);
figure(2);
plot(xf‘r‘xy‘k‘);
xlabel(‘x‘);ylabel(‘模糊逼近‘);
grid?on%網格化
title(‘模糊逼近‘)
figure(3);
plot(xf-y‘k‘‘LineWidth‘2);?
grid?on%網格化
xlabel(‘x‘);ylabel(‘模糊逼近誤差‘);
title(‘模糊逼近誤差‘)
評論
共有 條評論