预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共12页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

_ 学生学号实验课成绩 武汉理工大学 学生实验报告书 实验课程名称数值分析 开课学院计算机科学与技术学院 指导老师姓名 学生姓名 _ 学生专业班级 2010—2010学年第一学期 实验课程名称:数值分析 实验项目名称实验成绩 实验者专业班级组别 同组者实验日期年月日 _ 第一部分:实验分析与设计(可加页) 一、实验内容描述(问题域描述) 1、分别画出Lagrange插值公式、Newton插值公式、分段插值公式和Hermite插值公式的 算法流程图 2、分别用Lagrange插值公式和Newton插值公式通过编程计算函数f(x)的近似值 已知对于f(x)=ex,有数据表如下: x00.51.02.0 i f(x)1.000001.648722.718287.38906 i (1)对=0.5利用线性插值计算的近似值;对=1利用线性插值计 x0=0,x1f(0.25)x0=0.5,x1 算f(0.75)的近似值; (2)对=2利用二次插值计算和的近似值 x0=0,x1=0.5,x2f(0.25)f(0.75) (3)对=2求的插值多项式; x0=0,x1=0.5,x2f(x)HermiteH5(x) (4)分析和比较各插值算法的精度差异 3、通过编程计算函数f(x)的近似值。已知对于f(x)=,有数据表如下: x2.02.12.22.32.4 i f(x)1.4142141.4491381.4833401.5165751.549193 i (1)计算各阶插值多项式在不同点的值:f(2.05),f(2.15),f(2.45); (2)利用分段线性插直和分段抛物插值计算(1)中的函数值; (3)分析和比较算法的效率差异和精度差异(同时注意插值点的位置与精度之间的关系)。 4、用不同方式方法编程给出计算Langrange插值和Newton插值的算法,分析和比较两种 算法的编程难易以及算法的效率差异总计算量之间的关系。 5、写出实习报告 _ 二、实验基本原理与设计(包括实验方案设计,实验手段的确定,试验步骤等,用硬件逻辑或 者算法描述) 【拉格朗日插值法算法流程图】 【牛顿插值法算法流程图】 _ 【分段插值法算法流程图】 _ 【艾尔米特插值法算法流程图】 【拉格朗日插值法源程序】 #include<iostream> usingnamespacestd; intmain() { 请输入坐标点个数: intcount; cin>>count; doublepoint[100][2]; intcount1=0; 请输入坐标: while(count1<count) _ { cin>>point[count1][0]>>point[count1][1]; count1++; } 计算f(x)请输入x: doublex; cin>>x; doublef=0,Lu=1; for(inti=0;i<count;i++) { for(intj=0;j<count;j++) { if(j==i)continue; Lu=Lu*(x-point[j][0])/(point[i][0]-point[j][0]); } Lu=Lu*point[i][1]; f=f+Lu; Lu=1; } 的值为: return0; } 【牛顿插值法源程序】 #include<iostream> usingnamespacestd; intmain() { 请输入坐标点个数: intcount; cin>>count; doublepoint[100][2]; intcount1=0; 请输入坐标: while(count1<count) { cin>>point[count1][0]>>point[count1][1];count1++; } 计算f(x)请输入x: doublex; cin>>x; doubled[100]; for(inti=0;i<count;i++) d[i]=point[i][1]; for(intj=1;j<count;j++) for(i=count-1;i>=j;i--) d[i]=(d[i]-d[i-1])/(point[i][0]-point[i-j][0]); _ doublef=d[0],Lu=1,L; for(i=1;i<count;i++