用拉格朗日插值多项式求函数的近似值

 1 //用拉格朗日插值多项式求函数的近似值

 2 #include<iostream.h>

 3 void main()

 4 {

 5     int n,i;

 6   float xx,yy;

 7   float *x,*y;

 8     cout<<”请输入数据表的数据组数:”;

 9     cin>>n;

10     x=new float[n];

11   y=new float[n];

12    

13   cout<<”请依次输入X的值:”;

14   for(i=0;i<n;i++)

15      cin>>*(x+i);

16 

17   cout<<”请依次输入y的值:”;

18   for(i=0;i<n;i++)

19      cin>>*(y+i);

20 

21   cout<<”请输入所要计算的X的值:”;

22   cin>>xx;

23 

24     float Lagrange(float*,float*,float xx, int n);

25     yy=Lagrange(x,y,xx,n);

26   cout<<”当x=”<<xx<<”时,”<<”y=”<<yy<<endl;

27 }

28 

29 float Lagrange(float*x,float*y,float xx,int n)

30 {

31   int i,j;

32   float *a,yy=0;

33   a=new float[n];

34   for(i=0;i<=n-1;i++)

35   {

36      *(a+i)=*(y+i);

37      for(j=0;j<=n;j++)

38       if(j!=i) *(a+i)*=(xx-x[j])/(x[i]-x[j]);

39       yy+=*(a+i);

40   }

41   delete a;

42   return yy;

43 }

 

你可能感兴趣的:(函数)