我正在尝试求解带有向前和向后子对象的对称三对角矩阵,但是向量的最后一个值不正确,也许前向和反向子对象不适用于这种类型的矩阵?
function [ x ] = FXThomasMethod(n,a,b,c,z)
%*********************************************************************
% Thomas Method for solving Tridiagonal Matrix %
% %
% Input : %
% a, vector for diagonal 0; %
% b, vector for diagonal -1; %
% c, vector for diagonal 1; %
% n, matrix's size; %
% z, vector for costant terms. %
% %
% Output: %
% x, vector for unknowns. %
% %
%*********************************************************************
%Thomas implementation
a(1,1)= a(1);
for i=2:n
b(i,1) = b(i)/a(i-1);
a(i,1) = a(i) - b(i)*c(i-1);
end
%Tridiagnoal Matrix creation
T = spdiags ([b a c], -1:1,n,n);
[L,U,P] = lu(T);
%Forwards subs implementation for solve Ly = z;
for i=1:n
y(i)=z(i);
for j=1:i-1
y(i)=y(i)-L(i,j)*y(j);
end
y(i)=y(i)/L(i,i);
end
%Backwards subs implementation for solve Ux = y;
for i=n:-1:1
x(i)=y(i);
for j=i+1:n
x(i)=x(i)-U(i,j)*x(j);
end
x(i)=x(i)/U(i,i);
end
end