thomas.m
来自「所有程序的运行和编译环境为:Visual C++ 6.0和MATLAB 6.5 」· M 代码 · 共 27 行
M
27 行
function x=Thomas(N,alpha,beta,gama,d)
% Implement Thomas algorithm to solve
% Tx=d
% where T is a NxN tri-diagonal matrix with N dimensionl vector--alpha
% as diagonal elements,(N-1) dimensional vectors--beta & gama as up
% and down off_diagonal elements,respectively. The ouput x is a N
% dimensional vector--the solution.
x=d;
m=zeros(1,N); l=zeros(1,N);
m(1)=alpha(1);
for i=2:N
l(i)=gama(i)/m(i-1);
m(i)=alpha(i)-l(i)*beta(i-1);
end
y=zeros(1,N);
y(1)=d(1);
for i=2:N
y(i)=d(i)-l(i)*y(i-1);
end
x=zeros(1,N);
x(N)=y(N)/m(N);
for i=N-1:-1:1
x(i)=(y(i)-beta(i)*x(i+1))/m(i);
end
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?