%%%%%%%% JACOBI CALCULATOR %%%%%%%%%%% % Define the matrix A and vector b A = [2 -1 0; -1 3 -1; 0 -1 2]; b = [1; 8; -5]; % Initial guess x0 = [0; 0; 0]; % Maximum allowed component-wise error percentage max_error_percentage = 10; % Initialize variables x = x0; n = length(b); D = diag(diag(A)); R = A - D; tolerance = max_error_percentage / 100; % Display the header for the iteration table fprintf('Iteration\t x1\t\t x2\t\t x3\t\t Max Error (%%)\n'); fprintf('-----------------------------------------------------------------------\n'); % Iteration counter k = 1; while true % Calculate the new approximation x_new = D \ (b - R * x); % Calculate the component-wise error error = abs((x_new - x) ./ x_new); max_error = max(error) * 100; % Convert to percentage % Print the current iteration, the values of x, and the max error percentage fprintf('%d\t\t %.6f\t %.6f\t %.6f\t %.2f%%\n', k, x_new(1), x_new(2), x_new(3), max_error); % Check if the maximum component-wise error is below the tolerance if max_error < max_error_percentage break; end % Update the current approximation x = x_new; k = k + 1; end % Summary table fprintf('\nSummary Table:\n'); fprintf('Iteration\t x1\t\t x2\t\t x3\t\t Max Error (%%)\n'); fprintf('-----------------------------------------------------------------------\n'); fprintf('%d\t\t %.6f\t %.6f\t %.6f\t %.2f%%\n', k, x_new(1), x_new(2), x_new(3), max_error);
Write, Run & Share Octave code online using OneCompiler's Octave online compiler for free. It's one of the robust, feature-rich online compilers for Octave language. Getting started with the OneCompiler's Octave editor is easy and fast. The editor shows sample boilerplate code when you choose language as Octave and start coding.