追赶法求解三对角线性方程组一 实验目的运用编程办法实现追赶法求解三对角线性方程组。二 实验容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(1)=0for i=2:n m(i)=b(i) %求得 m(i) u(i-1)=c(i-1)/l(i-1); %求得 u(i) l(i)=a(i)-b(i)*u(i-1); %求得 l(i)endu(n)=0y(1)=d(1)/l(1);for i=2:n y(i)=[d(i)-m(i)*y(i-1)]/l(i); %求得 y(i)endx(n)=y(n);for i=n-1:-1:1 x(i)=y(i)-u(i)*x(i+1); %求得 x(i)end x=x' %将 x 转置,变为列向量 在 Matlab 中新建 Trid.m,其中程序为如上虚线框代码,放在工作目录。在 mand Window 输入下列语句:clear all;clc;fprintf('输入非奇异三对角系数矩阵 A\n');A=input('A matrix='); % 输入系数矩阵 fprintf('系数矩阵');Aif det(A)==0 % 判断系数矩阵与否奇异fprintf('系数矩阵 A 奇异!!!请重新输入!\n');fprintf('重新输入非奇异三对角系数矩阵 A\n');A=input('A matrix='); fprintf('系数矩阵');Aend fprintf('输入矩阵 d\n');d=input...