文档介绍:实验 2 1. 掌握拉格朗日插值法、牛顿插值法。 2. 记录运行结果,回答问题,完成实验报告。: C++ 三. 实验内容思考问题:插值多项式是否阶次越高越好? 数值积分与插值的关系是什么? 1 .用拉格朗日插值法求 2 的平方根。提示:可以用抛物线插值, f()= , f()= , f()= 。 2 .用牛顿插值法求 2 的平方根。提示:可以用抛物线插值, f()= , f()= , f()= 。四. 实验原理一般,若有 1?n 个数据点?? niyx ii,,1,0 ),,(??,上述近似标准要求)(,,1,0,)(niyxp ii???即:0 21????EEE ,则称近似函数)(xp 为满足插值条件() 的插值函数, 而点?? niyx ii,,1,0 ),,(??称为插值节点。若满足插值条件() 的函数)(xp 的基函数取??? 2,1,0,)(??kxxg kk,则)(xp 是多项式)( )( 10 nnxxxp????????称满足插值条件() 的多项式)(xp 为插值多项式。 2 五. 源程序 1. 拉格朗日插值法#include <> #include <> #include <> #define MAXSIZE 50 void 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]); }} 2. 牛顿插值法#include<> #include<> #include<> #define MAXSIZE 503 void input(double x[MAXSIZE],double f[MAXSIZE],long n); int main(void) { double x[MAXSIZE],f[MAXSIZE],_x,_y; long n,i,j; printf