拉格朗日插值和曲线拟合

更新时间:2023-11-10 22:23:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

插值和曲线拟合

摘要:本文简介拉格朗日插值,它的算法及程序和拉格朗日在实际生活中的运用。运用了拉格朗日插值的公式,以及它在MATLAB中的算法程序,并用具体例子说明。拉格朗日插值在很多方面都可以运用,具有很高的应用价值。

关键字:拉格朗日插值 曲线拟合 数值解 截断误差

一、问题描述与分析

已知函数表sin=0.5000,sin=0.7071,sin=0.8660,分别由线性插值与抛物插值求sin度。

1、插值法的概念

插值法是实用的数值方法,是函数逼近的重要方法。在生产和科学实验中,自变量x与因变量y的函数y?f(x)的关系式有时不能直接写出表达式,而只能得到函数在若干个点的函数值或导数值。当要求知道观测点之外的函数值时,需要估计函数值在该点的值。

如何根据观测点的值,构造一个比较简单的函数y??(x),使函数在观

2?的数值解,并由余项公式估计计算结果的精9?6?4?3测点的值等于已知的数值或导数值。用简单函数在y??(x)点x处的值来估计未知函数y??(x)在x点的值。寻找这样的函数?(x),办法是很多的。?(x)可以是一个代数多项式,或是三角多项式,也可以是有理分式;?(x)可以是任意光滑(任意阶导数连续)的函数或是分段函数。函数类的不同,自然地有不同的逼近效果。在许多应用中,通常要用一个解析函数(一、二元函数)来描述观测数据。 2、拉格朗日插值:

已知函数y?f(x)在若干点xi的函数值yi=f?xi?(i=0,1,???,n)一个差值问题就是求一“简单”的函数p(x):p(xi)=yi,i=0,1,???,n, (1)

x0,x1,则p(x)为f(x)的插值函数,而f(x)为被插值函数会插值原函数,x2,...,xn为插值节点,式(1)为插值条件,如果对固定点x求f(x)数

??值解,我们称x为一个插值节点,f(x)?p(x)称为x点的插值,当

x?[min(x0,x1,x2,...,xn),max(x0,x1,x2,...,xn)]时,称为内插,

??_??否则称为外插式外推,特别地,当p(x)为不超过n次多项式时称为n阶Lagrange插值。 (1)线性插值L1(1)

设已知x0 ,x1及y0?f(x0) ,y1?f(x1),L1(x)为不超过一次多项式且满足,的直线,从而得L1(x0)?y0,L1(x1)?y1,几何上,L1(x)为过(x0,y0)(x1,y1)到

L1(x)?y0?y1?y0(x-x0) (2) x1?x0为了推广到高阶问题,我们将式(2)变成对称式

L1(x)?l0(x)y0?l1(x)y1

其中,

l0(x)?x?x0x?x1,l1(x)?。均为1次多项式且满足 x0?x1x1?x0l(?且((?0且(l1x)?0。或ll1x)?1。 0x)0x)两关系式可统一写成li(xi)???1i?j 。 (3) ?0i?j(2)n阶Lagrange插值Ln(x)

设已知x0,x1,x2,...,xn及yi?f(xi)(i=0,1,.....,n),Ln(x)为不超过n次多项式且满足Ln(xi)?yi(i=0,1,...n). 易知Ln(x)?l(0x)y0???ln(x)yn.

其中,li(x)均为n次多项式且满足式(3)(i,j=0,1,...,n),再由xj(j?i)为n次多项式li(x)的n个根知li(x)?c?x?xj.最后,由

j?0i?inli(xj)?c?(xi?xj)?1?c?j?0j?in1?(x?x)ijj?0j?in,i=0,1,...,n.

总之,Ln(x)??li(x)yi,li(x)??i?0nnx?xjxi?xj.式为n阶Lagrange插值公式,

j?0j?i其中,li(x)(i=0,1,...n)称为n阶Lagrange插值的基函数。 3、Lagrange插值余项

设x0,x1,x2,...,xn?[a,b],f(x)在[a,b]上有连续的n+1阶导数,Ln(x)为f(x)关于节点x0,x1,x2,...,xn的n阶Lagrange插值多项式,则对任意x?[a,b],

f(n?1)(?)Rn(x)?f(x)?Ln(x)??(x).其中,?位于x0,x1,x2,...,xn及x之

(n?1)!间(依赖于x),?(x)=?(x)??(x?xj).

j?0n二、算法设计思路与描述

三、调试过程和运行结果 1、计算机配置

下面是试验时的计算机配置: 安装内存:2.00GB CPU:2.1GHz 系统类型:32位

Matlab版本:7.12.0.635(R2011a) 2、计算过程

2?2?2??0.7071?0.500096sin9?L1(9)=0.5000?(-)

???462?0.5000?0.2071??0.6381

3从所给三个节点中选取有用节点根据余项公式,选取前两个节点数值解截断误差数值解与精确解进行比较 截断误差,

R1(2?(sinx)??2??2??)(?)(?)?1?????7.615?10?39=2969421836,

?3?1??7.615?10?0.5?10.知结果至少有1位有效数字。 得

易知

2??2?3?2??2??-)(-)(?)(?)2??2?93?0.7071 sinL2()?9493?0.5000?96????????99(-)(-)(?)(?)646346432??2??(?)(?)2819694?0.866???0.7071-?0.8860?0.6434

????9?0.500099(?)(?)3634(截断误差为:

R2(2?(sinx)???2??2??2??)?(?)(?)(?)?1???????0..861?10?296969494x??618369

?4?2??8.861?10?0.5?10.知结果至少有两位数字。 得

2?比较本题精确解sin9=0.642787609...,实际误差限分别为0.0047

和0.00062。 3、运行结果

>>x=pi*[1/6 1/4];y=[0.5 0.7071];xx=2*pi/9; >>yy1=nalagr(x,y,xx) yy1 =

-0.5690

本文来源:https://www.bwwdw.com/article/lt0v.html

Top