کدتون درست کار می کنه و همونجوری که گفتم توی چهار مرحله همگرا میشه 
	كد:
	s = [-1 -1  1 1;
     -1  1 -1 1;
     -1 -1 -1 1];
 %first row of s show first input of AND 
 %second row of s show second input of AND
 %3th row show out put
w = [rand();rand();1]
%set random initial weight
s_c = 1;
alpha = 0.1;
iteration_c = 1;
for iteration_c = 1:4
    for s_c = 1:4
        y = (w(1)*(s(1,s_c)))+(w(2)*(s(2,s_c)))+(w(3));
        w(1) = w(1) + (alpha.*(s(3,s_c) - y).*s(1,s_c));
        w(2) = w(2) + (alpha.*(s(3,s_c) - y).*s(2,s_c));
        w(3) = w(3) + (alpha.*(s(3,s_c) - y));
    end
end
w
for s_c = 1:4
    end_value = (w(1).*(s(1,s_c)))+(w(2).*(s(2,s_c)))+w(3)
end
 خروجی هم اینه
	كد:
	w =
    0.9597
    0.3404
    1.0000
w =
    0.5926
    0.5525
   -0.2758
end_value =
   -1.4210
end_value =
   -0.3159
end_value =
   -0.2358
end_value =
    0.8693
 که w اولی که نشون داده شده وزن اولیه است و w بعدی هم وزن بعد از آموزش 
همونطوری که میبینی خروجی برای سه داده اول منفی شده یعنی صفر و برای 1 و 1 مثبت شده یعنی 1
اینم نمود گرافیکی این سلول 
خط سبز وزن اولیه 
خط های قرمز چهار مرحله آخر
(البته مال یک اجرای دیگه چون وزن ها تصادفی انتخاب میشن و من قسمت هار رسم شکل رو از کد حذف کردم که قابل فهم تر بشه)