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