%Samples per Cluster N=25 %Max iterations K=200 %Lernrate c = 0.5; %Cluster 1 (Normalverteilte 2-Vektoren) c1 = randn(2,N)-1.5 plot(c1(1,:), c1(2,:), '.'); %Zeichnen in ein Koordinatensystem + Schönheitskorrektur hold on; axis equal; AXIS([-5 5 -5 5]); %Cluster 2 (Normalverteilte 2-Vektoren) c2 = randn(2,N)+1.5 plot(c2(1,:), c2(2,:), 'x'); %Matrix X erstellen c1e = [c1 ; ones(1,N)]; c2e = [c2 ; ones(1,N)]; X = [c1e -c2e] %Perzeptron Algorithmus % w initialisieren (Gleichverteilte Zufallszahlen zwischen -1 und 1) w=2*rand(1,3)-1 for k = 1:K brk = true; for i = 1:2*N if w*X(:,i) <= 0 %wenn falsch klassifiziert brk = false; w = w + (c * X(:,i)'); end end if brk == true break; end end %Ausgabe der Anzahl von Iterationen k %Plotten der Trenngerade (für nicht senkrechte Trenngeraden) fplot(@(x)[(w(1)*x + w(3))/-w(2)],[-5 5]) %aufräumen clear all hold off