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

📄 分段线性插值.c

📁 数值计算方法的C语言代码
💻 C
字号:
#include<stdio.h>
#include<math.h>

main()
{int e,h,i,j,k,n;
 float x[10],y[10],a,sum,total,e1,e2;
 printf("input n\n");
 scanf("%d",&n);
 printf("input X\n");
 for(i=0;i<=n;i++)
  scanf("%f",&x);
 printf("input Y\n");
 for(i=0;i<=n;i++)
  scanf("%f",&y);
 printf("input x\n");
 scanf("%f",&a);
 for(j=1;j<=n;j++)
  if(x[j-1]<=a&&a<=x[j])
   e=j;
  if(e==1)
   h=j;
  else if(e==n)
      h=j-1;
       else {e1=fabs(a-x[j-2]);
      e2=fabs(a-x[j+1]);
      if(e1<e2)
       h=j-1;
      else h=j;
    }
    sum=0;
 for(k=h-1;k<=h+1;k++)
  {total=1;
   for(j=h-1;j<k;j++)
    total*=((a-x[j])/(x[k]-x[j]));
   for(j=k+1;j<=h+1;j++)
    total*=((a-x[j])/(x[k]-x[j]));
   sum+=y[k]*total;
  }
 printf("x=%f,L=%f",a,sum);
}

⌨️ 快捷键说明

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