拉格朗日插值实验报告
- 格式:docx
- 大小:107.05 KB
- 文档页数:13
实验名称: 实验一 拉格朗日插值
1 引言
我们在生产生活中常常会遇到这样的问题:某个实际问题中,函数f (x)在区间[a,b]上存在且连续,但却很难找到其表达式,只能通过实验和观测得到有限点上的函数表。显然,根据这些点的函数值来求其它点的函数值是非常困难的。有些情况虽然可以写出表达式,但结构复杂,使用不方便。所以我们总是希望根据已有的数据点(或函数表)来构造某个简单函数P (x)作为f (x)的近似值。插值法是解决此类问题的一种比较古老的、但却很常用的方法。它不仅直接广泛地应用于生产实际和科学研究中,而且也是进一步学习数值计算方法的基础。
2 实验目的和要求
运用Matlab 编写三个.m 文件,定义三种插值函数,要求一次性输入整张函数表,并利用计算机选择在插值计算中所需的节点。分别通过分段线性插值、分段二次插值和全区间上拉格朗日插值计算f ,f ,f 的近似值。已知函数表如下:
3 算法原理与流程图
(1)原理
设函数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)的方法称为插值法。在本实验中,采用拉格朗日插值法。
①分段低次插值
当给定了n+1个点x 0 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 这种分段低次插值叫分段线性插值,又称折线插值。 类似地,我们可以选取距离x 最近的三个节点x i-1,x i 与x i+1,然后进行二次插值,即得 ∑∏+-=+≠-=⎥⎥⎥⎦ ⎤⎢⎢⎢⎣ ⎡ ⎪⎪⎭⎫ ⎝⎛ --=≈1 1 112)()(i i k i k j i j j k j k x x x x y x P x f 这种分段低次插值叫分段二次插值,又称分段抛物线插值。 ②全区间上拉格朗日插值 对节点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),其中 0111()()()()() ()k k k k n l x A x x x x x x x x x x -+=----•-; 由条件()1k k l x =可得 0111 () ()() () k k k k k k k n A x x x x x x x x -+= ---- 于是我们可以得出如下的拉格朗日n 次插值多项式(对于全区间上的插值,n 取函数表的长度) 00110110 011()()()() ()()()()()()()()n n n n k k n k k k k k k k k n P x y l x y l x y l x x x x x x x x x y x x x x x x x x -+=-+=++ ----= ----∑ (2)流程图 分段线性插值分段二次插值全区间拉格朗日插值4程序代码及注释 1、分段线性插值 %分段线性插值 function y=piece_linear(x0,y0,x) %x0,y0为已知点,x为待求点 n=length(x0);p=length(y0);m=length(x); %n,p,m分别为x0,y0,x长度 if n~=p fprintf('Error! Please input again!\n'); %x0和y0长度不等时,报错 else for i=1:m 2、分段二次插值 3、拉格朗日全区间插值 5算例分析1、测试示例 2、首先输入函数变及待求点 3、分段线性插值 4、分段二次插值 5、全区间拉格朗日插值 6讨论与结论 1、使用tic,toc函数计算下列四种方法计算上述问题所运行的时间 从三次实验结果可知,三个程序的运行时间都很短。 2、程序优化 由分段线性插值和分段二次插值的原理,x取值在函数表范围内时,插值结果有意义,而当x取值在函数表范围以外,利用分段线性插值公式仍可以进行运算并得到一个值,但其结果不准确;分段二次插值则无法找到三个合适的点以求插值,不予以输出结果;若输入的函数表x与y的长度不相等,则无法插值。所以加入以下判断以提高插值的准确性 3、作图比较 上图为三种方法的插值曲线,其中x取0到,步长为,由图可得,三种曲线非常接近,这说明我们用拉格朗日插值计算所给点函数值的近似值时,引起的误差还是比较小的。 参考文献 [1] 易大义,沈云宝,李有法. 计算方法(第2版),浙江大学出版社. . [2] 张琨高思超毕靖编着 MATLAB2010从入门到精通电子工业出版社