追赶法求解三对角线性方程组Matlab编程
对于n元线性方程组Ax=b,其系数矩阵A为非奇异的三对角矩阵(上下半带宽都是1的带状矩阵),此方程组可在Matlab中利用追赶法思想求解,Matlab编程如下:
clear,clc
temp=textread('exercise.txt','%n');
n=temp(1);%读取系数矩阵的阶数
[d,a,c,b]=textread('exercise.txt','%f%f%f%f','headerlines',1);
fprintf(' d a c b\n')
fori=1:1:n
fprintf('%9.1f %9.1f %9.1f %9.1f \n', d(i), a(i), c(i), b(i))
end
p(1)=a(1);
fori=1:1:n-1
q(i)=c(i)/p(i);
p(i+1)=a(i+1)-d(i+1)*q(i);
end
y(1)=b(1)/p(1);
fori=2:1:n
y(i)=(b(i)-d(i)*y(i-1))/p(i);
end
x(n)=y(n);
fori=n-1:-1:1
x(i)=y(i)-q(i)*x(i+1);
end
x