- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数值分析实验报告精品
学生学号 实验课成绩 学 生 实 验 报 告 书
实验课程名称 数值分析 开 课 学 院 计算机科学与技术学院 指导教师姓名 熊盛武 学 生 姓 名 学生专业班级
2013—— 2014学年 第 二 学期
实验课程名称:数值分析
实验项目名称 方程求根的数值方法 实验成绩 实 验 者 专业班级 组 别 同 组 者 实验日期 年 月 日 第一部分:实验分析与设计
实验内容描述(包括实验目的)
实验目的:
(1)通过编程计算实践,体会和理解二分法,简单迭代法,Newton迭代法和弦截法的算法思想
(2)通过编程计算实践,熟练各种算法的计算流程。
(3)通过各种方法对同一题目的求解,体会各种方法的精度差异。
(4)通过编程计算实践,深入领会和掌握迭代算法的改进思路,提高对算法改进技巧的本质的认识以及算法流程的实际控制技术。
二.实验基本原理与设计(实验基本原理与方法,,实验方案与技术路线等)
(1)分别画出二分法,简单迭代法,Newton迭代法和弦截法的算法流程图。
(2)分别用二分法和简单迭代法通过编程计算x*x*x-x-1=0在[1,2]内的近似根,要求精度达到0.0001和0.00001,并给出二分和迭代的次数,分析和比较算法的效率差异和精度差异,最后与理论估计的二分和迭代次数作比较。
(3)用Aitken算法通过编程计算x*x*x-x-1=0在[1,2]内的近似根,要求精度达到0.0001,并分析算法精度和与二分法的结果进行比较。
(4)分别用Newton迭代法和弦截法通过编程计算x*x*x-x-1=0在[1,2]内的近似根要求精度达到0.00001,并分析算法精度及不同方法的计算量。然后将程序应用于以下方程求根:(x=(2-e^x+x*x)/3,(3*x*x-e^x=0。分析和比较算法的效率差异:收敛速度和总计算量等之间的关系。
(5)写出实习报告
三.主要仪器设备及耗材
联想Y400 PC机一台
第二部分:实验调试与结果分析(可加页)(包括实验原始数据记录,实验现象记录,实验过程发现的问题,实验结果等)
(1)二分法计算流程图:
(2)简单迭代法算法流程图:
(3)牛顿迭代法流程图:
(4)弦截法算法程序流程图:
二分法程序源代码:
#includeiostream
#includecmath
#define f(x) (x*x*x-x-1)
using namespace std;
int main()
{
int i;
float x,t,a,b,e;
cout请输入求根区间a,b控制变量eendl;
cinabe; i=0;
while ((b-a)e)
{
i++;
x=(a+b)/2;
if (f(a)*f(x)0) b=x;
if (f(a)*f(x)0) a=x;
}
t=(a+b)/2;
cout在求根区间a,b间近似根t=tendl;
cout所需二分法次数i=iendl;
return 0;
}
调试过程,实验结果及分析:
计算 x*x*x-x-1=0 在[1,2]内的近似根。
当精度达到0.000001时,程序运行如下图:
当精度达到0.001时,程序运行如下图:
调试过程中如果把while ((b-a)e)改为while ((b-a)e),算然会出现程序运行之后的界面,但是输出的近似根是1.5,迭代次数i=0,也就是说程序的循环体没有执行,这是因为求根呢区间远远大于精度。从而跳过循环体直接输出前面输入的数据。
由运行结果看出:
精度达到0.001时,二分法次数为10。
精度达到0.000001时,二分法次数为20。
精度要求越高,二分法次数越多。
二分法缺点:逼近速度较慢。
二分法对有根区间逐步逼近得到更精确的近似根,二分法不采用等步长扫描,而是在有根区间[a,b]中,取中点,然后计算中点值,判断中点对应函数值和端点函数值乘积的正负来确定新的端点,当有根区间长度小于精确度时得到近似根。
如果没有区间长度和精度大小的判断,程序是一个死程序,得不到近似根。
简单迭代法程序源代码:
#includeiostream
#includecmath
double s(double t)
{
return (t+1);
}
using namespace std;
int main()
{
int i;
double x,x0,x1,e;
cout请输入迭代初始值x0,和控制精度eendl;
cinx0e;
i=0;
while (fabs(x1-x0)e)
{
i++;
x
文档评论(0)