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

📄 enhmt.c

📁 求解差值真的范围场馆哟个自行车不是你沙发是但书
💻 C
字号:
double enhmt(double x[],double y[],double dy[],int n,double t);
main()
{
int n=3;
double x[3]={0.1,0.3,0.5},y[3]={0.099833,0.295520,0.479726},dy[3]={0.995004,0.955336,0.877583};
double t=0.25;
double z;
z=enhmt(x,y,dy,n,t);
printf("%lf",z);getch();
}
//埃尔米特(Hermite)插值
//x-长度为n的数组,存放n个节点xi,要求增序
//y-长度为n的数组,存放n个节点yi
//dy-长度为n的数组,存放n个节点上的一阶导数值
//n-给定节点的个数
//t-存放指定插值点的值x
double enhmt(double x[],double y[],double dy[],int n,double t)
{ 
int i,j;
    double z,p,q,s;
    z=0.0;
    for (i=1;i<=n;i++)
{ 
  s=1.0;
        for (j=1;j<=n;j++)
  {
   if (j!=i) 
   {
    s=s*(t-x[j-1])/(x[i-1]-x[j-1]);
   }
  }
  s=s*s;
  p=0.0;
  for (j=1;j<=n;j++)
  {
   if (j!=i) 
   {
    p=p+1.0/(x[i-1]-x[j-1]);
   }
  }
  q=y[i-1]+(t-x[i-1])*(dy[i-1]-2.0*y[i-1]*p);
  z=z+q*s;
}
    return(z);
}

⌨️ 快捷键说明

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