数值计算(数值分析)实验4-分段三次埃尔米特(hermite)插值【c程序实现+流程图】.doc
文本预览下载声明
实验四 分段三次埃尔米特插值
(一)实验目的
掌握分段三次埃尔米特插值算法。
(二)实验项目内容
1.写出计算步骤和流程图。
2.对每种算法分别用C或c#程序实现。
3.调试程序。可用以下数据进行调试。
已知函数y=1/(1+x2)在区间[0,3]上取等距插值节点,求区间[0,3]上的分段三次埃尔米特插值函数,并利用它求出f(1.5)的近似值(0.3075)。
0 1 2 1 0.5 0.2 0 -0.5 -0.16
(三)主要仪器设备
微机
(四)实验室名称
公共计算机实验室
(五)实验报告撰写
实验四 分段三次埃尔米特插值
实验报告
流程图
程序代码
#includestdio.h
#includemath.h
float f0(float x)
{
return((x-1)*(x-1)*(2*x+1));
}
float f1(float x)
{
return(x*x*(-2*x+3));
}
float g0(float x)
{
return(x*(x-1)*(x-1));
}
float g1(float x)
{
return(x*x*(x-1));
}
void main()
{float x0,x1,x,y0,y1,yy0,yy1,h,p;
printf(输入x0,x1,x,y0,y1和yy0,yy1的取值);
scanf(%f%f%f%f%f%f%f,x0,x1,x,y0,y1,yy0,yy1);
h=x1-x0;
p=y0*f0((x-x0)/h)+y1*f1((x-x0)/h)+h*yy0*g0((x-x0)/h)+h*yy1*g1((x-
x0)/h);
printf(%f\n,p);
}
运行结果【截图】
N
Y
开始
输入,,x
y=0, j=0
t=1
i=0,…j-1,j+1,…n
j=n?
输出y
结束
j=j+1
显示全部