% slvTriDiagSys.m % % solve a tri-diagonal system % Gaussian elimination without pivoting % d -- main diagonal % a -- sub diagonal % c -- super diagonal % b -- right-hand side % n -- size of linear system % % Jiangguo (James) Liu, ColoState % 03/25/2008 function x = slvTriDiagSys(a, b, c, d, n) % forward substitution for i=1:n-1 d(i+1) = d(i+1) - a(i)/d(i)*c(i); b(i+1) = b(i+1) - a(i)/d(i)*b(i); end % backward substitution x(n) = b(n)/d(n); for i=n-1:-1:1 x(i) = (b(i)-c(i)*x(i+1))/d(i); end return;