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

📄 实验5.c

📁 实验题目:Hermite插值多项式 相关知识:通过n+1个节点的次数不超过2n+1的Hermite插值多项式为: 其中
💻 C
字号:

#include<stdio.h>
#include<stdlib.h>
#include<graphics.h>
double suanfa(double x)
{   
        int k,j;
	double shuzu_x[10]={0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1.0};
	double shuzu_y[10]={0.904837,0.818731,0.740818,0.670320,0.606531,0.548812,0.496585,0.449329,0.406570,0.367879};
	double shuzu_m[10]={-0.904837,-0.818731,-0.740818,-0.670320,-0.606531,-0.548812,-0.496585,-0.449329,-0.406570,-0.367879};
	double l[10]={1,1,1,1,1,1,1,1,1,1};
	double ld[10]={0,0,0,0,0,0,0,0,0,0};
	double a=0.0;
	double b=0.0;
	double H=0.0;
        for(k=0;k<10;k++)
	{
	for(j=0;j<10;j++)
        {
	     if(j!=k)
         {  
            l[k]=l[k]*((x-shuzu_x[j])/(shuzu_x[k]-shuzu_x[j]));
         }
	  }
	}
	for(j=0;j<10;j++)
	{
	  for(k=0;k<10;k++)
	  {
		  if(k!=j)
		  {
			  ld[j]=ld[j]+(1/(shuzu_x[j]-shuzu_x[k]));
		  }
	  }
	}
	for(j=0;j<10;j++)
	{
		a=a+shuzu_y[j]*((1-2*(x-shuzu_x[j])*ld[j])*l[j]*l[j]);
	}
	for(j=0;j<10;j++)
	{
		b=b+(shuzu_m[j])*((x-shuzu_x[j])*l[j]*l[j]);
	}
	H=a+b;
	return H;



}
void main()
{
       
	 
        double zx=0,i;
        int gdriver=DETECT,gmode;
        initgraph(&gdriver,&gmode, "\\tc\\bgi");
        cleardevice();
	moveto(500,500);
        setbkcolor(BLACK);
	setcolor(RED);
        zx=suanfa(0.55);
	for(i=0;i<1;)
	 {
	      line((i)+10,(136-suanfa(i))+10,(i+1)+10,(136-suanfa(i+1))+10);
              i+=0.1;    
         }
        for(i=0;i<500;i++)
	 {
	      line(i,136,i+1,136);
         }
        for(i=0;i<500;i++)
	 {
	      line(0,i,0,i+1);
         }

	for(i=0;i<500;)
        {
	      line(i,136,i,131);
	      i+=1;
        }
	for(i=0;i<500;)
	 {
	      line(0,i,5,i);
	      i+=1;
         }
         getch();
        closegraph();
        printf("%f\n",zx);

  
      
       



}

⌨️ 快捷键说明

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