- 10
- 0
- 约2.15万字
- 约 29页
- 2016-10-13 发布于贵州
- 举报
西南交通大学《值分析》上机报告
目 录
目 录 1
序 言 (1) 2
1.1 C语言简介及结构 2
1.2 C语言特点及优点 2
1.3 选用原因 3
第一题 4
用雅格比法与高斯-赛德尔迭代法解下列方程组 4
1.1题目 4
1.2原理和思路 4
1.3计算结果与分析 7
第二题 10
松弛因子对SOR法收敛速度的影响 10
2.1题目 10
2.2原理和思路 10
2.3计算结果与分析 12
序 言 (2) 16
第三题 17
利用四阶Runge-Kutta算法求解微分方程的初值问题 17
3.1题目 17
3.2原理和思路 17
3.3计算结果与分析 18
附录1 Jacobi迭代法C语言源程序 21
附录2 Gauss-Seidel迭代法程序代码 23
附录3 SOR迭代法C语言源程序 25
附录4 四阶Runge-Kutta算法程序代码 27
总结与体会 29
本报告系西南交通大学2011级硕士研究生《数值分析》课程的上机实习报告,由本人严格按照实习要求独立完成。
序 言 (1)
在第一次给定的四道上机题中,我选择的是第三题(雅格比迭代法、高斯—赛德尔迭代法求解方程组的问题)和第四题(松弛因子对SOR法收敛速度的影响),本次上机实习基于Microsoft Visual Studio.NET平台进行程序建立,采用C语言面向对象语言,从界面设计到结果输出,完成一个具有针对性的可视化Windows应用程序的编制。
在此序言中,我将阐述C语言的基本结构、优特点以及选用这种语言进行编程的主要原因。
1.1C语言简介及结构
C语言是一种计算机程序设计语言由美国贝尔研究所的D.M.Ritchie于1972年推出。1978后,C语言已先后被移植到大、中、小及微型机上既有高级语言的特点,又具有汇编语言的特点。它可以作为工作系统设计语言,编写系统应用程序也可以作为应用程序设计语言,编写不依赖计算机硬件的应用程序。应用范围广泛,具备很强的数据处理能力,不仅仅是在软件开发上,而且各类科研都需要用到C语言,适于编写系统软件三维二维图形和动画。一个C语言源程序可以由一个或多个源文件组成每个源文件可由一个或多个函数组成一个源程序不论由多少个文件组成,都有一个且只能有一个main函数,即主函数源程序中可以有预处理命令(包括include 命令、if命令、pragma命令),预处理命令通常应放在源文件或源程序的最前面每一个说明,每一个语句都必须以分号结尾。但预处理命令,函数头和花括号“}”之后不能加分号标识符,关键字之间必须至少加一个空格以示间隔。若已有明显的间隔符,也可不再加空格来间隔。C语言作为一种优秀的编程语言,使用起来灵活方便,程序执行效率高,可移植性好,可以把程序写为函数,方便多次调用;
(2)可视化交互性:C语言可创建Windows应用程序,可视性程度高,与使用者的交互简单,有利于体会程序的设计过程,尤其是在编写数值分析的各种算法过程中,可以清晰的理解算法的实现过程,使深刻理解该算法;
(3)个人基础:作为一名工科学生,曾在大学期间有系统的学习过C语言,具备一定的理论基础和实践操作能力,能够较好的应用该语言进行运算,有助于上机实习过程的顺利完成。
鉴于以上考量,我决定选择C语言进行编程。
第一题
用雅格比法与高斯-赛德尔迭代法解下列方程组
1.1题目
【3】用雅格比法与高斯-赛德尔迭代法解下列方程组Ax=b,研究其收敛性,上机验证理论分析是否正确,比较它们的收敛速度,观察右端项对迭代收敛有无影响。
(1)A行分别为A1=[6,2,-1],A2=[1,4,-2],A3=[-3,1,4];b1=[-3,2,4]T,b2=[100,-200,345]T,
(2) A行分别为A1=[1,0,8,0.8],A2=[0.8,1,0.8],A3=[0.8,0.8,1];b1=[3,2,1] T, b2=[5,0,-10]T,
(3)A行分别为A1=[1,3],A2=[-7,1];b=[4,6]T.
1.2原理和思路
1.2.1 基本原理
(1)Jacobi迭代法
设有n阶方程组Ax=b,若系数矩阵非奇异,且 (i = 1, 2,…, n),将方程组改写成同解方程组:
然后写成迭代格式:
上式也可以简单地写为:
对以上两式给定一组任意初值后,经反复迭代可得到一向量序列,如果x (k)收敛于,则就是方程组Ax=b的解,该方法称为雅克比(Jacobi)迭代法。
设D = diag (a11, a22, …, ann),将Ax=b改写为: AX = (D – (D - A)) x = b,DX = (D - A) x + b,X = (I – D-1A) x + D-1b。记B = I
原创力文档

文档评论(0)