📄 tridisolve.m
字号:
function x = tridisolve(a,b,c,d)
% TRIDISOLVE Solve tridiagonal system of equations.
% x = TRIDISOLVE(a,b,c,d) solves the system of linear equations
% b(1)*x(1) + c(1)*x(2) = d(1),
% a(j-1)*x(j-1) + b(j)*x(j) + c(j)*x(j+1) = d(j), j = 2:n-1,
% a(n-1)*x(n-1) + b(n)*x(n) = d(n).
%
% The algorithm does not use pivoting, so the results might
% be inaccurate if abs(b) is much smaller than abs(a)+abs(c).
% More robust, but slower, alternatives with pivoting are:
% x = T\d where T = diag(a,-1) + diag(b,0) + diag(c,1)
% x = S\d where S = spdiags([[a; 0] b [0; c]],[-1 0 1],n,n)
x = d;
n = length(x);
for j = 1:n-1
mu = a(j)/b(j);
b(j+1) = b(j+1) - mu*c(j);
x(j+1) = x(j+1) - mu*x(j);
end
x(n) = x(n)/b(n);
for j = n-1:-1:1
x(j) = (x(j)-c(j)*x(j+1))/b(j);
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -