I am struggling to plot iteration vs error in the matlab code? can anyone help me with this? very much appreciate it.
    5 views (last 30 days)
  
       Show older comments
    
    Uma Maheswara Rao Epuganti
 on 23 Nov 2022
  
    
    
    
    
    Commented: Walter Roberson
      
      
 on 25 Nov 2022
            This is the code for Jacobi iteration method. i wanted to plot iteration vs error. but i couldn't figure out how to do it?
% Jacobi method for linear equation
function[x,rel_error]=jacobimethod(A, b, x0, tol, iteration)
% Inputs: A - Coefficient matrix
A=[2 -1 0;-1 2 -1;0 -1 2];
%         b - Input matrix
b = [0; 2; 0];
x0=[0; 0; 0];
%       tol - Defining tolerance for solution
tol=1.e-03;
% iteration - Number of iterations
iteration=10;
% Outputs: x - Solutions
%  rel_error - Relative error
D = diag(diag(A));   % Making coefficient matrix diagonal
R = A - D;          % Construction of another matrix "R"
N = 1;               % iteration counter
x = x0;
rel_error = tol * 2; % norm(x - x0)/norm(x);
exct = A\b;
% Implementation of Jacobi method to solve Ax = b
while (rel_error>tol && N <= iteration)
    xprev = x;   
    x = inv(D)*(b - R*xprev);
    rel_error = norm((x - xprev)/x);
    er = norm(x-exct)
    fprintf('\n Iteration %i: Relative error =%d ',x, rel_error);   
    N = N + 1;       
end
0 Comments
Accepted Answer
  Torsten
      
      
 on 24 Nov 2022
        
      Edited: Torsten
      
      
 on 24 Nov 2022
  
      % Inputs: A - Coefficient matrix
A=[2 -1 0;-1 2 -1;0 -1 2];
% b - Input matrix
b = [0; 2; 0];
% x0  - Initial guess
x0 = [0; 0; 0];
% tol - Defining tolerance for solution
tol=1.e-03;
% iteration - Number of iterations
iteration=10;
[x,Rel_error]=jacobimethod(A, b, x0, tol, iteration);
x
plot(Rel_error)
% Jacobi method for linear equation
function[x,Rel_error]=jacobimethod(A, b, x0, tol, iteration)
% Outputs: x - Solutions
%  rel_error - Relative error
D = diag(diag(A));   % Making coefficient matrix diagonal
R = A - D;          % Construction of another matrix "R"
N = 1;               % iteration counter
x = x0;
rel_error = tol * 2; % norm(x - x0)/norm(x);
exct = A\b;
% Implementation of Jacobi method to solve Ax = b
while (rel_error>tol && N <= iteration)
    xprev = x;   
    x = inv(D)*(b - R*xprev);
    rel_error = norm(x - xprev)/norm(x);
    Rel_error(N) = rel_error;
    er = norm(x-exct);
    %fprintf('\n Iteration %i: Relative error =%d ',N, rel_error);   
    N = N + 1;       
end
end
4 Comments
More Answers (1)
See Also
Categories
				Find more on Creating and Concatenating Matrices in Help Center and File Exchange
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!


