数值分析实验报告

上传人:s9****2 文档编号:459799288 上传时间:2023-02-25 格式:DOCX 页数:29 大小:259.06KB
返回 下载 相关 举报
数值分析实验报告_第1页
第1页 / 共29页
数值分析实验报告_第2页
第2页 / 共29页
数值分析实验报告_第3页
第3页 / 共29页
数值分析实验报告_第4页
第4页 / 共29页
数值分析实验报告_第5页
第5页 / 共29页
点击查看更多>>
资源描述

《数值分析实验报告》由会员分享,可在线阅读,更多相关《数值分析实验报告(29页珍藏版)》请在金锄头文库上搜索。

1、河北工业大学数值分析课程实验实 验 报 告专业: 计算机科学与技术 班级: 计1305班 姓名: 岳帅鹏 学号: 133007 完成日期: 2015.1.11 实验一一、 实验要求 用两种不同的顺序计算,分析其误差的变化。二、 实验目的1、通过上机编程,复习巩固以前所学程序设计语言;2、通过上机计算,了解舍入误差所引起的数值不稳定性。3、通过上机计算,了解运算次序对计算结果的影响,从而尽量避免大数吃小数的现象。三、 算法描述 1)首先用float精度正序相加得到10000项的和;2)接着用float精度逆序相加得到10000项的和;3)然后用double精度正序相加得到10000项的和;4)再

2、用double精度逆序相加得到10000项的和;5)根据结果,进行比较分析问题。四、 源程序 #include#includevoid main()int i;float s1=0,s2=0,d1,d2;for(i=1;i=1;i-)s2=s2+1.0f/(i*i);d1=(float)(fabs(1.644834-s1); d2=(float)(fabs(1.644834-s2);printf(正向求和结果为%fn,误差为%fnn,s1,d1); printf(反向求和结果为%fn,误差为%fnn,s2,d2); if(d1d2)printf(正向求和误差小于负向求和误差n);else if

3、(d1=d2)printf(正向求和误差等于负向求和误差n);elseprintf(正向求和误差大于负向求和误差n);五、 运行结果 六、 对算法的理解与感悟实验二一、 实验要求 1、拉格朗日插值按下列数据x-3.0-1.01.02.03.0y1.01.52.02.01.0作二次插值,并求x=-2,x=0,x=2.75时的函数近似值2牛顿插值按下列数据x0.300.420.500.580.660.72y1.044031.084621.118031.156031.198171.23223作五次插值,并求x=0.46,x=0.55,x=0.60时的函数近似值.二、 实验目的 1、熟悉拉格朗日插值多

4、项式和牛顿插值多项式,注意其不同特点;三、 算法描述1、 拉格朗日插值(1) 输入x,y(i=0,1,2,n),令L(x)=0;(2)对=0,1,2,n计算 l(x)= L L+l(x)y2、 牛顿插值多项式(1) 输入n,x,y (i=0,1,2,n);(2) 对k=1,2,3,n, i=1,2, ,k计算各阶差商f(x,x ,x);(3) 计算函数值N(x)=f(x)+fx, x(x- x)+fx, x,x(x- x)(x- x)(x-x)四、 源程序1. 拉格朗日 #include#include#includeusing namespace std;float jisuanmokuai

5、(int,float,float,float);void main()float a,x50,y50,l;int m,n;cout题目:按下列数据endl;coutx:-3.0 -1.0 1.0 2.0 3.0endl;couty:1.0 1.5 2.0 2.0 1.5endl;cout作二次插值,求x=-2,x=0,x=2.75时的函数近似值.endl;cout输入插值次数:n;cout插入计算次数:m;for(int i=0;i=m;i+)for(int j=0;j=n;j+)int h99=i+1,b99=j+1;cout输入第h99个数的第b99个节点及函数值:xjyj;2. 牛顿 #

6、include#define M 6float w(float X,int n,float x);float quotient(int k,int i,float fM,float x,float y);float newton(float X,int n,float fM,float x,float y);void main()float xM,yM,fMM;x0=0.30f;y0=1.04403f;x1=0.42f;y1=1.08462f; x2=0.50f;y2=1.11803f;x3=0.58f;y3=1.15603f;x4=0.66f;y4=1.19817f; x5=0.72f;y5

7、=1.23223f;printf(x:0.30 0.42 0.50 0.58 0.66 0.72n);printf(y:1.04403 1.08462 1.11803 1.15603 1.19817 1.23223n);printf(做五次插值,并求x=0.46,x=0.55,x=0.60时的函数近似值.nn); for(int i=0;iM;i+)f0i=yi;float N3;N0=newton(0.46f,5,f,x,y);N1=newton(0.55f,5,f,x,y);N2=newton(0.60f,5,f,x,y);printf(x=0.46时函数的近似值为 %fn,N0); pr

8、intf(x=0.55时函数的近似值为 %fn,N1); printf(x=0.60时函数的近似值为 %fn,N2);float w(float X,int n,float x)float w=1.0;for (int i=0;in;i+)w=w*(X-xi);return w;float quotient(int k,int i,float fM,float x,float y)if(k=0)f0i=yi; else fki=(quotient(k-1,i,f,x,y)-quotient(k-1,i-1,f,x,y)/(xi-xi-k);return fki;float newton(flo

9、at X,int n,float fM,float x,float y)float N; N=f00;for (int i=1;i=n;i+)N=N+w(X,i,x)*quotient(i,i,f,x,y);return N;五、 运行结果1. 拉格朗日:2. 牛顿:六、 对算法的理解与感悟实验三一、 实验要求 分别用复化梯形公式和复化辛卜生公式计算f(x)=sin(x)/x的积分,并与准确值比较判断精度。二、 实验目的 通过实际计算来真实体会复合梯形公式和复合辛普森公式两种数值求积方法的精确度。三、 算法描述 1、复合梯形公式步骤一:确定函数的区间为【a,b】,并确定其节点的个数,算出每个小

10、区间的步长h;步骤二:根据确定的h,代入复合梯形公式,算出其对应的结果。2、复合辛普森公式步骤一:确定函数的区间为【a,b】,并确定其节点的个数,算出每个步长h;步骤二:根据确定的h,代入复化辛普生公式,算出对应的积分结果。四、 源程序 #include#includevoid main()int m,n,k,i;float Tn,Sn,d1,d2,a=0,b=0,c=0;float x1000,y1000,z1000,w1000; printf(将复化梯形区间划分:);scanf(%d,&n); for(i=1;in;i+)xi=float(1.0/n*i);yi=(float)(sin(xi)/xi);a=a+yi;Tn=(float)(1.0+sin(1.0)/1.0+2*a)/2.0/n);printf(复化梯形输出:%fn,Tn);printf(将复化辛卜生区间划分为:);scanf(%d,&m);for (k=1;kd2)printf(复化梯形求法精度低于复化辛卜生求法n);else if (d1=d2)printf(复化梯形求法精度等于复化辛卜生求法n);else (d1d2);printf(复化梯形求法精度高于复化辛卜生求法n); 五、 运行结果 六、 对

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 其它相关文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号