tdma.m

来自「Matlab在化学工程中的应用」· M 代码 · 共 21 行

M
21
字号
function X = TDMA(A,D,C,B)
% Tridiagonal Matrix Algorithm(三对角阵算法)
%
% Function: to solve the Tridiagonal system CX=B, where C is a Tridiagonal matrix
%
% Input      - A is the subdiagonal of the coefficient matrix
%               - D is the main diagonal of the coefficient matrix
%               - C is the superdiagonal of the coefficient matrix        
%               - B is the constant vector of the linear system
% Output   - X is the sulution vector

N = length(B);
for k=2:N
    mult = A(k-1)/D(k-1);
    D(k) = D(k)-mult*C(k-1);
    B(k) = B(k)-mult*B(k-1);
end
X(N) = B(N)/D(N);
for k=N-1:-1:1
    X(k) = (B(k)-C(k)*X(k+1))/D(k);
end

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?