Thomas
Thomas
function x = thomas_algorithm(e, f, g, r)
% e: Sub-diagonal vector (n-1 elements)
% f: Main diagonal vector (n elements)
% g: Super-diagonal vector (n-1 elements)
% r: Right-hand side vector (n elements)
% Back substitution
x = zeros(n, 1); % Initialize solution vector
x(n) = r(n) / f(n); % Solve for last variable
for k = n-1:-1:1
x(k) = (r(k) - g(k) * x(k+1)) / f(k);
end
end
% Example Usage:
% Define the tridiagonal system from the second image
e = [-1, -1, -1]; % Sub-diagonal elements
f = [2.04, 2.04, 2.04, 2.04]; % Main diagonal elements
g = [-1, -1, -1]; % Super-diagonal elements
r = [40.8; 0.8; 0.8; 200.8]; % Right-hand side vector