Untitled
unknown
plain_text
2 years ago
1.5 kB
7
Indexable
% Gaussian Elimination method
C = [1 2 -1; 2 1 -2; -3 1 1];
b = [3; 3; -6];
% Augmented matrix
A = [C, b];
n = size(A, 1); % Number of equations/variables
x = zeros(n, 1); % Variable matrix [x1; x2; x3]
for i = 1:n-1
for j = i+1:n
m = A(j, i) / A(i, i);
A(j, :) = A(j, :) - m * A(i, :);
end
end
% Back substitution
x(n) = A(n, n+1) / A(n, n);
for i = n-1:-1:1
summ = 0;
for j = i+1:n
summ = summ + A(i, j) * x(j);
end
x(i) = (A(i, n+1) - summ) / A(i, i);
end
disp('Solution:');
disp(x);
number 3:\
%A= input('Please Enter the size of the equation system A= ') ;
%b = input('Please Enter the elements of the Matrix b =' ) ;
%x0= input('Please Enter the elements of the Matrix x0 =' ) ;
%max_iter= input('Please Enter the elements of the Matrix max_iter=' ) ;
A = [4 1 3; 1 5 1; 2 -1 8];
b = [17; 14; 12];
x0 = [0; 0; 0];
max_iter = 100;
tol = 1e-6;
x = x0;
x_prev = x0;
[n, ~] = size(A);
iter = 0;
while iter < max_iter
for i = 1:n
sigma = 0;
for j = 1:n
if j ~= i
sigma = sigma + A(i, j) * x_prev(j);
end
end
x(i) = (b(i) - sigma) / A(i, i);
end
if norm(x - x_prev) < tol
break;
end
x_prev = x;
iter = iter + 1;
end
if iter == max_iter
disp('Maximum number of iterations reached without convergence');
else
disp('Solution:');
disp(x);
disp(['Number of iterations: ', num2str(iter)]);
end
Editor is loading...
Leave a Comment