追赶法求解三对角线性方程组一 实验目的运用编程办法实现追赶法求解三对角线性方程组
二 实验容1、 学习和理解追赶法求解三对角线性方程组的原理及办法;2、 运用 MATLAB 编程实现追赶法;3、 举例进展求解,并对成果进展分
三 实验原理设 n 元线性方程组的系数矩阵 A 为非奇异的三对角矩阵这种方程组称为三对角线性方程组
显然,A 是上下半宽带都是 1的带状矩阵
设 A 的前 n-1 个次序主子式都不为零,根据定理 2
5 的推论,A 有唯一的 Crout 分解,并且是保存带宽的
其中 L 是下三角矩阵,U 是单位上三角矩阵
运用矩阵相乘法,能够得到:由上列各式能够得到 L 和 U
引入中间量 y,令,那么有:L 和 d,可求得 y
那么可得到 y 的求解体现式:由得:可得到 X 的求解体现式:从而得到的解 x
四 Matlab 编程根据以上的实验原理,在 Matlab 中编程以下函数 x=Trid〔A,d〕 function x=Trid(A,d)% 追赶法求解三对角的线性方程组 Ax=d% b 为主对角线元素,a,c 分别为次对角线元素,d 为右端项 % A=[ a1 c1% b2 a2 c2%
% b(n-1) a(n-1) c(n-1)% b(n) a(n) ]% a=[a1
a(n)] % 把系数矩阵的三对角转变成 3 个列向量 % b=[0 b2
b(n)] % 缺少的元素用 0 替代% c=[c1
c(n-1) 0]n=size(A,1); % n 为系数矩阵的行数a(1)=A(1,1)b(1)=0 c(1)=A(1,2)for i=2:n-1 a(i)=A(i,i) b(i)=A(i,i-1); c(i)=A(i,i+1);enda(n)=A(n,n)b(n)=A(n,n-1)c(n)=0l(1)=a(1); %开场求解 L,Um