收藏 分销(赏)

拉格朗日插值法C语言的实现.doc

上传人:s4****5z 文档编号:9436919 上传时间:2025-03-26 格式:DOC 页数:3 大小:46KB 下载积分:10 金币
下载 相关 举报
拉格朗日插值法C语言的实现.doc_第1页
第1页 / 共3页
拉格朗日插值法C语言的实现.doc_第2页
第2页 / 共3页


点击查看更多>>
资源描述
实验 一 .拉格朗日插值法C语言的实现 1.实验目的: 进一步熟悉拉格朗日插值法。 掌握编程语言字符处理程序的设计和调试技术。 2.实验要求: 已知:某些点的坐标以及点数。 输入:条件点数以及这些点的坐标 。 输出:根据给定的点求出其对应的拉格朗日插值多项式的值 。 3.程序流程: (1)输入已知点的个数; (2)分别输入已知点的X坐标; (3)分别输入已知点的Y坐标; (4)通过调用函数lagrange函数,来求某点所对应的函数值。 拉格朗日插值多项式如下: 其中 开始 程序流程图: ↓ 输入已知点个数n 输入已知点的X坐标以及输入已知点的Y坐标 ↓ 调用函数lagrange函数 ↓ 输出结果 ↓ 程序如下: #include <iostream> #include <conio.h> #include <malloc.h> float lagrange(float *x,float *y,float xx,int n) /*拉格朗日插值算法*/ { int i,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); return yy; } int main() { int i; int n; float x[20],y[20],xx,yy; printf("Input n:"); scanf("%d",&n); if(n>=20) { printf("Error!The value of n must in (0,20)."); getch();return 1; } if(n<=0) { printf("Error! The value of n must in (0,20)."); getch(); return 1; } for(i=0;i<=n-1;i++) { printf("x[%d]:",i); scanf("%f",&x[i]); } printf("\n"); for(i=0;i<=n-1;i++) { printf("y[%d]:",i);scanf("%f",&y[i]); } printf("\n"); printf("Input xx:"); scanf("%f",&xx); yy=lagrange(x,y,xx,n); printf("x=%f,y=%f\n",xx,yy); getch(); } 举例如下: 已知当x=1,-1,2时f(x)=0,-3,4,求f(1.5)的值。 运行结果如下:
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 教育专区 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服