数值实验报告.doc

数值实验报告.doc

ID:56773326

大小:222.50 KB

页数:13页

时间:2020-07-08

数值实验报告.doc_第1页
数值实验报告.doc_第2页
数值实验报告.doc_第3页
数值实验报告.doc_第4页
数值实验报告.doc_第5页
资源描述:

《数值实验报告.doc》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、北京XX大学计算机与通信工程学院实验报告实验名称:《数值计算方法》课程实验学生姓名:_____________XX_______________专业:________计算机科学与技术________班级:_____________XXXX____________学号:_____________XXXXXX___________指导教师:_____________XXXXX_____________实验成绩:________________________________实验地点:__________

2、XXXXXXX____________实验时间:____2017____年___6___月___6___日一、实验目的与实验要求1、实验目的实验1:探究非线性方程的解法,比较不同解法的优劣性,针对具体问题对解法进行实践,并迭代达到指定的精确度。实验2:探究一般化曲线拟合的方法,采用最小二乘法对含有多项式,指数和对数多种形式的函数进行拟合,确定拟合结果中的系数。实验3:探究多种积分的数值解法,根据给定的精度,选择恰当的数值积分方法,确定迭代步数与步长,分析积分数值解法的优劣性。2、实验要求实验1:采用

3、两种算法求解非线性方程,比较两种算法的性能。实验2:用最小二乘法拟合由不超过三阶多项式和指数、对数函数线性组合成的符合函数,确定各个项的系数实验3:自选一种数值积分方法求解积分值,根据要求的精度给出最终的迭代步数和步长,分析优缺点。二、实验设备(环境)及要求实验1,3采用C语言编写,编译环境为DEVC++。实验2涉及矩阵操作,故采用MATLAB编写。三、实验内容与步骤1、实验1(1)实验内容·采用至少两种不同的算法求解ex+3*x3-x2-2=0在[0,1]范围内的一个根,要求两次迭代误差小于10-

4、4。·根据实验结果,比较分析不同算法的性能。(2)主要步骤本实验由C语言实现。在两种不同的算法上选用简单迭代法和牛顿迭代法。简单迭代法是将方程化成一个与原方程同解的方程,方程一端化成自变量x,然后判断迭代函数是否收敛,如果收敛的话,不停地迭代将使x趋于一个定值,这个定值就是原方程的近似解。而牛顿迭代法是直接给出形如的迭代函数进行迭代,如果满足两个端点异号,f’(x)在[a,b]上不等于零,f’’(x)在[a,b]上不变号且初值满足条件f()f’’()≥0,则由牛顿迭代法产生的序列单调收敛于[a,b]

5、内的唯一根。两种算法在理论上,牛顿迭代法的收敛速度要大于简单迭代法,以下进行迭代解非线性方程组并验证收敛速度的差异。1.简单迭代法:将移项,整理,得到迭代函数如下:,选取收敛的初值点=0。在实现上利用for循环进行迭代,直到相邻两次的误差小于。C语言代码如下:简单迭代函数:floatSimpleIteration(floatx)//简单迭代{returnpow((x*x+2-exp(x))/3.0,1.0/3);//pow(doublex,doubley);函数为求x的y次方}主函数中简单迭代法部分

6、:a[0]=SimpleIteration(0);//简单迭代法printf("简单迭代法:");printf("迭代值tt相邻两次误差");printf("%f",a[0]);for(i=1;;i++){a[i]=SimpleIteration(a[i-1]);d1=fabs(a[i]-a[i-1]);printf("%ft%f",a[i],d1);if(d1<1e-4)break;}2.牛顿迭代法:根据牛顿迭代法迭代函数的一般形式可以得到具体的迭代函数如下:,选取与简单迭代

7、法相同的初值=0。C语言代码如下:牛顿迭代函数:floatNewtonIteration(floatx)//牛顿迭代{returnx-(exp(x)+3*x*x*x-x*x-2)/(exp(x)+9*x*x-2*x);}主函数中牛顿迭代法的部分:b[0]=NewtonIteration(0);//牛顿迭代法printf("牛顿迭代法:");printf("迭代值tt相邻两次误差");printf("%f",b[0]);for(j=1;;j++){b[j]=NewtonIterat

8、ion(b[j-1]);d2=fabs(b[j]-b[j-1]);printf("%ft%f",b[j],d2);if(d2<1e-4)break;}两个迭代法完整C语言代码如下:#include#include#include#defineMAXSIZE30floatSimpleIteration(floatx)//简单迭代{returnpow((x*x+2-exp(x))/3.0,1.0/3);//pow

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

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

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