mulms.m

来自「內涵模糊理論與類神經網路的程式碼...提供初學者做研究參考」· M 代码 · 共 68 行

M
68
字号
% ==========================================================
% 
%           Neural Networks A Classroom Approach
%                     Satish Kumar
%             Copyright Tata McGraw Hill, 2004
%
%        MATLAB code that implements mu-LMS algorithm
%                  Reference: Page 151
%
% ==========================================================

load data.txt
x=data(:,1)';
d=data(:,2)';
max_points = size(x,2);

R=[1 0.0002;0.0002 1];
P =[ 0.3386;-1.8818];
D =859.5943;

eta = .01;
X = [ones(1,max_points); x];
errormin = D - P'*inv(R)*P;
weiner = inv(R)*P;

shift1 = linspace(-12, 12, 21);
shift2 = linspace(-9, 9, 21);

for i = 1:21
  shiftwts(1,i) =  weiner(1)+shift1(i);
  shiftwts(2,i) = weiner(2)+shift2(i);
end

for i=1:21
  for j = 1:21
      error(i,j) = sum((d - (shiftwts(1,i) + x.*shiftwts(2,j))).^2);
  end
end

error = error/max_points;

figure
plot(weiner(1),weiner(2),'*k')
hold on
[lab,lab1]=contour(shiftwts(1,:), shiftwts(2,:),error,10);
clabel(lab,lab1);
grid on
hold on

w=[-14.096 13.611]';
w0=w;
eps = .5;

for loop = 1:200
  x = (2*rand-1)*2;
  X = [1;x];
  y = 3.*x.^5 - 1.2.*x.^4 - 12.27.*x.^3 + 3.288.*x.^2 + 7.182.*x;
  scatter = (2*rand-1)*eps;
  di = y + scatter;
  w = w + 2*eta*(di -X'*w)*X;
  wts1(loop)=w(1);
  wts2(loop)=w(2);
end
wts1=[w0(1) wts1];
wts2=[w0(2) wts2];

plot(wts1,wts2,'g',wts1(loop),wts2(loop),'ob')   
axis([-12 12 -10 7]);

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?