欢迎来到天天文库
浏览记录
ID:31937377
大小:37.50 KB
页数:4页
时间:2019-01-29
《数值分析拉格朗日插值法上机实验报告》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、课题一:拉格朗日插值法1.实验目的1.学习和掌握拉格朗日插值多项式。2.运用拉格朗日插值多项式进行计算。2.实验过程作出插值点(1.00,0.00),(-1.00,-3.00),(2.00,4.00)二、算法步骤已知:某些点的坐标以及点数。输入:条件点数以及这些点的坐标。输出:根据给定的点求出其对应的拉格朗日插值多项式的值。3.程序流程:(1)输入已知点的个数;(2)分别输入已知点的X坐标;(3)分别输入已知点的Y坐标;程序如下:#include#include#includefloatlagrange(
2、float*x,float*y,floatxx,intn)/*拉格朗日插值算法*/{inti,j;float*a,yy=0.0;/*a作为临时变量,记录拉格朗日插值多项*/a=(float*)malloc(n*sizeof(float));for(i=0;i<=n-1;i++){a[i]=y[i];for(j=0;j<=n-1;j++)if(j!=i)a[i]*=(xx-x[j])/(x[i]-x[j]);yy+=a[i];}free(a);returnyy;}intmain(){inti;intn;floatx[20],y[20],xx,yy;printf("
3、Inputn:");scanf("%d",&n);if(n<=0){printf("Error!Thevalueofnmustin(0,20).");getch();return1;}for(i=0;i<=n-1;i++){printf("x[%d]:",i);scanf("%f",&x[i]);}printf("");for(i=0;i<=n-1;i++){printf("y[%d]:",i);scanf("%f",&y[i]);}printf("");printf("Inputxx:");scanf("%f",&xx);yy=lagrange(x,y
4、,xx,n);printf("x=%f,y=%f",xx,yy);getch();}举例如下:已知当x=1,-1,2时f(x)=0,-3,4,求f(1.5)的值。运行结果如下:Inputn:3x[0]:1x[1]:-1x[2]:2y[0]:0y[1]:-3y[2]:4Inputxx:1.5x=1.500000,y=1.7916673、实验总结拉格朗日插值模型简单,结构紧凑,是经典的插值法。但是由于拉格朗日的插值多项式和每个节点都有关,当改变节点个数时,需要重新计算。且当增大插值阶数时容易出现龙格现象。在物理化学,资产价值鉴定工作和计算某一时刻的卫星坐标和钟差
5、等这些方面可以应用Lagrange插值。采用拉格朗日插值法计算设备等功能重置成本,计算精度较高,方法快捷。但是这方法只能针对可比性较强的标准设备,方法本身也只考虑了单一功能参数,它的应用范围因此受到了一定的限制。作为一种探索,我们可以将此算法以及其它算法集成与计算机评估分析系统中,作为传统评估分析方法的辅助参考工具,以提高资产价值鉴定工作的科学性和准确性。
此文档下载收益归作者所有