追赶法
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、实验题目
用追赶法解线性三对角方程组:
⎥⎥⎥⎥⎦
⎤⎢⎢⎢⎢⎣⎡--=⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡322141141141124321x x x x 二、实验目的
1.熟悉掌握追赶法法的基本原理和基本方法。
2.学会用追赶法法解简单的方程组。
三、实验原理
(1)f Ly =,求y ;(2)y Ux =,求x ; 从而得到解三对角线方程组的追赶法公式。
1. 计算的递推公式:
111/b c =β
)/(1--=i i i i i a b c ββ
2. 解:f Ly =
111/b f y =
a a
b y a f y i i i i i i i )/()(11----=β
3. 解:y Ux =
n n y x =
1+-=i i i i x y x β
四、实验内容及结果
原始数据:a=[1,1,1];
b=[2,4,4,4];
c=[1,1,1];
d=[1,-2,2,-3];
追赶法解三对角方程组:
程序源代码
%machase.m
function x=machase(a,b,c,d)
%用途:追赶法解三对角方程组Ax=d
%格式:x= machase(a,b,c,d) a为次下对角线元素向量,b主对角元素
% 向量,c为次上对角线元素向量,d为右端向量,x返回解向量
n=length(a);
for k=2:n
b(k)=b(k)-a(k)/b(k-1)*c(k-1);
d(k)=d(k)-a(k)/b(k-1)*d(k-1);
end
x(n)=d(n)/b(n);
for k=n-1:-1:1
x(k)=(d(k)-c(k)*x(k+1))/b(k);
end
输入:a=[1,1,1];
b=[2,4,4,4];
c=[1,1,1];
d=[1,-2,2,-3];
machase(a,b,c,d)
结果:ans =
0.9615 -0.9231 0.7308
五、实验结果分析
追赶法为一种特殊的LU分解法。追赶法是求解三对角矩阵的常用方法,但从整体编程角度分析,其程序编写较迭代法复杂,但通用性较好。追赶法求解三对角矩阵不但节省存储单元,而且可以减少计算量。