版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、隼中科秋大考数值分析实验报告系、年级 研究生院2012级学 号姓 名类 别 硕 士2013年5月6日实验6.1实验要求:根据教材实验6.1做出相应改编:分别使用Gauss消元、列选主元。全选主 元的方法求解线性方程组,分别比较三种消元方法的结果和算法的区别,并说明 主元的选取在Gauss消元的中的作用。问题提出:Gauss消去法是我们在线性代数中已经熟悉的。但由于计算机的数值运算是 在一个有限的浮点数集合上进行的,如何才能确保Gauss消去法作为数值算法的 稳定性呢? Gauss消去法从理论算法到数值算法,其关键是主元的选择。主元的 选择从数学理论上看起来平凡,它却是数值分析中十分典型的问题。
2、一般来说书 本上采用的列选主元的办法对其线性方程组进行求解的,那么我们是否可以选择 一种行列都选取主元消去的办法来减小相应的误差呢?全主元消元法和列主元消元 法一样都是由高斯消元法演变而来。只不过选取主元的闱有所加大。全选主元相对于列选主 元的更加更杂化了,因为在运算的过程中导致了元的位置发生了变化,这样我们就不得不追 踪每个元的位置。本次实验就几个问题进行了 niatlab实验分析,比较几种计算方法的优劣 性。实验容:考虑线性方程组Ax = b, A g I, b g Rn编制一个程序:分别能进行Gauss消去、列选主元Gauss消去、全选主元Gauss消去法进行解线性方程组。对三种算法所得
3、到的结果进行比较,分析三种 计算方法的准确性。具体容:68则方程有解x* = (l,L,1)、68(1)取矩阵幺=取11=10 11=20计算矩阵的条件数。分别编写利用matlab编写运算程序,实现Gauss消去、列选主元消去以及全选主元消去的方法。比较三种计算方法的运算 结果。在列选主元的过程中分别采用每步消去过程总选取按模最小或按模尽可能 小的元素作为主元或每步消去过程总选取按模最大的元素作为主元,结果乂如 何?分析实验的结果。1采用普通Gauss消元法进行计算Gauss消去法的基本思想是,通过将一个方程乘或除某个数以及两个方程相 加减这两种运算手续,逐步减少方程组中变元的数目,最终使某个
4、方程只含有一 个变元,从而得出所求的解。对于/无=比Gauss消去法的求解思路为:(1)若0胃。,先让第一个方程组保持不变,利用它消去其余方程组中的巧, 使之变成一个关于变元“2,、3/的n-1阶方程组。(2)按照(1)中的思路继续运算得到更为低阶的方程组。(3)经过n-1步的消元后,得到一个三角方程。(4)利用求解公式回代得到线性方程组的解。根据这个思路编写matlab程序如下:function x=gauss(n)disp(,请输入构造的矩阵的阶数(10/20),) n=input (1 1);dispL构造矩阵为A=,)A = diag(6*ones(1,n)+diag(ones(lz
5、n-1)r 1)+diag(8*ones(1,n-1),-1) disp (,由A构造出矩阵b= *) b = A*ones(nz1) m, n =size (A);dispL增广矩阵为:)Ab=A b for i=l:n-1yuan=Ab(i,i);for k=i+l:nAb(kf i: (n+1)=Ab(k,i: (n+1)-(Ab(kz i)/yuan)*Ab(iz i: (n+1); end disp(Ab);pauseendx=zeros(nz1);x(n)=Ab(nz (n+1)/Ab(nz n);for i=n-l:-1:1x(i) = (Ab(iz (n+1)-Ab(izi+l
6、:n)*x(i+l:n)/Ab (ir i); end取n=10运行的结果为:Ab =61000000007861000000015086100000015008610000015000861000015000086100015000008610015000000861015000000086115000000008614消去结束后的矩阵为:6. 00001. 0000000000007.00000d. 66671.000000000005.6667004. 2S571.00000000005.28670004.1333I. 0000000005. 133300004.06451.000000
7、005.0645000004.03171.00000005.03170000004.01571. 0000005.015700000004. 00781. 000005.0078000000004. 00391.00005.00390000000004.00204.00(20解得线性方程组的解为:ans =1.0000 1.0000 1.0000 1.00001.0000 1.00001.0000 1.00001.0000 1.0000 1.0000取n=20运行的结果为:Ab =1.000061000000000000000000.I86100000000000000000150861000
8、0000000000000150086100000000000000015000a6I0000000000000015000086100000000000001500000860000000000001500000086I00000000000150000000861000000000015000000008610000000001500000000086I00000000150000000000861000000015000a00000008600a00a1500000000000086I0000015000000000000086I00001500000000000000861000150
9、0000000000000086I0015000000000000000036101500000000000000000861150000000000000000008614Ab =1 也姆!1消去结束后的矩阵为:GIujb 15 thro 岫 21!.):C0001I00 0(fl000?.0M00遍:j)jt9J1100 fl(fl000X001.D):0011000(0100105麻000烟l.0):i)011000(fl0005.13330Q00魄1:0。0(fl0005.0&J50Q000就:00 0(0100105.031:000000卵1.0M000(fl0005.015;000
10、0001i)n1.000(fl0005.00780Q0Q0Q1I:二i獭e(1(0100100Q000010l1您 L:(|(I(flfl00fl0UEO0000001i00 4.0LM(fl0005.00100000001i0001M6L):(0100105.00)5(00061(00 0(13(:LM(flfl00fl05.0M20Q00001:00 0(I(1.40100005.00110e0t9J1I00 fl(LOKI1.00(100105.00)10000001i000(flMl.MOO0fl05. ONO0000001i000(flL伽。1.0W005.00100Q00081:0
11、。0(010LQ咖LOOM00Q00061:00 0(flfl0040岫l.MOO5. ONO0000001i000(fl004. WOO10M0解得线性方程组的解为:ans =1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.00001.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.00002采用列选主元消去法进行计算在采用Gauss消去法的时候,主元绝对值的大小将影响到计算结果,主元的 绝对值越大,算法的稳定性越好。列选主元消去法m
12、atlab程序的计算思路为:(1)先构造需要计算的矩阵,得到增广矩阵Ab。(2)将系数矩阵A的每一列的绝对值最大的元素换至对角线上,矩阵b中的元 素也随之改变,先判断主元是否为0。然后利用此主元逐行消去此主元所在的列 中的元素,矩阵b中的元素也随之改变。(3)经过n-1步运算过后,矩阵A就变换成为一个三角矩阵。(4)逐次回代,就能计算出方程组的解。分别每步消去过程总选取按模最大的元素作为主元和每步消去过程总选取 按模最小的元素作为主元选取列选主元消去法的matlab程序为:function x=gauss(n)disp请输入构造的矩阵的阶数(10/20),)n=input (1 1);disp
13、构造矩阵为a=,)A = diag(6*ones(1,n)+diag(ones(lz n-1)r 1)+diag(8*ones(lf n-1),-1)disp (,由A构造出矩阵b= *)b = A*ones(nz1)m, n =size (A);dispL增广矩阵为:r)Ab=A bfor i=l:n-1if way=l 1=1 disp输入每一列的主元所在的行t)hang=input(1 1);Ab(i hangz:)=Ab(hang ir :);disp (Ab);pauseendzhuyuan=Ab(i,i);for k=i+l:nAb(kf i: (n+1)=Ab(k,i: (n+1
14、)-(Ab(k,i)/zhuyuan)*Ab(iz i: (n+1); end disp(Ab);pauseendx=zeros(nz1);x(n)=Ab(nz (n+1)/Ab(nz n);for i=n-l:-1:1x(i) = (Ab(iz (n+1)-Ab(izi+l:n)*x(i+l:n)/Ab (ir i); end(i):每步消去过程总选取按模最大的元素作为主元:取11=10手动执行该程序: 消去结束后的矩阵为:8.00006.00001.0000000000015.000003.0000S.OOOO1.000000000015.0000008.00006.00001.00000
15、000015.00000008. 00006.00001.0000000015.000000008.00006.00001. 000000015.0000000008. 00006. 00001. 00000015.00000000008. 00006. 00001.0000015.000000000008. 00006. 00001.000015.0000000000008. 00006.000014.0000000000000-0.0156-0.0156解得线性方程组的解为:ans =1.0000 1.0000 1.00001.00001.00001.0000 1.0000 1.0000
16、1.0000 1.00001.0000 1.0000取11=20运行的结果为:Ab =(1m 15 加碎I5.1(0)1.0KO(10001000(10(1(1(10LtOM0%.(1000100(10(1(1(11述:001/35:黝0001000(0(1(1(115虢00(1.(0001100(10(15;00(000邮1.(000(0(1(1(1100(100011.0LK0)0(10(1(1(105.K6500(10001111(|.|(|(10(1(1(115.(000(100010L0I101MM10(1品则00(0001100训L(I)M0(15.(00(0001000(侬:(1
17、5.(0200(000100(11(0)1,)(15.K0100(10001100(1011)111(115.(0)100(1000100(10(1酬.(105.(0M00(10001100(10(1(1,,硼1.MI05.(0M00(0001000(10(1(1(1.(0)15.(0)00(000100(10(1J.W)I,K05,K000(10001000(10(1J,K0解得线性方程组的解为:ans =1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.00001.0000 1.0000 1.00
18、00 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000(ii)每步消去过程总选取按模最小的元素作为主元:取11=10手动执行该程序: 消去结束后的矩阵为:6. 00001. 0000000000007.00000d. 66671.000000000005.6667004. 2S571.00000000005.28570004.13331.0000000005. 133300004.06451.000000005.0645000004.03171.00000005.03170000004.01571. 0000005.015700000004. 00781. 0
19、00005.0078000000004. 00391.00005.00390000000004.00204.00(20解得线性方程组的解为:ans =1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.00001.0000 1.0000取n=20运行的结果为: 消去结束后的矩阵为:工工s 1也姆IIGima 15 thro啦 21!.):(00001:00 0(fl000?.0M0j)j001100 6(fl000遍:0r茄i.):001:000(0100105嘛000w01:000(fl0005.13330Q00腐
20、1就1:00 0(fl0005.0&J50Q000阿:00 0(0100105.0317000000加鼠L旗000(fl0005.015;0000001i)n1.000(fl0005.007BQ0Q0111.01獭6(1(0100105.00390000001:011您(flfl00fl05.000000001:00 1!0L):(fl0005.00100000001:0001M6L):(0100105.0(05J00061(00 0(i):CL:(flfl00fl00000001:00 0(.o(no0005. OMI004(001100 6(L0W1LOON00105.00)1000000
21、1:000(flMl.MOO0fl0UWO0000001:000(flL伽。】.Q伽05.00100Q00001:00 0(010MLOOM05.0W00Q00061:00 0(flfl004.00Nl.MOOUWO0000001:000(fl0004. WOOLOMO解得线性方程组的解为:ans =1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.00001.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000由上述两种选取主元的方
22、法比较可知,采用每一步消去过程总选取按模最大或按 模尽可能大的元素作为主元的选取方法最终得到的方程组的解更加精确,这是因 为在计算过程中人为的避免了大数除小数而造成的误差的扩大,而每一步消去过 程总选取按模最小或按模尽可能小的元素作为主元的选取方法最终得到的解会 有误差,而误差的产生就是由于上诉原因而造成了。所以在实际计算过程中,必 须考察计算模型的可行性。3采用全选主元消去进行计算全选主元和列选主元消去法的区别在于全选主元不仅要用到列选主元,而且 需要行选绝对值最大的元,这样的麻烦之处就在于不仅需要进行线性方程顺序的 变换,而且在解方程的过程中未知数的顺序也发生了相应的改变,这就给程序的 编
23、写和运算的时间的上带来了很大的麻烦。全选主元消去法的基本思路为:(1)先构造需要计算的矩阵,得到增广矩阵Ab(2)将每次更新后系数矩阵的每一列的绝对值最大的元素换至对角线上(绝对 值最大的元素必须在对角线的下方),矩阵b中的元素也随之改变。(3)然后将更新后系数矩阵的每行中的绝对值最大元素换至对角线上(该绝对 值最大元素必须要在主元的右侧)。先判断主元是否为0,然后利用此主元逐行 消去此主元所在的列中的元素,矩阵b中的元素也随之改变。(4)经过n-1步运算过后,矩阵A就变换成为一个三角矩阵。(5)逐次回代,就能计算出方程组的解。采用全选主元Gauss消去法编写的matlab程序为:functi
24、on x=gauss(n)dispL请输入构造的矩阵的阶数(10/20),)n=input ( 1);disp构造矩阵为A=,)A = diag(6*ones(1,n)+diag(ones(lz n-1)r 1)+diag(8*ones(lf n-1),-1)disp (,由A构造出矩阵b= *)b = A*ones(nz1)m, n =size (A);dispL增广矩阵为:,)Ab=A bfor i=l:n-1zhuyuan = max(max(abs(A(i:nf i:n); for r = i:nfor t = i:nif zhuyuan = abs(A(r,t) zhuhang =
25、r;zhulie = t;endendendph = A(i,:);A(i,:) = A(zhuhang:);A(zhuhang,:) = ph;b = bf ;bb = b(i);b(i) = b(zhuhang);b(zhuhang) = bb;b = bf ;pl = A(: , i);A(:,i) = A ( : z zhulie);A (:,zhulie) = pl;Ab = Az b;zhuyuan = Ab(iz i);for k=i+l:nAb(kf i: (n+1)=Ab(k,i: (n+1)-(Ab(k,i)/zhuyuan)*Ab(iz i: (n+1);endA = A
26、b(:z l:n);b = Ab(:, (n+1);disp(Ab);pauseend x=zeros(nz1);x(n)=Ab(nz (n+1)/Ab(nz n);for i=n-l:-1:1x(i) = (Ab(iz (n+1)-Ab(izi+l:n)*x(i+l:n)/Ab (ir i); end取11=10手动执行该程序:消去结束后的矩阵为:S.OOOO000000006.000014.000003.00000000000-3.50004.5000008.00006. 00001.00000000015.00000008.00006.00001.0000000015.00000000S
27、.OOOO6.00001. 000000015.0000000008.00006. 00001.00000015.00000000008. 00006. 00001.0000015.000000000008. 00006. 00000.437514.4375000000008. 00001.87509.8750000000000-0.0156-0.0156解得线性方程组的解为:1.0000 1.0000 1.0000 1.0000 1.00001.00001.0000 1.0000 1.0000 1.0000 1.00001.0000取11=20运行的结果为:Ab =况岫15也岫口(ilrnd
28、 也电 1!|.( I )040 (I ( I )0446 (I I (I I (I 瑜(I.1III I 000()( I I 0000 (I I (I I (I -5,5(0;,洲(1 11)1 必加做 0(I0000(iI(iI(i0!5.(i)(i(11。& a( 1.HII I il 0006 (I i (I i (i fl i5.W(i(I1000&鲍MW1.11110000(ii(ii(iiI5,d(i o o o (i u(n Kin i.i) oooo (i i (i i (i i日咖 (I000(000(Il.i)L0)00(II(I0(I0!5.(i)(i111。1 l) S LB 6 (i fl (i fl (i fl i5.W(i (I 000 (i ( I 0 i)迎 1领 (I i (i i (i i I5,d(I i 000 (i ( I i 00 2硼 &暇 i,咖 i (i i (i i i5.W(iI 13000 f I 13000
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 个体企业采购报销制度
- 设计与采购管理制度
- 美团招商采购岗轮岗制度
- 采购索证索票及台账制度
- 设备采购例会制度
- 商超采购流程与制度
- 采购管理制度工作流程
- 新增中药饮片采购制度
- 企业采购制度管理制度
- 某企业采购制度及流程
- 硅酸镁铝增稠触变性及其农药中的应用探讨-陈杰
- 开平事业单位笔试真题
- 水电水泵表面涂覆要求
- 共青团光辉历史简洁版
- 事业单位统考-综合应用能力C类 梳理精华
- GB/T 14536.1-2022电自动控制器第1部分:通用要求
- GB/T 14689-2008技术制图图纸幅面和格式
- FZ/T 07008-2020定形机热平衡测试与计算方法
- 安全文明施工措施费专款专用的方案
- 教师考试 思政资料
- 复方氨基酸注射液
评论
0/150
提交评论