当前位置:文档之家› 数值计算(数值分析)实验4-分段三次埃尔米特(hermite)插值【c程序实现+流程图】

数值计算(数值分析)实验4-分段三次埃尔米特(hermite)插值【c程序实现+流程图】

实验四分段三次埃尔米特插值
(一)实验目的
掌握分段三次埃尔米特插值算法。

(二)实验项目内容
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<stdio.h>
#include<math.h>
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);
}
三、运行结果【截图】。

相关主题