function [x,k]=my_sor(a,b,x0,w,tol,kmax) n=length(b); error = 1000; x=x0; k = 0; while error > tol & k < kmax for i=1:n x_temp = b(i); for j=1:n if( j~= i) x_temp = x_temp - a(i,j)*x(j); end end x_temp = x_temp/a(i,i); x(i) = (1-w)*x0(i) + w*x_temp; end error = max(max(abs(x-x0))) x0 = x; k = k+1; end return