⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 新建 文本文档 (2).txt

📁 一个算法小题目
💻 TXT
字号:

                                 题目
对【-5,5】作等距分划x[i]=-5+ih,h=10/n,i=0,1,2,……,n.并对Runge给出的函数y=1/(1+x*x)作Lagrange插值,取n=10,20计算插值多行式p(x)在x=4.8处的误差,并作分析
                             
                             2.	算法描述:
Input:(xi,yi),i=0,1,2,3,…,n;x
Output:y
Algorithm
Step1.y=0;
Step.For i=0 to n Do
         {L=1.0;
For j=0 to n Do
{if(j!=i)then L=L(x-xj)/(xi-xj);
y=y+yiL;
}
Step.Print(x,y)

        源程序
#include"stdio.h"
#include"math.h"
#include"conio.h"
void main()
{  
	int n,i,j,m;
long double X,Y=0,Z;
printf("请输入n ");
   scanf("%d",&n);
   printf("请输入X " );
   scanf("%lf",&X);
long double x[100];  
   long double y[100];
    
   for(m=0;m<=n;m++){
	   x[m]=(m*10.0/n)-5.0;
	   y[m]=1/(1+x[m]*x[m]);
   }
   for(i=0;i<=n;i++){
      long double l=1.0;
	   for(j=0;j<=n;j++){
		   if(j!=i)  l=l*(X-x[j])/(x[i]-x[j]);
           
	   }
		   Y+=y[i]*l;
  
	   
	   }
	   
		printf("%lf\n",Y);
		Z=1/(1+X*X);
		printf("误差为%lf\n",fabs(Z-Y));
getch();
}
注:我的开发与运行环境是在VC++6.0。

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -