Jacobi method to solve equation using MATLAB(mfile)


% Jacobi method

 n=input('Enter number of equations, n:  ');
 A = zeros(n,n+1);
 x1 = zeros(n);
 x2 = zeros(n);
 tol = input('Enter the tolerance, tol: ');
 m = input('Enter maximum number of iterations, m:  ');

 A=[4 2 3 8; 3 -5 2 -14; -2 3 8 27];
 x1=[0 0 0];

 k = 1;
 while k <= m
   err = 0;
   for i = 1 : n
      s = 0;
      for j = 1 : n
        s = s-A(i,j)*x1(j);
      end
      s = (s+A(i,n+1))/A(i,i);
      if abs(s) > err
        err = abs(s);
      end
      x2(i) = x1(i)+s;
  end

  if err <= tol
     break;
  else
     k = k+1;
     for i = 1 : n
       x1(i) = x2(i);
     end
  end
 end

 fprintf('Solution vector after %d iterations is :\n', k-1);
 for i = 1 : n
    fprintf(' %11.8f \n', x2(i));

 end


Output:

>> jacobimethod
Enter number of equations, n:  3
Enter the tolerance, tol: 0.001
Enter maximum number of iterations, m:  100
Solution vector after 41 iterations is :
 -0.99919498 
  2.99974076 
  2.00028882 
>> 



No comments