📄 mulms.m
字号:
% ==========================================================
%
% 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 + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -