数值分析试验1_第1页
数值分析试验1_第2页
数值分析试验1_第3页
数值分析试验1_第4页
数值分析试验1_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、东北大学数学实验中央实验报告标准暂行1、 每个学生每个实验工程一份实验报告.2、 实验报告内容一般包括以下几个内容:1 .实验工程名称2 .实验目的和要求3 .实验原理4 .实验内容及步骤5 .实验数据记录和处理6 .实验结果与分析含以上1、2、3、4、5、6项,需经指导教师签字认可,附在 实验报告后注:各专业各课程的实验报告内容与格式可由指导教师根据实验具体情况做出要求.3、 实验报告第一页按学院统一的实验报告格式书写, 附页用A4纸书写,字迹工整,曲线要画在座标纸上,线路图要整洁、清楚不得徒手画.如打印也应采用统一 的实验报告的版头A4纸.4、 每学期将拟存档的学生实验报告按课程、实验工程

2、分类装订成册,即每个实验工程每门课程的所有实验报告装订成一本.装订线在左侧,第一页加订实验报告封 皮.5、 东北大学理学院数学实验报告模板范本,本实验报告双面打印附后.理学院数学实验中央实验报告专业:软件工程姓名: 黄蕾 学号:成绩实验地及数学实验中央指导教师签名:实验名称:数值分析实验题 实验目的:1 .通过实验更加深刻理解 Gauss消去过程,比较顺序Gauss消元法和列主元Gauss消元法两个算法的稳定性.2 .记录并分析不同的问题及消去过程中选择不同的主元时计算结果的差 异,说明主元素的选取在消去过程中的作用.实验内容及步骤:内容:考虑线性方程组 Ax=b, AwRn*n,bwRn,编

3、制一个能自动选取主元,又能手动选取主元的求解线性代数方程组的Gauss消去过程.715(1)取矩阵A=,那么有精确解x* =(1, 1,1T.15.14 一取n=10计算矩阵的条件数.分别用顺序 Gauss消元法和列主元Gauss消元法求解,结果如何?(2)现选择程序中手动选取主元的功能,每步消去过程都选取模最小或按模尽可能小的元素作为主元进行消元,观察并记录计算结果,假设每步消去 过程总选取按模最大的元素作为主元,结果又如何分析实验的结果.(3)取矩阵阶数n=20或者更大,重复上述实验过程,观察记录并分析不同的问题及消去过程中选择不同的主元时计算结果的差异,说明主元素的选取在消去过程中的作用

4、.(4)选取其他你感兴趣的问题或者随机生成的矩阵,计算其条件数,重复上述实验,观察记录并分析实验的结果.步骤:1 .顺序Gauss法该方法分为消去和回代两个步骤.用顺序 Gauss消去法,必须要求a,0,否那么会造成很大的误差.消元计算lik=aik/akki=k+1, - n-1计算该次初等变换后的矩阵形式aij=aij-lik*akj,j=k,k+1,-n-1bi=bi-lik*bk2 .列主元Gauss消去法与Gauss消去法相比,列主元Gauss消去法只是在进入每一步消元之前进行主元的选择.对k=0,2,.,n-2, 执行选主元,即确定下标使得I叩闵I = maxnajko在迭代过程中

5、需要对最后一行进行直接计算,xn-1=bn-1/an-1n-1 对于 m=n-2,n-2 0,自下而上计算最终解,其公式为那么=吧三彳*叫型输出x. 工火叫叫3 .选取模尽可能小的非零元素为主元4 .手动选取主元实验数据记录及处理:(1)计算条件数:cond2(A)=|A|1211A%x(A?) ,当 n=10时,i min( A A)cond2(A) =1.7276父103,可见矩阵的条件数略大.实验数据:矩阵A的1-条件数:2557.500000矩阵A的2-条件数:1727.556025矩阵A的无穷-条件数:2557.500000结果如下:顺序消去法列主兀Gauss消去法选取模最小的元素为

6、主元X(1)1.0000000000000001.0000000000000001.000000000000000X(2)1.0000000000000001.0000000000000001.000000000000000X(3)1.0000000000000001.0000000000000001.000000000000000X(4)1.0000000000000001.0000000000000001.000000000000000X(5)1.0000000000000001.000000000000000X(6)1.0000000000000041.0000000000000001.

7、000000000000000X(7)1.0000000000000001.000000000000000X(8)1.0000000000000121.0000000000000001.000000000000000X(9)1.0000000000000001.000000000000000X(10)1.0000000000000281.0000000000000001.000000000000000(2)矩阵阶数n=20时,实验结果如下:顺序消去法列主兀Gauss消去法选取模最小的元素为主元X(1)1.0000000000000001.0000000000000001.00000000000

8、0000X(2)1.0000000000000001.0000000000000001.000000000000000X(3)1.0000000000000001.0000000000000001.000000000000000X(4)1.0000000000000011.0000000000000001.000000000000000X(5)1.0000000000000001.000000000000000X(6)1.0000000000000041.0000000000000001.000000000000000X(7)1.0000000000000001.000000000000000

9、X(8)1.0000000000000141.0000000000000001.000000000000000X(9)1.0000000000000001.000000000000000X(10)1.0000000000000571.0000000000000001.000000000000000X(11)1.0000000000000001.000000000000000X(12)1.0000000000002271.0000000000000001.000000000000000X(13)1.0000000000000001.000000000000000X(14)1.0000000000

10、009021.0000000000000001.000000000000000X(15)1.0000000000000001.000000000000000X(16)1.0000000000035241.0000000000000001.000000000000000X(17)1.0000000000000001.000000000000000X(18)1.0000000000127321.0000000000000001.000000000000000X(19)1.0000000000000001.000000000000000X(20)1.0000000000291021.00000000

11、00000001.000000000000000此时的条件数为:cond2(A) =1.78979 1036 1.1一 7.118 6 1.115.1(3)假设矩阵为A-+ + +b-*,那么有精确解x*=(1, 1,186 1.115.186 -1 114.11取n=10,实验结果如下:顺序消去法列主兀Gauss消去法选取模最小的元素为主元X(1)X(2)1.000000000000001.000000000000001.00000000001551X(3)X(4)1.0000000000000021.000000000000001.00000000000146X(5)X(6)1.00000

12、0000000001.000000000000001.00000000000012X(7)1.000000000000001.00000000000000X(8)1.000000000000001.000000000000001.00000000000000X(9)1.000000000000001.00000000000000X(10)1.000000000000001.000000000000001.00000000000000实验结果及分析: 由实验结果分析可知,当方程的阶数较小时,用几种方法求得的实验结果 差异不大,但是当方程阶数较大时,如果在消去过程中选择模较小的的主 元,那么会造成

13、很大的误差.几种方法中而列主元消去法能得较好的结果, 列主元精度明显高于顺序 Gauss和模最小的元素作为主元,由于后者主元 素绝对值非常小,使消元乘数绝对值非常大,计算过程中出现大数吃掉小 数的现象,产生了较大的摄入误差,最终导致计算解已完全失真.所以在 计算时,可以选择列主元 Gauss消去法,但是当方程阶数过大时,不能避 免直接计算的误差.代码附件:实验一:歹!J主元 Gauss法:package Excise;public class Lie static double a;static double b;static double x;static double l;static d

14、ouble h;static int n = 3;static int count = 0;public static void main(String arg) double max;int maxn;Scanner sc = new Scanner(System.in);int n = sc.nextInt();x = new doublen;l = new doublenn;h = new doublen;a = new doublenn;for (int i = 0; i < n; i+) for (int j = 0; j < n; j+) if (i = j) aij

15、= 6;if (j >= 1) aij - 1 = 8;if (j < n - 1) aij + 1 = 1;if (i != j && j != (i + 1) aij = 0;for (int i = 0; i < n; i+) for (int j = 0; j < n; j+) b = new doublen;b0 = 7;bn - 1 = 14;for (int i = 1; i < n - 1; i+) bi = 15;for (int i = 0; i < n; i+) for (int i = 0; i < n - 1;

16、 i+) max = aii;maxn = i;for (int j = i + 1; j < n; j+) if (Math.abs(max) < Math.abs(aji) max = aij;maxn = j;if (max = 0) for (int p = 0; p < n; p+) hp = amaxnp; amaxnp = aip; aip = hp;double jh;jh = bmaxn;bmaxn = bi;bi = jh;for (int k = i + 1; k < n; k+) lki = aki / aii;for (int m = i; m

17、 < n; m+) akm = akm - lki * aim; bk = bk - lki * bi;for (int i = 0; i < n; i+) for (int j = 0; j < n; j+) for (int i = 0; i < n; i+) xn - 1 = bn - 1 / an - 1n - 1;for (int m = n - 2; m >= 0; m-) double zj = bm;for (int i = n - 1; i > m; i-) zj = zj - ami * xi;xm = zj / amm;DecimalFormat df = new DecimalFormat("#,#0.000000"); for (int i = 0; i < n; i+) 顺序消去法(主要局部):for (int i = 0; i < n -

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论