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

在线预览结束,喜欢就下载吧,查找使用更方便

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

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

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

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

实验报告 实验课程名称数值计算方法 实验项目名称Lagrange插值法 年级 专业 学生姓名 学号 理学院 实验时间:2012年10月8日 学生所在学院:专业:班级: 姓名学号实验组1实验时间指导教师成绩实验项目名称Lagrange插值法 实验目的及要求: 实验(或算法)原理 一、若给定两个插值点其中,在公式中取,则插值多项式为: 是经过的一条直线,故此法称为线性插值法。 二、若函数给定三个插值点,,其中互不相等,在公式中取,则插值多项式为: 是一个二次函数,若三点不在一条直线上,则该曲线是一条抛物线,这种插值法称为二次插值或抛物插值。 实验硬件及软件平台: 计算机、MicrosoftVisualC++6.0、 实验步骤: 1.根据算法事先写出相应程序。 2.启动PC机,进入vc集成环境,输入代码。 3.编译调试。 4.调试通过,计算出正确结果。实验内容(包括实验具体内容、算法分析、源代码等等): 1.算法设计。 开始 ↓ 输入已知点个数n 输入已知点的X坐标以及输入已知点的Y坐标 ↓ 调用函数lagrange函数 ↓ 输出结果 ↓ 2.编写相应的程序上机调试。 #include<stdio.h> #include<math.h> #defineN doublelagrange(doublex[N],doubley[N],doublexx) {doubleyy,t; intj,k; yy=0.0; for(j=0;j<N;j++) {t=1.0; for(k=0;k<N;k++) if(k!=j) t=t*(xx-x[k])/(x[j]-x[k]); yy=yy+t*y[j]; } returnyy; } voidmain() {doublexx,yy; doublex[N]={}; doubley[N]={}; xx=; yy=lagrange(x,y,xx); printf("y=%f\n",yy); }3.已知下列函数表 用上述程序验证用线性插值计算的近似值为,用抛物插值计算的近似值为。 4.已知下列函数表 用上述程序分别用线性插值与抛物插值计算的近似值。 实验结果与讨论: 通过本实验的学习,掌握了使用线性插值和抛物插值验证和计算插值点的近似值。更进一步加深了对插值法的基本原理和技巧,初步学会使用解决一些简单的插值问题。 但本试验只是用线性插值和抛物插值计算得到函数的近似值,而未对插值公式进行余项估计,一般以的近似时,在点产生误差: 即是插值公式 的余项,其中: 指导教师意见: 签名:年月日