西南交通大学研究生数值分析作业

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

数值分析上机报告

指导教师:赵海良

班级:

姓名:

学号:

电话:

2011年12月

随着计算机技术的迅速发展,数值分析在工程技术领域中的应用越来越广泛,并且成为数学与计算机之间的桥梁。要解决工程问题,往往需要处理很多数学模型,不仅要研究各种数学问题的数值解法,同时也要分析所用的数值解法在理论上的合理性,如解法所产生的误差能否满足精度要求:解法是否稳定、是否收敛及熟练的速度等。

由于工程实际中所遇到的数学模型求解过程迭代次数很多,计算量很大,所以需要借助如MATLAB,C++,VB,JA V A的辅助软件来解决,得到一个满足误差限的解。本文所计算题目,均采用C++编程。C++是一种静态数据类型检查的、支持多重编程范式的通用程序设计语言。它支持过程化程序设计、数据抽象、面向对象程序设计、制作图标等等泛型程序设计等多种程序设计风格,在实际工程中得到了广泛应用,对解决一些小型数学迭代问题,C++软件精度已满足相应的精度。

本文使用C++对牛顿法、牛顿-Steffensen法对方程求解,对雅格比法、高斯-赛德尔迭代法求解方程组迭代求解,对Ru n ge-Kutt a 4阶算法进行编程,并通过实例求解验证了其可行性,并使用不同方法对计算进行比较,得出不同方法的收敛性与迭代次数的多少,比较不同方法之间的优缺性,比较各种方法的精确度和解的收敛速度。

目录

第一章牛顿法和牛顿-Steffensen法迭代求解的比较 (1)

1.1 计算题目 (1)

1.2 计算过程和结果 (1)

1.3 结果分析 (2)

第二章 Jacobi迭代法与Causs-Seidel迭代法迭代求解的比较 (2)

2.1 计算题目 (2)

2.2 计算过程与结果 (2)

2.3 结果分析 (3)

第三章 Ru n ge-Kutt a 4阶算法中不同步长对稳定区间的作用 (4)

3.1 计算题目 (4)

3.2 计算过程与结果 (4)

3.3 结果分析 (4)

总结 (5)

附件 (6)

附件 1(1.1第一问牛顿法) (6)

附件 2(1.1第一问牛顿-Steffensen法) (6)

附件 3(1.1第二问牛顿法) (6)

附件 4(1.1第二问牛顿-Steffensen法) (7)

附件 5(2.1 Jacobi迭代法) (7)

附件 6(2.1Causs-Seidel迭代法) (8)

附件 7(3.1 Ru n ge-Kutt a 4阶算法) (9)

第一章 牛顿法和牛顿-Steffensen 法迭代求解的比较

1.1 计算题目

分别用牛顿法,及基于牛顿算法下的Steffensen 加速法

(1) 求ln(x +sin x )=0的根。初值x0分别取0.1, 1,1.5, 2, 4进行计算。 (2) 求sin x =0的根。初值x0分别取1,1.4,1.6, 1.8,3进行计算。 分析其中遇到的现象与问题。

1.2计算过程和结果

1.对方程ln(x +sin x )=0,其导数有些复杂,我们可以对其进行变形,即求解x+sinx=1的解。使用牛顿法,令1sin )(-+=x x x f ,则x x f cos 1)(+=',直至

51101||-+⨯<-k k x x 时,结束迭代;然后再使用基于牛顿法的Steffensen 加速法进行计算,直至51101||-+⨯<-k k x x 时,结束迭代。其迭代结果与迭代次数如下表所示(注N1为牛顿法迭代次数,N2为基于牛顿法Steffensen 加速法迭代次数):

2.对方程sin x =0,使用牛顿法时,令x x f sin )(=,使用牛顿法计算,直至

51101||-+⨯<-k k x x 时,结束迭代;然后依据Steffensen 加速法进行编程计算,直至51101||-+⨯<-k k x x 时,结束迭代。其迭代结果与迭代次数如下表所示:

1.3结果分析

(1)从牛顿与Steffensen 加速法可以看出,牛顿—Steffensen 加速法迭代速度明显快于牛顿加速法,从计算结果可以看出,x=0.510973处取得精确值,而在x0=0.1,1处收敛速度较快,说明牛顿法与基于牛顿法Steffensen 加速法在单根附近有较快的收敛速度,迭代法是否收敛,与初始近似值x0的好坏很有关系。 (2)从sinx=0使用两种方法可以看出,Steffensen 加速法迭代速度明显快于牛顿加速法,且牛顿法和基于牛顿法Steffensen 加速法在单根附近有较快的收敛速度,迭代法是否收敛,与初始近似值x0的好坏很有关系,如在x0=1.6处,得到的收敛解很大,这是因为0)/1806.1cos()6.1(≈⨯='πf ,很难说明f(x)在此处是否发散或者是否收敛。

第二章 Jacobi 迭代法与Causs-Seidel 迭代法迭代求解的比较

2.1计算题目

用雅格比法与高斯-赛德尔迭代法解下列方程组Ax =b ,研究其收敛性,上 机验证理论分析是否正确,比较它们的收敛速度,观察右端项对迭代收敛有无影响。

(1)A 行分别为A 1=[6,2,-1],A 2=[1,4,-2],A 3=[-3,1,4]; b 1=[-3,2,4]T , b 2=[100,-200,345]T ,

(2) A 行分别为A 1=[1,0,8,0.8],A 2=[0.8,1,0.8],A 3=[0.8,0.8,1];

b 1=[3,2,1] T , b 2=[5,0,-10]T ,

(3)A 行分别为A 1=[1,3],A 2=[-7,1];b =[4,6]T ,

2.2计算过程与结果

1.采用C++进行编程,分别采用用雅格比法与高斯-赛德尔迭代法对问题(1)进行迭代,x0= [0,0,0]T 为初始值。

相关文档
最新文档