计算实习报告
实习题目:专 业:信息与计算科学 班 级:计算 学 号:
姓 名:
2010年4月
分段线性插值
专业:信息与计算科学
一.实习目的及意义
通过计算实习掌握构造算法的基本思路和方法,及解决常见问题的基本算法,能通过计算机算法并用计算机解决实际问题,掌握分段线性插值的原理及计算方法。
二.分段线性插值的计算公式
设y=f(x)在节点a=x 0
f(xi ),i=0,1,2……n. 为了提高近似程度,可以考虑用分段线性插值来逼近原函数,这时的插值函数为原函数:
S x =
在区间[xi-1,x i ]上的线性函数为
s x ,x ∈[x,x ]212……………………
s n x ,x ∈[xn −1,x n ]
s 1 x ,x ∈[x0,x 1]
S i x =y i −1x 三.算法
Step1:输入X
x −x i
i −1−x i
+y i x −x
i
x −x i −1
i −1
,i=0,1,2……n
Step2:输入x i 和y i Step3:for i=1,2,……N 由公式S i x =y i −1Step4:输出y
x −x i x i −1−x i
+y i
x −x i −1x i −x i −1
得到Y 值
四. 程序代码
#include"stdio.h"
#define N 3 void main() { } int i; float X,s; float x[N],y[N];
printf("请输入X 的值:"); scanf("%f",&X);
printf("请输入x 的坐标:"); for(i=0;i
scanf("%f",&x[i]);
printf("请输入y 的坐标:"); for(i=0;i
scanf("%f",&y[i]);
for(i=1;i
printf("%f\n",s);
if(X>=x[i-1]&&X
s=y[i-1]*(X-x[i])/(x[i-1]-x[i])+y[i]*(X-x[i-1])/(x[i]-x[i-1]);
五.数值算例
请输入X 的值:3.5 请输入x i 的值:2 3 4 请输入y i 的值:3 4 5 4.500000
六.对计算结果进行分析评价
由于定义的变量类型不一样,得出的答案有所不同,但算法及程序整体还是正确的。
七.参考文献
计算实习报告
实习题目:专 业:信息与计算科学 班 级:计算 学 号:
姓 名:
2010年4月
分段线性插值
专业:信息与计算科学
一.实习目的及意义
通过计算实习掌握构造算法的基本思路和方法,及解决常见问题的基本算法,能通过计算机算法并用计算机解决实际问题,掌握分段线性插值的原理及计算方法。
二.分段线性插值的计算公式
设y=f(x)在节点a=x 0
f(xi ),i=0,1,2……n. 为了提高近似程度,可以考虑用分段线性插值来逼近原函数,这时的插值函数为原函数:
S x =
在区间[xi-1,x i ]上的线性函数为
s x ,x ∈[x,x ]212……………………
s n x ,x ∈[xn −1,x n ]
s 1 x ,x ∈[x0,x 1]
S i x =y i −1x 三.算法
Step1:输入X
x −x i
i −1−x i
+y i x −x
i
x −x i −1
i −1
,i=0,1,2……n
Step2:输入x i 和y i Step3:for i=1,2,……N 由公式S i x =y i −1Step4:输出y
x −x i x i −1−x i
+y i
x −x i −1x i −x i −1
得到Y 值
四. 程序代码
#include"stdio.h"
#define N 3 void main() { } int i; float X,s; float x[N],y[N];
printf("请输入X 的值:"); scanf("%f",&X);
printf("请输入x 的坐标:"); for(i=0;i
scanf("%f",&x[i]);
printf("请输入y 的坐标:"); for(i=0;i
scanf("%f",&y[i]);
for(i=1;i
printf("%f\n",s);
if(X>=x[i-1]&&X
s=y[i-1]*(X-x[i])/(x[i-1]-x[i])+y[i]*(X-x[i-1])/(x[i]-x[i-1]);
五.数值算例
请输入X 的值:3.5 请输入x i 的值:2 3 4 请输入y i 的值:3 4 5 4.500000
六.对计算结果进行分析评价
由于定义的变量类型不一样,得出的答案有所不同,但算法及程序整体还是正确的。
七.参考文献