好文档 - 专业文书写作范文服务资料分享网站

追赶法求解三对角线性方程组

天下 分享 时间: 加入收藏 我要投稿 点赞

《数值分析》数值实验 XXX

追赶法求解三对角线性方程组

一 实验目的

利用编程方法实现追赶法求解三对角线性方程组。 二 实验内容

1、 学习和理解追赶法求解三对角线性方程组的原理及方法; 2、 利用MATLAB编程实现追赶法; 3、 举例进行求解,并对结果进行分。 三 实验原理

设n元线性方程组Ax=d的系数矩阵A为非奇异的三对角矩阵

?a1c1??b2a2c2????A=?………??

…a(n?1)c(n?1)???b(n)a(n)???这种方程组称为三对角线性方程组。显然,A是上下半宽带都是1的带状矩阵。设A的前n-1个顺序主子式都不为零,根据定理2.5的推论,A有唯一的Crout分解,并且是保留带宽的。

?l1??1u1??m2l2???1u2 ????????A………… ?LU??????…l(n?1)1u(n?1)? ???? m(n)l(n)?1??????

其中L是下三角矩阵,U是单位上三角矩阵。利用矩阵相乘法,可以

0

《数值分析》数值实验 XXX

得到:

l1?a1l1?u1?c1u1?c1/l1mi?bi(2?i?n)a(i?1)?m(i?1)ui?l(i?1)(1?i?n?1)ci?li?uiui?ci/lil(i?1)?a(i?1)?b(i?1)uiy?Ux,则有:

由上列各式可以得到L和U。 引入中间量y,令

已知

Ax?LUx?Ly?dLy?dL和d,可求得y。

?l1??y1??d1??m2l2??y2??d2???????????…???…?……??????…l(n?1)y(n?1)d(n?1)???????m(n)l(n)?????y(n)????d(n)??则可得到y的求解表达式:

y1?d1/l1i?2,3,…,nm(i)y(i?1)?li*y(i)=di y(i)?[di?m(i)y(i?1)]/li

1

《数值分析》数值实验 XXX

y?Ux得:

?1u1??x1??y1????x2??y2?1u2??????????…???…?……??????

1u(n?1)x(n?1)y(n?1)???????1?????x(n)????y(n)??可得到X的求解表达式:

x(n)?y(n)i?n?1,n?2,…,1x(i)?y(i)?u(i)x(i?1)从而得到Ax=d的解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]

2

追赶法求解三对角线性方程组

《数值分析》数值实验XXX追赶法求解三对角线性方程组一实验目的利用编程方法实现追赶法求解三对角线性方程组。二实验内容1、学习和理解追赶法求解三对角线性方程组的原理及方法;2、利用MATLAB编程实现追赶法;3、
推荐度:
点击下载文档文档为doc格式
2088f6e5tb3pebe0ile4
领取福利

微信扫码领取福利

微信扫码分享