matlab数值分析
线性代数的直接接法 追赶法求解线性方程组Ax=b,其中A是三对角方阵
%追赶法求解线性方程组Ax=b,其中A是三对角方阵
function x=tridiagsolver(A,b)
[n,n]=size(A);
for i=1:n
if(i==1)
l(i)=A(i,i);
y(i)=b(i)/l(i);
else i<n
l(i)=A(i,i)-A(i,i-1)*u(i-1);
y(i)=(b(i)-A(i,i-1)*y(i-1))/l(i);
end
if(i<n)
u(i)=A(i,i+1)/l(i);
end
end
x(n)=y(n);
for j=n-1:-1:1
x(j)=y(j)-x(j+1)*u(j);
end
调用程序
clc
clear
A=[2,-1,0,0;-1,3,-2,0;0,-2,4,-3;0,0,-3,5];
b=[6;1;-2;1];
x= tridiagsolver(A,b)