32 printf("Input xx:");
33 scanf("%f",&xx);
34 yy=lagrange(x,y,xx,n);
35 printf("x=%f,y=%f\n",xx,yy);
36 getch();
37}
38
2.牛顿插值多项式,用于离散数据的拟合
1#include <stdio.h>
2#include <conio.h>
3#include <alloc.h>
4void difference(float *x,float *y,int n)
5{ float *f;
6 int k,i;
7 f=(float *)malloc(n*sizeof(float));
8 for(k=1;k<=n;k++)
9 { f[0]=y[k];
10 for(i=0;i<k;i++)
11 f[i+1]=(f[i]-y[i])/(x[k]-x[i]);
12 y[k]=f[k];
13 }
14 return;
15}
16main()
17{ int i,n;
18 float x[20],y[20],xx,yy;
19 printf("Input n:");
20 scanf("%d",&n);
21 if(n>=20) {printf("Error! The value of n must in (0,20)."); getch(); r
eturn 1;}
22 if(n<=0) {printf("Error! The value of n must in (0,20).");getch(); ret
urn 1;}
23 for(i=0;i<=n-1;i++)
24 { printf("x[%d]:",i);
25 scanf("%f",&x[i]);
26 }
27 printf("\n");
28 for(i=0;i<=n-1;i++)
29 { printf("y[%d]:",i);scanf("%f",&y[i]);}
30 printf("\n");