东北大学数值分析上机实验报告_第1页
东北大学数值分析上机实验报告_第2页
东北大学数值分析上机实验报告_第3页
东北大学数值分析上机实验报告_第4页
东北大学数值分析上机实验报告_第5页
已阅读5页,还剩22页未读, 继续免费阅读

下载本文档

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

文档简介

1、数值分析上机实验报告课题三解线性方程组的迭代法学生姓名:学生系别:学生班级:日 期:上机实践报告【运行环境】软件:Windows、Microsoft Visual C+ 6.0PC-台【问题提出】对课题二所列目的和意义的线性方程组,试分别选用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等,试看对算法收敛性的影响,并能找出你

2、所选用的松 弛因子的最佳者;4、给出各种算法的设计程序和计算结果。【目的意义】1、通过上机计算体会迭代法求解线性方程组的特点,并能和消去法 比较;2、运用所学的迭代法算法,解决各类线性方程组,编出算法程序;3、体会上机计算时,终止步骤 (予给的迭代次数),对迭 代法敛散性的意义;4、体会初始解x,松弛因子的选取,对计算结果的影响。【程序代码】/Jacobi.cpp#include#includeusing namespace std;#define N 15/最大迭代次数#define P 10/矩 阵的阶数/#define P 8static double a1010 = 4,2,-3,-1

3、,2,1,0,0,0,0,-5,-3,6,5,0,1,0,0,-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,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,-7,13,9,2,0,12,4,0,0,-1,8,-3,-24,-8,6,3,-1;static double b10 = 5,12,3,2,3,46,13,38,19,-21;static double x_jing10 = 1,-1,0,1,2,0,3,1,-1,

4、2;/m 确解static double x010 = 0,0,0,0,0,0,0,0,0,0;static double x110;static int k,i,j;/static double a88 = 4,2,-4,0,2,4,0,0,/ 矩阵B/-4,-1,14,1,-8,-3,5,6,0,-2,1,6,-1,-4,-3,3,-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;/static double b8 = 0,-6,6,23,11,-22,-15,45;/static do

5、uble x_jing8 = 1,-1,0,2,1,-1,0,2;/static double x08 = 0,0,0,0,0,0,0,0;/static double x18;/static double a1010 = 4,-1,0,0,0,0,0,0,0,0,/ 矩阵C/-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,-1,0,0,0,0,0,0,0,0,-1,4,-1,0,0,0,0,0

6、,0,0,0,-1,4,-1,0,0,0,0,0,0,0,0,-1,4;/static double b10 = 7,5,-13,2,6,-12,14,-4,5,-5;/static double x_jing10 = 2,1,-3,0,1,-2,3,0,1,-1;/static double x010 = 0,0,0,0,0,0,0,0,0,0;double Max(int y)/求算该次迭代的误差double sum,max;for (i=0;iP;i+)sum=0;for (j=0;jP;j+)sum+=aij*x0j;x1i=x0i + (bi-sum)/aii;max二fabs(x_

7、jing0-x10);for (i=1;imax)max二fabs(x_jingi-x1i);cout第y次迭代的误差为maxendl;return max;vo i d ma i n ()(doubIe e 3 = 10e-3, 10e-4, 10e-5;doubIe max;i nt t;cout请选择精确度:0、10e-3 1、10e-4 2、103-5 ;c i nt;for (k=0;kN;k+)(max=Max (k);if (maxet)/判断精度是否符合要求,若符合则跳出程序,否则继续迭代 k=k;break;e I se(for (i=0; iP; i+)x0i=x1i;if

8、 (kN)/输出结果(cout迭代次数为kendl ;cout方程组的解为”endl ;for (i=0; iP; i+)cout x1 i end I ;e I se(cout迭代次数超过N迭代终止! end I ;cout方程组的解为”endl ;for (i=0; iP; i+)cout x1 L i end I ;/Gauss-Se idol, cpp#i ncIude#i ncIudeus i ng namespace std;#def ine N 15/最大迭代次数/#def i ne P 10/矩阵的阶数#define P 8 /static double a1010 = 4,2

9、,-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;/static double b10 = 5,12,3,2,3,46,13,38,19,-21;/static dou

10、ble x_jing10 = 1,-1,0,1,2,0,3,1,-1,2;/m 确解/static double x010 = 0,0,0,0,0,0,0,0,0,0;/static double x110;static int k,i,j;static double a88 = 4,2,-4,0,2,4,0,0,-1,-2,1,3,2,0, -4,-1,14,1,-8,-3,5,6, 0,-2,1,6,-1,-4,-3,3,-8,-1,22,4,-10,-3,-3,-4,4,11,1,-4, 0,2,5,-3,-10,1,14,2, 0,0,6,3,-3,-4,2,19;static dou

11、ble b8 = 0,-6,6,23,11,-22,-15,45; static double x_jing8 = 1,-1,0,2,1,-1,0,2; static double x08 = 0,0,0,0,0,0,0,0;static double x18;/static double a1010 = 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,/矩阵C0,0,0,-1,4,-1,0,0,0,0,/0,0,0,0,-1,4,-1,0,0,0,/0,0,0,

12、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;/static double b10 = 7,5,-13,2,6,-12,14,-4,5,-5;/static double x_jing10 = 2,1,-3,0,1,-2,3,0,1,-1;/m 确解/static double x010 = 0,0,0,0,0,0,0,0,0,0;double Max(int y)/求算该次迭代的误差 double sum1,sum2,max;for (i=0;iP;i+)sum1=0;su

13、m2=0;for (j=0;j=i-1;j+)sum1+=aij*x1j;for (j=i+1;jP;j+)sum2+=aij*x0j;x1i = (bi-sum1-sum2)/aii;max二fabs(x_jing0-x10);for (i=1;imax)max二fabs(x_jingi-x1i);cout第y次迭代的误差为maxendl;return max;void main()double e3 = 10e-3,10e-4,10e-5;double max;int t;coutt;for (k=0;kN;k+)max=Max(k);if (maxet)/判断精度是否符合要求,若符合则跳

14、出程序,否则继续迭代 k=k;break;elsefor (i=0;iP;i+) x0i=x1i;if (kN)/输出结果(cout迭代次数为kendl;cout方程组的解为endl;for (i=0;iP;i+)cout x1iendl;else(cout迭代次数超过N迭代终止!endl;cout方程组的解为endl;for (i=0;iP;i+)cout x1iendl;/SOR.cpp#include#include using namespace std;#define N 15/最大迭代次数#define P 10/矩 阵的阶数/#define P 8/static double/s

15、tatic/static/static矩阵Adoubledoubledoublea1010 = 4,2,-3,-1,2,1,0,0,0,0,-5,-3,6,5,0,1,0,0,-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,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,-7,13,9,2,0,12,4, 0,0,-1,8,-3,-24,-8,6,3,-1;b10 = 5,12,3,2,3,46,13,38,19,-

16、21;x_jing10 = 1,-1,0,1,2,0,3,1,-1,2;/m 确解 x010 = 0,0,0,0,0,0,0,0,0,0;static double x1P;static double sumxP;static int k,i,j;/static double a88 = 4,2,-4,0,2,4,0,0,/2,2,-1,-2,1,3,2,0,/ 矩阵B/-4,-1,14,1,-8,-3,5,6,0,-2,1,6,-1,-4,-3,3,-8,-1,22,4,-10,-3,-3,-4,4,11,1,-4,0,2,5,-3,-10,1,14,2,0,0,6,3,-3,-4,2,19

17、;/static double b8 = 0,-6,6,23,11,-22,-15,45;/static double x_jing8 = 1,-1,0,2,1,-1,0,2;/static double x08 = 0,0,0,0,0,0,0,0;/static double x18;static double a1010 = 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,-1,0,0,0,0,0

18、,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;static double b10 = 7,5,-13,2,6,-12,14,-4,5,-5;static double x_jing10 = 2,1,-3,0,1,-2,3,0,1,-1;/m 确解 static double x010 = 0,0,0,0,0,0,0,0,0,0;double Max(double w,double y)double sum1,sum2,max;for (i=0;iP;i+)sum1=0;su

19、m2=0;for (j=0;j=i-1;j+)sum1+=aij*x1j;for (j=i;jP;j+)sum2+=aij*x0j;sumxi=w*(bi-sum1-sum2)/aii;x1i=x0i+sumxi;max二fabs(x_jing0-x10);for (i=1;imax)max二fabs(x_jingi-x1i);cout第y次迭代的误差为maxendl;return max;void main()(double e3 = 10e-3,10e-4,10e-5;double w5 = 0.8,0.9,1,1.1,1.2;double max;int t,l;coutt;coutl;

20、for (k=0;kN;k+)max二Max(wl,k);if (maxet)/判断精度是否符合要求,若符合则跳出程序,否则继续迭代 k=k;break;elsefor (i=0;iP;i+)x0i=x1i;if (kN)/输出结果cout迭代次数为kendl;cout方程组的解为endl;for (i=0;iP;i+)cout x1iendl;elsecout迭代次数超过N迭代终止!endl;cout方程组的解为endl;for (i=0;iP;i+)cout x1iBS8 5.54133e+007 -4.11661e+008 -7.21333e+008 -8.7378e+008 -1.19

21、227e+009 1.67667e+009 1.29368B+BQ8 1.48381e+010Ppess any key to cantinue思 0. 10e-3 1. 10e-4 差 7288.9972、 103-5 0蠢吹注代的谖差为皿集3次跌代的谖差为L 24444e +006 笫4次医代的误差加-1366膈+0W7 兼孜迭代的谖差为3.65458e +808 童6次迭代的模: 客次迭代的诺 第8灰跌代的谖差为L 8345e+012 集9次法杓的误差知.14105e *01? 聂欧迭代的啜差为5.37818e+014 翁次迭代的谖差9.20862e+015 隐2次迭*弋的谖差1.576

22、726*017 熊13次迭代的谩差2.69969e+018 第14次迭代的误差4.62247e+019 伐代次数超过姑迭代终上, 厉程组的解为.25704e+009.07142e+011-l.S7557e+0171.36212e+018 -2.83099t+018-3.&8169e+0181.94152e+018-2.71057e+0181.3B892e+0192.RS444ft+R174.62247e+B19Press an 1/ key to continueSOR迭代隋选泾 11. 106-42. 103-50晴选邃松独因子淘、0.8 1. 8.9 2、1 3、1.1 4、1.2 0 篡

23、皿次法代瞩差为 蠢次跌代的谖差1084.74 柬次迭代的谖差8639.69 鑫次迭代的谗差5G021.2 国4次迭代的谖差为313239鹿S孜迭代的谖差1.39395e+B06 策6次迭代的谖差为3 .bbb3e+MUb 用?次迭代的谖差为1 40367e +807 新次跌代的误差为3.17051e +808 盈?次迭代的3.18162e+809第1欧迭长的误差为2.46641e+010 堂,次迭托的得差为1 -A1417ft+R11 窟2次迭代而谖差J8.98188e+011 第13次迭代的谖差为4.00264e +012 常Id次迭代的误差04729c+013 我代次数超过姑迭代终上, 号

24、程组的解为-2.67995e+0112.8S283e+0101.4S395e+012-2.49931e+012-2.64258e+0121.23805e+012-1.0491e+0123.6S027e+012-G.40798+011-1.04729e+013Press any key to continue-42-40240 0 0 一22-1-2132 0-6-4-1141-S-35 &胃360-216-1-4-S32321-S-1224-10-31143-3-44111 - 4-22025-3-10114 2-15_0063-3-4219 _亳_45 _方程8Jacobi迭代10e45 7

25、 3 80 8 4 -6 6?0 4上 9 0d- 2 5;:I 1 2.- II I I I I 9h,* -LT* -Lr*.L 即却.却.切勺w.可切.切切4叩.斗斗.斗.不 e差差差罪差差差差罪差器筮警*51_ SP隋梧培梧榕隋梧培虫 勺勺.勺勺.勺勺勺.勺勺.白白自白自.|-_1,项 g野林”林登野林”林迭迭迭祛迭数的能 嘉辎*谜藐谜*谜次次次次次次组俺 岑-l.1.f.*-.w*r.*1114747?4747卜勺 切&.寸切&力切斗斗44.斗.巾 * 0 4可.斗斗斗耳/占三占E占-匚qE占-匚44、 0 h差差差差差差差差差差|醇暮 急铲溶梧睹落格梧梧培落撬防恤眄防血 供瞽的的的

26、的的的的的的擀籍箱切籍&殍 毒器邮麟舞1S1眺必 无一先一次次次次次次次次次次毗1?2?静4?聂岂.1 vrv01234567891111 1 MT-i 1 E.udnn.k71II71ll-nTIL-nTI1171.Ln.!II71ll-nTIIn1171.Ln -I-II71ll-nTIU1171-Ll.r- J2 G 117 0 6 0 2153121111118 8 8 f 111111止 LLJ.W 0 0 0 .i1.60892-1.022730.605267971.99659 ess any key to continue4-10000T4-10000-14-10000-14-1

27、0方程C000-14-10000-1400000-1000000000000_00000000000 0 一00 x1x27一50000X3-130000X420000X5_6-1000X6-124-100X714-14-10X-40-14-1X8X500-14 _9X1- 10_- 5 _2、 103-5Jacobi迭代度SS呢蔓为严T L项I 金次迭弋的喉差为 条次迭弋的噜差加一冲”6 剿次迭弋的谖差0.0898438 童4次送代的您差福-心明91 聂次迭弋曲谖差0.8178223 兼次迭代的谴差福-啊胴心4 惬代次数为6 方程组的解为1.99988 1 BBB85 -2.99908 -0

28、.RW1S9209 1.00342 T _丽牌6 3.0047 一日一 *解丽664 1.00323Press any key to cont in tieHE:0. 10e-3 1.次迭KKW差为日3灰造代欧谟差0.00912642 花次薮为3程组的解为1.999451.00626-3.00517-0.00755310.990874-2.002743.000240.0005465931.00026-0.999935pess any Key to continuelQe-4次:1o汜 y n a75 8迭迭迭洗迭迭迭迭 次次次次次次次次 -1 2 3 4 5 6?1 0 IrjJ.jj.jlj

29、.jj.jj.jj.- .-.-I/ 一差差差差差差差差 谁溶梧梧落谿落悟哒 Ll.h .L.h . Jbh. .bh、七-一* L HUT 1- - - 1- - - u - - 1,- - - 翌代代代代代代代-E兰2 - 1 -321-2.99781.0B479俱迭代的曙差 以送代的曙差 3次迭代的谖差 砍迭代的建差 S次迭代的谟差 *次薮知 程组的解为 2.0042701 52 17 13 43 9 4-875e- 4 1_M- -M- 1 0 0 、爪为为为为为0R差差差差差蔚一&为主 QE17Z:AAJyT迭迭送迭膘明w破以密菽仰曲10e-4.9 2、2. 103-5 1 3、 1.1 4、 1.2SOR迭代(选取了不同的松弛因子)为虬6S6 0.223005 0.0852767 0.0370907 0.0163138 0.00703802-0.002187090.993967-2.007042.?9484-0.002482790.999232-1.0001

温馨提示

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

评论

0/150

提交评论