函数插值法实验报告c语言,插值法实验报告.doc

插值法实验报告

PAGE

PAGE 4

实验2 插值法

学院专 业日期学号姓 名成绩实验题目插值法指导老师一.实验目的掌握拉格朗日插值法、牛顿插值法。记录运行结果,回答问题,完成实验报告。

二.实验环境实验环境:C++

实验内容思考问题:插值多项式是否阶次越高越好?数值积分与插值的关系是什么?1.用拉格朗日插值法求2的平方根。?提示:可以用抛物线插值,f(1.69)=1.3,f(1.96)=1.4,f(2.25)=1.5。?2.用牛顿插值法求2的平方根。??提示:可以用抛物线插值,f(1.69)=1.3,f(1.96)=1.4,f(2.25)=1.5。?实验原理一般,若有个数据点,上述近似标准要求

即:,则称近似函数为满足插值条件(3.2)的插值函数,而点称为插值节点。若满足插值条件(3.2)的函数的基函数取 ,则是多项式

称满足插值条件(3.2) 的多项式为插值多项式。

源程序拉格朗日插值法#include #include #include #define MAXSIZE 50void input (double x[MAXSIZE],double y[MAXSIZE],long n);int main(void){ double x[MAXSIZE],y[MAXSIZE],_x,_y,t; long n,i,j; printf("\n 请输入插值节点的个数:"); scanf("%ld",&n); input(x,y,n); printf("\n 请输入插值点:"); scanf("%lf",&_x); _y=0; for(i=0;i<=n-1;i++) { t=1; for(j=0;j<=n-1;j++) if(j!=i) t*=(_x-x[j])/(x[i]-x[j]); _y+=t*y[i]; } printf("\n 插值点 (x,y)=(%lf,%lf).",_x,_y); system ("pause");}void input(double x[MAXSIZE],double y[MAXSIZE],long n){ long i; for(i=0;i<=n-1;i++) { printf("\n 请输入插值节点 x[%ld],y[%ld]:",i,i); scanf("%lf,%lf",&x[i],&y[i]); }}

牛顿插值法#include#include#include#define MAXSIZE 50void input(double x[MAXSIZE],double f[MAXSIZE],long n);int main(void){ double x[MAXSIZE],f[MAXSIZE],_x,_y; long n,i,j; printf("\n请输入插值节点的个数:"); scanf("%ld",&n); input(x,f,n); printf("\n请输入插值点:"); scanf("%lf",&_x); for(j=1;j<=n-1;j++) for(i=n-1;i>=j;i--) f[i]=(f[i]-f[i-1])/(x[i]-x[i-j]); _y=f[n-1]; for(i=n-2;i>=0;i--) _y=f[i]+(_x-x[i])*_y; printf("\n插值点(x,y)=(%lf,%lf).",_x,_y); system("pause");}void input(double x[MAXSIZE],double f[MAXSIZE],long n){ long i; for(i=0;i<=n-1;i++) { printf("\n请输入插值节点x[%ld],y[%ld]:",i,i); scanf("%lf%lf",&x[i],&f[i]); } }六.运行结果及问题答案

截图

问题答案:多项式是阶次越高越好.七.实验结论 通过这次实验

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值