clear all;close all;clc;step=0.1; %迭代步长num=15; %数据个数k=100; %迭代次数set=[ 0.4 0.05 1; - 0.2 0.75 1; 0.5 0.1 1; - 0.1 0.7 1; 0.3 0.2 1; - 0.15 0.9 1; 0 0.8 1; 0.4 0.3 1; -0.2 0.87 1; 0.4 0.1 1; -0.2 0.9 1; -0.2 0.4 1; -0.1 0.4 1; 0.3 0.9 1; -0.5 0 1];for i=1:num plot(set(i,1),set(i,2),'ro'); hold on;endaxis([-0.5 0.5 0 1]);%axis([-0.5 1.5 -0.5 1.5]);w(1,:)=[-3 0 1]; %初始权值x=-0.5:0.1:0.5;%x=-0.5:0.1:1.5;flag=0;for i=2:k tmp=[0 0 0]; for j=1:num flag=w(i-1,:)*set(j,:)'; tmp=tmp+flag*set(j,:); end w(i,:)=w(i-1,:)-step*tmp;endfor i=1:k y=(-w(i,3)-w(i,1)*x)/w(i,2); plot(x,y); hold on;end y=(-w(k,3)-w(k,1)*x)/w(k,2); plot(x,y,'r')
参考:
1.
2.