预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共18页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

《数值分析》上机实验报告 课题三解线性方程组的迭代法 学生姓名: 学生系别: 学生班级: 日期: 上机实践报告 【运行环境】 软件:Windows、MicrosoftVisualC++6.0 PC一台 【问题提出】 对课题二所列目的和意义的线性方程组,试分别选用Jacobi迭代法,Gauss-Seidol迭代法和SOR方法计算其解。 【实践要求】 1、体会迭代法求解线性方程组,并能与消去法做比较; 2、分别对不同精度要求,如ε=10-3,10-4,10-5由迭代次数体会该迭代法的收敛快慢; 3、对方程组2,3使用SOR方法时,选取松弛因子=0.8,0.9,1,1.1,1.2等,试看对算法收敛性的影响,并能找出你所选用的松弛因子的最佳者; 4、给出各种算法的设计程序和计算结果。 【目的意义】 1、通过上机计算体会迭代法求解线性方程组的特点,并能和消去法比较; 2、运用所学的迭代法算法,解决各类线性方程组,编出算法程序; 3、体会上机计算时,终止步骤<或k>(予给的迭代次数),对迭代法敛散性的意义; 4、体会初始解x,松弛因子的选取,对计算结果的影响。 【程序代码】 //Jacobi.cpp #include<iostream> #include<cmath> usingnamespacestd; #defineN15//最大迭代次数 #defineP10//矩阵的阶数 //#defineP8 staticdoublea[10][10]={4,2,-3,-1,2,1,0,0,0,0, 8,6,-5,-3,6,5,0,1,0,0, 4,2,-2,-1,3,2,-1,0,3,1, 0,-2,1,5,-1,3,-1,1,9,4, -4,2,6,-1,6,7,-3,3,2,3, 8,6,-8,5,7,17,2,6,-3,5, 0,2,-1,3,-4,2,5,3,0,1, 16,10,-11,-9,17,34,2,-1,2,2, 4,6,2,-7,13,9,2,0,12,4, 0,0,-1,8,-3,-24,-8,6,3,-1}; staticdoubleb[10]={5,12,3,2,3,46,13,38,19,-21}; staticdoublex_jing[10]={1,-1,0,1,2,0,3,1,-1,2};//精确解 staticdoublex0[10]={0,0,0,0,0,0,0,0,0,0}; staticdoublex1[10]; staticintk,i,j; //staticdoublea[8][8]={4,2,-4,0,2,4,0,0, // 2,2,-1,-2,1,3,2,0, // -4,-1,14,1,-8,-3,5,6, // 矩阵B 0,-2,1,6,-1,-4,-3,3, // 2,1,-8,-1,22,4,-10,-3, // 4,3,-3,-4,4,11,1,-4, // 0,2,5,-3,-10,1,14,2, // 0,0,6,3,-3,-4,2,19}; //staticdoubleb[8]={0,-6,6,23,11,-22,-15,45}; //staticdoublex_jing[8]={1,-1,0,2,1,-1,0,2}; //staticdoublex0[8]={0,0,0,0,0,0,0,0}; //staticdoublex1[8]; //staticdoublea[10][10]={4,-1,0,0,0,0,0,0,0,0, // -1,4,-1,0,0,0,0,0,0,0, // 0,-1,4,-1,0,0,0,0,0,0, // 0,0,-1,4,-1,0,0,0,0,0, // 矩阵C 0,0,0,-1,4,-1,0,0,0,0, // 0,0,0,0,-1,4,-1,0,0,0, // 0,0,0,0,0,-1,4,-1,0,0, // 0,0,0,0,0,0,-1,4,-1,0, // 0,0,0,0,0,0,0,-1,4,-1, // 0,0,0,0,0,0,0,0,-1,4}; //staticdoubleb[10]={7,5,-13,2,6,-12,14,-4,5,-5}; //staticdoublex_jing[10]={2,1,-3,0,1,-2,3,0,1,-1}; //staticdoublex0[10]={0,0,