Lab06Gauss列主元素消去法实验.docx
- 文档编号:1818191
- 上传时间:2023-05-01
- 格式:DOCX
- 页数:18
- 大小:117.29KB
Lab06Gauss列主元素消去法实验.docx
《Lab06Gauss列主元素消去法实验.docx》由会员分享,可在线阅读,更多相关《Lab06Gauss列主元素消去法实验.docx(18页珍藏版)》请在冰点文库上搜索。
Lab06Gauss列主元素消去法实验
Lab06.Gauss列主元素消去法实验
【实验目的和要求】
1.使学生深入理解并掌握Gauss消去法和Gauss列主元素消去法步骤;
2.通过对Gauss消去法和Gauss列主元素消去法的程序设计,以提高学生程序设计的能力;
3.对具体问题,分别用Gauss消去法和Gauss列主元素消去法求解。
通过对结果的分析比较,使学生感受Gauss列主元素消去法优点。
【实验内容】
1.根据Matlab语言特点,描述Gauss消去法和Gauss列主元素消去法步骤。
2.编写用不选主元的直接三角分解法解线性方程组Ax=b的M文件。
要求输出Ax=b中矩阵A及向量b,A=LU分解的L与U,detA及解向量x。
3.编写用Gauss列主元素消去法解线性方程组Ax=b的M文件。
要求输出Ax=b中矩阵A及向量b、PA=LU分解的L与U、detA及解向量x,交换顺序。
4.给定方程组
(1)
(2)
先用编写的程序计算,再将
(1)中的系数3.01改为3.00,0.987改为0.990;将
(2)中的系数2.099999改为2.1,5.900001改为9.5,再用Gauss列主元素消去法解,并将两次计算的结果进行比较。
【实验仪器与软件】
1.CPU主频在1GHz以上,内存在128Mb以上的PC;
2.Matlab6.0及以上版本。
实验讲评:
实验成绩:
评阅教师:
200年月日
Lab06.Gauss列主元素消去法实验
一、算法与程序
对于方程组:
(1)
其矩阵形式为
(简记为:
Ax=b)
1.求解
(1)式的Gauss消去法如下:
(1)第一步(k=1)
设
,首先计算乘数
,
.
用一
乘方程
(1)的第一个方程,加到第i个(
)方程上,消去方程组
(1)从第2个方程到第n个方程中的未知数
,得到与方程组
(1)等价的线性方程组
(2)
简记为
A
(2)x=b
(2),
其中A
(2),b
(2)的元素计算公式为
(2)第k次消元(k=1,2…,n-1)
设上述第1步,…,第k-1步消元过程计算已完成,即已计算好与方程组
(1)等价的线性方程组
(3)
简记为A(k)x=b(k).
设
,计算乘数
,
用一
乘方程组(3)的第k个方程加到第i个方程(
),消去从第k+1个方程到第n个方程中的未知数
,得到与方程组
(1)等价的线性方程组A(k+1)x=b(k+1)。
A(k+1),b(k+1)元素的计算公式为
(3)继续上述过程,且设
(k=1,2…,n-1),直到完成第n-1步消元计算。
最后得到与原方程组等价的价单方程组A(n)x=b(n),即
(4)
(4)如果A是非奇异矩阵,且
(k=1,2…,n-1),求解三角线性方程组(4),得到求解公式
(k=n-1,n-2,…,1)
2.求解
(1)式的Gauss列主元素消去法只需在Gauss消去法的基础上增加选列主元和实施行的交换即可,具体步骤如下:
设线性方程组
(1)的增广矩阵为
B=
首先在A的第一列中选取绝对值最大的元素作为主元素,例如
然后交换B的第1行与第i1行,经第1次消元计算的
重复上述过程,设已完成第k-1步的选主元素,交换两行及消元计算,
约化为
其中A(k)的元素仍记为
,b(k)的元素仍记为
第k步选主元素(在A(k)右下方角阵的第1列内选),即确定
使
交换
第k行与
(k=1,2,…,n-1)行的元素,再进行消元计算,最后将原线性方程组化为
回代求解得
(k=n-1,n-2,…,1)
算法程序为:
function[AbLUdet_Ax]=gauss_choice(A,b)
%用选主元的三角分解法解线性方程组Ax=b的M文件
%参数说明,输入项:
A为系数矩阵
%b为等式后面的数组成的列向量
%输出项:
A为系数矩阵,b为等式后面的数组成的列向量
%L,U为矩阵A的LU分解矩阵
%det_A为A的行列式值
%x为解向量
%调用格式为:
[AbLUdet_Ax]=gauss_choice(A,b)
%判断矩阵是否符合gauss消元的条件
[m,n]=size(A);
ifm~=n
errror('A矩阵的行列不相等')
end
m1=length(b);
ifm1~=m
error('A与b不能够成增广矩阵')
end
det_A=det(A);
ifdet_A==0
error('该方程组无唯一解')
end
%gauss列主元消元的LU分解
U=[Ab];
L=eye(m);
fori=1:
n-1
%选主元,并交换两行
[row,col]=find(abs(U)==max(abs(U(i:
n,i))));
l=length(row);
ifl~=1
forh=1:
l
ifrow(h)>=i&col(h)==i
row=row(h);
break;
end
end
end
t=U(row,:
);
U(row,:
)=U(i,:
);
U(i,:
)=t;
%消元,计算LU
L(i+1:
end,i)=U(i+1:
end,i)/U(i,i);
forj=i+1:
n
U(j,:
)=U(j,:
)-U(i,:
)*L(j,i);
end
end
x=U(:
end);
%x暂时存放消元后的b向量值
U(:
end)=[];
%回代计算解向量
x(n)=x(n)/U(n,n);
fork=n-1:
-1:
1
x(k)=(x(k)-U(k,k+1:
n)*x(k+1:
n))/U(k,k);
end
end
用该程序求解方程组
的计算过程和结果如下:
clc
clear
A=[111;04-1;2-21];
b=[6;5;1];
[AbLUdet_Ax]=gauss_choice(A,b)
A=
111
04-1
2-21
b=
6
5
1
L=
1.000000
01.00000
0.50000.50001.0000
U=
2-21
04-1
001
det_A=
-8
x=
1
2
3
程序运行正常,结果正确,测试通过。
3.用不选主元的直接三角分解法解线性方程组Ax=b的M文件为:
function[AbLUdet_Ax]=gauss_not_choice(A,b)
%用不选主元的直接三角分解法解线性方程组Ax=b的M文件
%参数说明,输入项:
A为系数矩阵
%b为等式后面的数组成的列向量
%输出项:
A为系数矩阵,b为等式后面的数组成的列向量
%L,U为矩阵A的LU分解矩阵
%det_A为A的行列式值
%x为解向量
%调用格式为:
[AbLUdet_Ax]=gauss_not_choice(A,b)
%判断矩阵是否符合gauss消元的条件
[m,n]=size(A);
ifm~=n
errror('A矩阵的行列不相等')
end
m1=length(b);
ifm1~=m
error('A与b不能够成增广矩阵')
end
det_A=det(A);
ifdet_A==0
error('该方程组无唯一解')
end
%gauss消元的LU分解
U=[Ab];
L=eye(m);
fori=1:
n-1
ifU(i,i)==0
error('计算过程中,主对角线上的元素出现0,消元停止')
end
L(i+1:
end,i)=U(i+1:
end,i)/U(i,i);
forj=i+1:
n
U(j,:
)=U(j,:
)-U(i,:
)*L(j,i);
end
end
x=U(:
end);
%x暂时存放消元后的b向量值
U(:
end)=[];
%回代计算解向量
x(n)=x(n)/U(n,n);
fork=n-1:
-1:
1
x(k)=(x(k)-U(k,k+1:
n)*x(k+1:
n))/U(k,k);
end
end
用该程序求解方程组
的计算过程和结果如下:
clc
clear
A=[123;252;315];
b=[14;18;20];
[AbLUdet_Ax]=gauss_not_choice(A,b)
A=
123
252
315
b=
14
18
20
L=
100
210
3-51
U=
123
01-4
00-24
det_A=
-24
x=
1
2
3
程序运行正常,结果正确,测试通过。
二、计算实验
1.对于方程组
用Gauss列主元素消去法计算过程和结果如下:
clc
clear
A=[3.016.031.99;1.274.16-1.23;0.987-4.819.34];
b=[1;1;1];
[AbLUdet_Ax]=gauss_choice(A,b)
A=
3.01006.03001.9900
1.27004.1600-1.2300
0.9870-4.81009.3400
b=
1
1
1
L=
1.000000
0.42191.00000
0.3279-0.23811.0000
U=
3.01006.03001.9900
0-6.78738.6875
00-0.0015
det_A=
-0.0305
x=
1.0e+003*
1.5926
-0.6319
-0.4936
将系数3.01改为3.00,0.987改为0.990,计算结果如下:
clc
clear
A=[3.006.031.99;1.274.16-1.23;0.990-4.819.34];
b=[1;1;1];
[AbLUdet_Ax]=gauss_choice(A,b)
A=
3.00006.03001.9900
1.27004.1600-1.2300
0.9900-4.81009.3400
b=
1
1
1
L=
1.000000
0.42331.00000
0.3300-0.23641.0000
U=
3.00006.03001.9900
0-6.79998.6833
00-0.0200
det_A=
-0.4070
x=
119.5273
-47.1426
-36.8403
通过对两次计算结果进行比较,我们发现A和b中的元素有一点点变化就会导致计算结果有很大的变化,由此说明,应该用Gauss列主元素消去法求解此方程组。
2.对于方程组
用Gauss列主元素消去法计算过程和结果如下:
clc
clear
A=[10-701;-32.0999962;5-15-1;2102];
b=[8;5.900001;5;1];
[AbLUdet_Ax]=gauss_choice(A,b)
A=
10.0000-7.000001.0000
-3.00002.10006.00002.0000
5.0000-1.00005.0000-1.0000
2.00001.000002.0000
b=
8.0000
5.9000
5.0000
1.0000
L=
1.0000000
-0.30001.000000
0.5000-0.00001.00000
0.20000.9600-0.80001.0000
U=
10.0000-7.000001.0000
02.50005.0000-1.5000
006.00002.3000
0005.0800
det_A=
-762.0009
x=
0.0000
-1.0000
1.0000
1.0000
将系数2.099999改为2.1,5.900001改为9.5,计算结果如下:
clc
clear
A=[10-701;-32.162;5-15-1;2102];
b=[8;9.5;5;1];
[AbLUdet_Ax]=gauss_choice(A,b)
A=
10.0000-7.000001.0000
-3.00002.10006.00002.0000
5.0000-1.00005.0000-1.0000
2.00001.000002.0000
b=
8.0000
9.5000
5.0000
1.0000
L=
1.0000000
-0.30001.000000
0.500001.00000
0.20000.9600-0.80001.0000
U=
10.0000-7.000001.0000
02.50005.0000-1.5000
006.00002.3000
0005.0800
det_A=
-762.0000
x=
-0.3543
-1.4252
1.3827
1.5669
通过对两次计算结果进行比较,我们发现,由此说明。
三、实验总结
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Lab06Gauss 元素 消去 实验