数值分析实验报告

数值分析实验报告

ID:11173619

大小:1.05 MB

页数:23页

时间:2018-07-10

数值分析实验报告_第1页
数值分析实验报告_第2页
数值分析实验报告_第3页
数值分析实验报告_第4页
数值分析实验报告_第5页
资源描述:

《数值分析实验报告》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、学生学号0121010680132实验课成绩学生实验报告书实验课程名称数值分析开课学院计算机科学与技术学院指导教师姓名熊盛武学生姓名张慧娟学生专业班级软件1001班2011--2012学年第2学期实验一:方程求根的数值方法1实习目的(1)通过编程计算实践,体会和理解二分法、简单迭代法、Newton迭代法和弦截法的算法思想。(2)通过编程计算实践,熟练各种算法的计算流程;(3)通过各种方法对同一题目的求解,体会各种方法的精度差异。(4)通过编程计算实践,深入领会和掌握迭代算法的改进思路,提高对算法改进技巧的本质的认识以及算法流程的实际

2、控制技术。2实习步骤和内容(5)分别画出二分法、简单迭代法、Newton迭代法和弦截法的算法流程图。(6)二分法:简单迭代法:开始开始输入初始值x0,最大迭代次数N以及预先给定精度Ɛ,n=0输入有根区间的断点a,b以及预先给定精度Ɛx=(a+b)/2迭代函数x1=φ(x0)n=n+1ƒ(a)ƒ(x)<0ƒx1=x0结束输出根x1输出迭代失败是否是否n>Nx1-x0<Ɛ结束输出根x是b-a<Ɛ是否a=xb=x否开始开始Newton迭代法弦截法否输入初始值x0、x1,最大迭代次数N、迭代函数x2=φ(x0,x1)=x1–ƒx1ƒx1-ƒ

3、x0(x1-x0)预先给定精度Ɛ,n=0x0=x1x1=x2结束输出根x1是输出迭代失败x2-x1<Ɛ是否n>NX2φ(x0,x1)=x1–ƒx1ƒx1-ƒx0(x1-x0)n=n+1计算ƒx0,ƒx1输入初始值x0,最大迭代次数N、迭代函数x1=φ(x0)=x0-ƒ(x0)ƒ'(x0)预先给定精度Ɛ,n=0是输出迭代失败结束是输出根x1否否x1=x0x1-x0<Ɛn>Nx1=φ(x0)n=n+1(1)分别用二分法和简单迭代法通过编程计算x3-x-1=0在[1,2]内的近似根,要求精度达到10-4和10-5,并给出二分和迭代的次数,

4、分析和比较算法的效率差异和精度差异,最后与理论估计的二分和迭代次数作比较。程序实现:二分法:#include#includefloatf(float);voidmain(){inti,s=0,flag=0;floata=1.0,b=2.0;floatx[15];floaty;for(i=0;i<15;i++){x[i]=(a+b)/2;s++;if(fabs(f(x[i]))==1e-6){y=x[i];i=20;}else{if(f(x[i])*f(a)<1e-6)b=x[i];elsea=x[i

5、];}if((i>=1)&&(fabs((a-b)/2)<1e-4)){flag=1;i=20;y=(a+b)/2;s++;}}printf("a=%.7f",a);printf("b=%.7f",b);printf("最后结果为:%.7f",y);printf("二分%d次",s);printf("绝对误差限为%.7f",fabs(y-b));if(i==15)printf("无法求出精确解");}floatf(floatx){return(x*x*x-x-1);}简单迭代法:#include

6、h>#includefloatg(float);voidmain(){floata=1.0,b=2.0;floatx[15];inti,s=0;for(x[0]=(a+b)/2,i=0;i<15;i++){x[i+1]=g(x[i]);s++;if(fabs(x[i+1]-x[i])<1e-5){printf("最后结果为:%.5f",x[i+1]);printf("迭代次数为%d次",s);i=16;}}if(i==15)printf("无法求出精确解");}floatg(floatx){returnp

7、ow(x+1,1.0/3);}二分法简单迭代法迭代次数精度二分法1410-4简单迭代法710-5从上表的对比中可以看出简单迭代法要优于二分法。(1)用Aitken算法通过编程计算x3-x-1=0在[1,2]内的近似根,要求精度达到10-4,并分析算法精度和与二分法的结果进行比较。#include#includefloatg(float);voidmain(){floata=1.0,b=2.0;floatx[15],x1,x0;inti,s=0;for(x[0]=(a+b)/2,i=0;i<15;i+

8、+){x0=g(x[i]);x1=g(x0);x[i+1]=x1-(x1-x0)*(x1-x0)/(x1-2*x0+x[i]);s++;if(fabs(x[i+1]-x[i])<1e-4){printf("最后结果为:%.5f",

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。