计算方法实验报告
实验名称: 实验1 从函数表出发进行插值 1 引言
某个实际问题中,函数f (x)在区间[a,b]上存在且连续,但难以找到其表达式,只能通过实验和观测得到有限点上的函数表。
有些情况虽然可以写出表达式,但结构复杂,使用不方便。
所以希望构造简单函数P (x)作为f (x)的近似值。
插值法是解决此类问题的一种方法。
设函数y=在插值区间[a,b]上连续,且在n+1个不同的插值节点a≤x 0,x 1,…,x n ≤b 上分别取值y 0,y 1,…,y n 。
目的是要在一个性质优良、便于计算的插值函数类Φ中,求一简单函数P (x),满足插值条件P (x i )=y i (i=0,1,…,n),而在其他点x≠x i 上,作为f (x)近似值。
求插值函数P (x)的方法称为插值法[1]。
2 实验目的和要求
运用Matlab 编写m 文件,定义三种插值函数,要求一次性输入整张函数表,并利用计算机选择在插值计算中所需的节点。
分别通过分段线性插值、分段二次插值和全区间上拉格朗日插值计算f (0.15),f (0.31),f (0.47)的近似值。
3 算法原理与流程图
(1)原理 1.线性插值
当给定了n+1个点x 0<x 1<…<x n 上的函数值y 0,y 1,…,y n 后,若要计算x≠x i 处函数值f (x)的近似值,可先选取两个节点x i-1与x i 使x ∈[x i-1,x i ],然后在小区间[x i-1,x i ]上作线性插值,即得
1
1
11
1)()(------+--=≈i i i i i i i i x x x x y x x x x y x P x f
这种分段低次插值叫分段线性插值。
2.分段二次插值
当给定了n+1个点x 0<x 1<…<x n 上的函数值y 0,y 1,…,y n 后,若要计算x≠x i 处函数值f (x)的近似值,可先选取距离x 最近的三个节点x i-1,x i 与x i+1,然后进行二次插值,即得
专业:电气工程及其自动化 姓名: 李X
∑∏+-=+≠-
=⎥⎥⎥⎦
⎤
⎢⎢⎢⎣
⎡
⎪⎪⎭⎫
⎝⎛
--=≈11
112)()(i i k i k j i j j k j k x x x x y x P x f 这种分段低次插值叫分段二次插值。
3.全区间上拉格朗日插
对节点x i (i=0,1,…,n)中任一点x k (0≤k≤n),作一n 次多项式l k (x),使它在该点上的取值为1,在其余点x i (i=0,1,…,k -1,k+1,…,n)上取值为零。
对应于每一节点x k (k=0,1,…,n),都能写出一个满足此条件的多项式,这样写出n+1个多项式l 0(x),l 1(x),…,l n (x)。
)()()()(1100x l y x l y x l y x P n n n ++=
拉格朗日n 次插值多项式(对于全区间上的插值,n 取函数表的长度)
∑=+-+---------=n
k n k k k k k k n k k k
n x x x x x x x x x x x x x x x x y x L 0110110)
())(()()
())(()()(
(2)流程图
分段线性插值法
分段二次插值法
拉格朗日全区间上的插值法
4 程序代码及注释
1.
注:若要在Matlab中直接调用插值函数,需要事先将习题1函数表输入2.
3.
5算例分析
%首先在
%确保Current Directory 中存放分别含有上述代码的三个m文件(1)分段线性插值
(2)分段二次插值
(3)全区间上拉格朗日插值
(4
6讨论与结论
1.对程序运行的时间加以比较使用
从三次实验结果可知,interp1函数所用时间比编写的fdxx函数长(interp1函数为matlab求分段线性插值的函数);而fdxx和另外两个函数时间比较接近
2.程序优化
由分段线性插值和分段二次插值的原理,x取值在函数表范围内时,插值结果有意义,而当x 取值在函数表范围以外,利用分段线性插值公式仍可以进行运算并得到一个值,但其结果不准确;分段二次插值则无法找到三个合适的点以求插值,不予以输出结果;若输入的函数表x 与y的长度不相等,则无法插值。
所以加入判断
p=length(y0);n=length(x0);
if p~=n error('数据输入有误,请重新输入');
if z<x0(1)|z>x0(n)
fprintf('x(%d)超出范围;\n',t);
break;
end
从而避免了因输入错误导致的结果错误。
由上述(4)测试示例可看到效果。
3.结果比较
(下方的图为放大图)图中data1为原函数表的数据,data2-data4分别为分段线性插值、分段二次插值和拉格朗日插值的结果,其x取步长为0.01的52个数据,可知插值结果与原数据变化规律接近,在给定范围内均可以作其近似函数。
参考文献
[1] 易大义,沈云宝,李有法. 计算方法(第2版),浙江大学出版社. pp.29-53.
[2] 廖波. 数值计算与最优化原理——MA TLAB实现,北京邮电大学出版社. pp.57-58.。