LMS中的权重是一个很重要的参数。如果权重过大则算法无法收敛,权重过小则运算速度缓慢。尤其要注意权重过大的问题,什么叫过大?我随便试了一个例子,权重必须要小于0.00001才能收敛,所以如果碰到无论如何都得不到结果的情况(MATLAB中表现为数值的结果是NaN)就说明权重过大了。
以下是我随便试的一个例子:
count=0;
while (count<100000)
error0=0;
error1=0;
for i = 1:291
error0 = error0+0.0001*(price(i) - x0 - x1*area(i));
error1 = error1+0.0001*(price(i) - x0 - x1*area(i))*area(i);
end
x0 = x0 + error0;
x1 = x1 + error1;
count = count+1;
end