数值分析 各个算法的C语言程序
void main() { float x; printf("输入插值点:"); scanf("%f",&x); ND(x);
}
三、 埃尔米特插值
#include<stdio.h> #include<stdlib.h> #include<math.h> void Hermite(float s) { double x[3]={0.25,1,2.25},y[3]={0.125,1,3.375},z[3]={0.75,1.5,2.25}; double H=0.0,a,b,f,g; int i,j; for (i=0;i<3;i++) { f=1.0;g=0.0;
for (j=0;j<3&&j!=i;j++) {f=f*(s-x[j])/(x[i]-x[j]);g=g+1/(x[i]-x[j]);} a=(1-2*(s-x[i])*g)*f*f;b=(s-x[i])*f*f; H=H+y[i]*a+z[i]*b; }
printf("%f\n",H); }
void main() { float x; printf("输入插值点:"); scanf("%f",&x); Hermite(x);
}
四、 三次样条插值
#include <math.h> #include <stdio.h> #include <stdlib.h>