数值计算(数值分析)实验4-分段三次埃尔米特(hermite)插值【c程序实现+流程图】
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验四分段三次埃尔米特插值
(一)实验目的
掌握分段三次埃尔米特插值算法。
(二)实验项目内容
1.写出计算步骤和流程图。
2.对每种算法分别用C或c#程序实现。
3.调试程序。可用以下数据进行调试。
已知函数y=1/(1+x2)在区间[0,3]上取等距插值节点,求区间[0,3]上的分段三次埃尔米特插值函数,并利用它求出f(1.5)的近似值(0.3075)。
x0 1 2
i
y 1 0.5 0.2 i
y 0 -0.5 -0.16 i
(三)主要仪器设备
微机
(四)实验室名称
公共计算机实验室
(五)实验报告撰写
实验四分段三次埃尔米特插值
实验报告
一、流程图
二、 程序代码
#include
#include
float f0(float x) N Y
开始
输入i x ,i y ,x
y=0, j=0
t=1
i j i
x x t t x x -=- i=0,…j-1,j+1,…n i y y ty =+
j=n? 输出y
结束
j=j+1
{
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);
}
三、运行结果【截图】