Advertisement
Guest User

Untitled

a guest
Nov 28th, 2014
164
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.82 KB | None | 0 0
  1. clc
  2. clear all
  3. close all
  4. I=1000;
  5. n=2;
  6. eta=0.5;
  7. A=ones(I,1);
  8. B=rand(I,1);
  9. C1=0.4*rand(I/2,1);
  10. C2=0.6+(0.4*rand(I/2,1));
  11. D1=ones(I/2,1);
  12. D2=-1*ones(I/2,1);
  13. C=[C1;C2];
  14. D=[D1;D2];
  15. M=[A B C D];
  16. scatter(M(1:I/2,2), M(1:I/2,3), '+');
  17. hold on
  18. scatter(M(I/2+1:end,2),M(I/2+1:end,3),'*r');
  19.  
  20. W=zeros(1,n+1);
  21. k=0;
  22. while(1)
  23. A=[];
  24. for i=1:I
  25. x=M(i,1:n+1);
  26. S=W*x';
  27. f=-1;
  28. if S>0
  29. f=1;
  30. end
  31. if ~(f==M(i,n+2))
  32. A=[A,M(i,:)];
  33. end
  34. end
  35. [row,cols]=size(A);
  36. if row ==0
  37. break;
  38. end
  39. index=1+floor(rand()*row)
  40. x=A(index,1:n+1);
  41. y=A(index,n+2);
  42. W=W+eta*y*x;
  43. k=k+1;
  44.  
  45. end
  46. W
  47. k
  48. x1=[0:0.05:1];
  49. x2=(-W(1)-W(2)*x1)/W(3);
  50. plot(x1,x2,'r');
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement