Neural network -matlab implement

function sigmoid = sigmoid(var)
   sigmoid = 2/(1+exp(-var)) - 1;
end
function dsigmoid = dsigmoid(var)
   dsigmoid = 0.5 * (1 + sigmoid(var)) * (1 - sigmoid(var));
end

[x,y,t] = textread(’hw3data.txt’,'%f %f %f’);
m=1;n=1;
for i =1 : length(t)
    if t(i) == 1
        x1(m) = x(i);
        y1(m) = y(i);
        m = m + 1;
    else
        x2(n) = x(i);
        y2(n) = y(i);
        n = n + 1;
    end
end

 P1 = 5;
 P2 = 5;
 U = rand(3,5);
 V = rand(6,5);
 W = rand(6,1);
 dU = rand(3,5);
 dV = rand(6,5);
 dW = rand(6,1);
 alpha = 0.4;
 epach = 0;
 i = 1;
 max=10000;
 
 while(i<max) && stopping_cond < 30
     E(i) = 0;
     epach = epach + 1;
     for i = 1 : 600
         %feed forward: set p1=5 p2=5
         for j1 = 1 : P1
             z_in(j1) = sum(x(i)*U(i))
             z(j1) = 2/(1+exp(-z_in(j1))) - 1;
             for j2 = 1 : P2
                 zz_in(j2) = sum(z(j1)* V(j1,j2));
                 %when should I add ";" after finishing a line
                 zz(j2) = 2/(1 + exp(- z_in(j2)) - 1;
                 y_in = sum(zz(j2)*W(j2,1));
                 y = 2/(1 + exp(- y_in)) - 1;
             end
         end
         
         %error
         E(i) = E(i) + (t(i) - y(i))^2;
         stopping_cond=E(i);
         %—————-BP
         %1. set up delta
         for k = 1 : 600
             delta(k) = (t(k)-y(k)) * dsigmoid(y_in(k));
             k = k + 1;
         end         
         
         dW(0,1) = alpha * delta(0);
         for j2 = 1 : P2
             dW(j2,1) = alpha * delta(zz(j2));
             delta(zz_in(j2))= delta(j2)*W(j2,1);
             %???delta(zz(j2)) or delta(j2)
             delta(zz(j2))=delta(zz_in(j2))*dsigmoid(zz_in(j2));
             dV(0,j2)=alpha*delta(zz(j2))
             for j1 = 1 : P1
                 dV(j1,j2)=alpha*delta(zz(j2))*z(j1);                 
             end      
         end         
         %——
         for j1=1:P1
             for j2=1:P2
                 delta(z_in(j1))=delta(z_in(j1))+delta(zz(j2))*V(j1,j2);
             end
             delta(z(j1))=delta(z_in(j1))*dsigmoid(z_in(j1));
             dU(0,j1)=alpha*delta(z(j1));
             dU(i,j1)=alpha*delta(z(j1))*x(i);
         end         
         
         %—update weight and bias:U = U + DU;…
         for j1=1:P1
             for j2=1:P2
                 W(j2,1)=W(j2,1)+dW(j2,1);
                 V(j1,j2)=V(j1,j2)+dV(j1,j2);
             end
             U(i,j1)=U(i,j1)+dU(i,j1);
         end
                  
         U
         V
         W
     end
     i = i + 1;
 end
 
 scatter(x1,y1,’+b’)
 hold on
 scatter(x2,y2,’+r’)
 axis([-0.5,1.5,-0.5,1.5])
 x = -0.5 : 0.005 : 1.5
 y = -0.5 : 0.005 : 1.5
 [ X, Y ] = meshgrid(x, y);
 
 %how to make the following?
 %newx = [x’ size(y)];
 %newy = [y’ size(y)];
 k = 1;
 for i = 1 : 401
     for j = 1 : 401
         newx(k) = X(i,j);
         newy(k) = Y(i,j);
         k = k + 1;
     end
 end
 
 for i= 1 : length(newx)
     %feed forward: set p1=5 p2=5
         for j1 = 1 : P1
             z_in(j1) = sum(x(i)*U(i))
             z(j1) = 2/(1+exp(-z_in(j1))) - 1;
             for j2 = 1 : P2
                 z_in(j2) = sum(z(j1)* V(j1,j2));
                 %when should I add ";" after finishing a line
                 zz(j2) = 2/(1 + exp(- z_in(j2)) - 1;
                 y_in = sum(zz(j2)*W(j2,1));
                 y(i) = 2/(1 + exp(- y_in(i))) - 1;
             end
         end
 end
 Z = y;
 contour(newx,newy,Z)
 
 hold off    
 legend(’data +1′, ‘data -1′)
 title(’HW3:NN’)