计算方法实验
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《数值计算方法》
实验
专业:
姓名:
姓名:
实验一
1. 题目 (课本46页习题二第1题)
用列主元素法解下列方程,结果保留4位小数。
⎪⎩⎪
⎨⎧=+-=-+=-+2
186354446232
1321321x x x x x x x x x
2. 模型建立(理论分析)
用方程组的增广矩阵
[]⎥⎥⎥⎦
⎤⎢⎢⎢
⎣⎡=n nn
n n n n b a a a b a a a b a a a b A 21
222221
111211, 表示,并在增广矩阵上进行计算。
首先在矩阵的第一列中选取绝对值最大的元,通过行互换,将最大的元所在行换在第一行的位置,得到增广矩阵()()[]
11,b A ,然后进行消元,得到矩阵
()()[]
()()()
()()()()()()
⎥⎥
⎥⎥⎦
⎤⎢⎢⎢⎢⎣
⎡=222222222211111121112
2
,n nn n n
n b a a b a a b a a a b A
然后在每次从消元之前,都通过行变换将绝对值最大的元所在的行换到相应行,再进行消元。如此经过n-1步,增广矩阵被化成上三角矩阵,最后回代过程求解。这种算法就是列主元素法求解方程组。
3. 算法
(1)输入A=[2,6,-4;1,4,-5;6,-1,18];b=[4;3;2];计算rank(A);rank(B)。 (2)判断所需求的方程组解的情况,选择相应计算方法,本题是存在唯一解。 (3)置储存空间X ,C 矩阵,比较所在列进行消元运算数值绝对值,取下标位置。
(4)取绝对值大的元所在行通过行变换换到首位,再进行消元,直到化为上三角矩阵,停机。
4. 程序
列主元素消去法程序
clear
clc
A=[2,6,-4;1,4,-5;6,-1,18];
b=[4;3;2];
B=[A b];
RA=rank(A);
RB=rank(B);
zhica=RB-RA;
if zhica>0,
disp('请注意:因为RA~=RB,所以此方程组无解')
return
end
if RA==RB
if RA==3
disp('请注意:因为RA=RB=3,所以此方程组有唯一解')
X=zeros(3,1);
C=zeros(1,4);
for p=1:2
[Y,j]=max(abs(B(p:3,p)));
C=B(p,:);
B(p,:)=B(j+p-1,:);
B(j+p-1,:)=C;
for k=p+1:3
m=B(k,p)/B(p,p);
B(k,p:4)=B(k,p:4)-m*B(p,p:4);
end
end
b=B(1:3,4);
A=B(1:3,1:3);
X(3)=b(3)/A(3,3);
for q=2:-1:1
X(q)=(b(q)-sum(A(q,q+1:3)*X(q+1:3)))/A(q,q);
end
X
else
disp('请注意:因为RA=RB<3,所以此方程组有无穷多解') end
end
5.运行结果
实验二
1. 题目 (课本46页习题二第3题)
用紧凑格式解下列方程组,并写出L ,U 矩阵。
⎥⎥⎥⎥⎦
⎤⎢⎢⎢⎢⎣⎡=⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡19044102256811616427811694143
214321x x x x 2. 模型建立(理论分析)
已知用矩阵形式表示Gauss 消去法的消元过程是对方程组增广矩阵[A,b]进行一系列初等变换,将系数矩阵A 左乘上三角形矩阵的过程,也等价于用一串初等矩阵去做乘增广矩阵,因此消元过程可以通过矩阵运算来表示。例如,第一次消元等价于用初等矩阵
⎥⎥⎥⎥⎥
⎥⎦
⎤⎢⎢⎢⎢⎢⎢⎣⎡---=100010001000
11
31
21
1
n l l l L 左乘矩阵()()[]
[]b A b A ,,=11 其中()()
()n i a a l i i ,,3,2/11111
1 ==,即()()[]()()[]
11122b A L b A ,,=。 一般地,第k 次消元等价于用初等矩阵
⎥⎥
⎥
⎥⎥⎥⎥⎥⎦⎤
⎢⎢
⎢⎢⎢
⎢⎢⎢⎣
⎡--=+1111
1000
nk k
k k l l L
左乘矩阵()()[]
k k b A ,,其中()()
()n k i a a l k kk k ik
ik ,,1/ +==,经过1-n 次消元后得到
()()[]()()
[]
1112
1b A L L
L
b A n n n
n
,, --=,因为⎥
⎥
⎥
⎥⎥⎥
⎥⎥⎦⎤
⎢⎢
⎢⎢⎢⎢⎢⎢⎣⎡=+-111111000
nk k
k k
l l L ,令
⎥
⎥⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢
⎢⎢⎢⎢⎢⎢⎣
⎡==-----11
1
11
1
32132
31211
1
1211nn n n n n l l l l l l l
L L L L
,[]()()[]
n n Lb LA b A ,,= 消元过程实际上是把系数矩阵A 分解成单位下三角与上三角矩阵的乘积的过程。
LU A =
其中L 为单位上三角矩阵,U 为下三角矩阵。
⎥⎥⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢
⎢⎢⎢⎣⎡=-11
1
11
1
32
1323121nn n n n l l l l l l l
L
, ⎥⎥⎥⎥⎥⎥⎥⎥⎦
⎤
⎢⎢⎢⎢⎢⎢⎢⎢⎣
⎡=nn n n u u u u u u u u U 0
2232211312
11 这种分解称为杜利特尔(Doolittle)分解,也称为LU 分解。
当A 为n 阶方阵,若A 的顺序主子式()1,,2,1-=n i A i 均不为零,则矩阵A 存在唯一的Doolittle 分解。由矩阵的乘法法则,得ij l 和ij u 的公式
()
()
()n j i n j u u l a l n i j n i u l a u n j a u jj j k kj ik ij ij i k kj ik ij ij j j ,,1,1,,2,1/,,,,,2,,2,11
11
1
11 +=-=⎪⎪⎭
⎫ ⎝⎛-===-===∑∑-=-=
计算过程应按第1行,第1列,第2行,第2列,…的顺序进行。得到L ,U 矩阵