计算方法实验四拉格朗日插值实验报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验报告
学院:电子信息工程
实验课程:计算方法
学生姓名:
学号:
专业班级:通信工程17-3班级
实验四 Lagrange 插值
1 目的与要求
(1)进一步理解和掌握Lagrange 插值的数值算法。
(2)能够根据给定的函数值表求出插值多项式和函数在某一点的近似值以解决实际问题
2 实验内容
已知函数表如下,通过编制程序,试用拉格朗日插值多项式求0.5,0.7,0.85三点处的近似函数值。
3 实验原理
拉格朗日插值多项式:
4 程序设计 (1)流程图
拉格朗日插值程序流程图
∑===
n
i 0
i i
i )
x (l y y )
x x ()x x )(x x ()x x ()
x x ()x x )(x x ()x x ()x (l n i 1i i 1i i 0i n 1i 1i 0i --------=
+-+-
(2)程序代码
#include
#include
#define n 5
double lagrange(long double a[n],long double b[n],double x)
{
int k,l;
long double y1,m;
y1=0.0;
for(k=0;k { m=1.0; for(l=0;l { if(l!=k) { m=m*(x-a[l])/(a[k]-a[l]); } } y1=y1+m*b[k]; } return y1; } void main() { double x,y; long double a[n]={0.4,0.55,0.8,0.9,1}; long double b[n]={0.41075,0.57815,0.88811,1.02652,1.17520 }; printf("\n输入要求的自变量的值\n"); scanf("%lf",&x); y=lagrange(a,b,x); printf ("拉格朗日插值后的近似值%lf",y); } 5 实验结果与分析 0.5处的近似函数值为: 0.7处的近似函数值为: 0.85处的近似函数值为: 分析: (1)通过完成拉格朗日插值法的编程实验,在对程序的修改中,我认为我最大的收获是我对C语言中数据类型具有了更为深刻的认识,进一步掌握了拉格朗日插值法。 (3)此次实验较好的完成了任务,巩固了课堂学习知识。