第6章 函数逼近与函数插值

第6章 函数逼近与函数插值
第6章 函数逼近与函数插值

第六章 函数逼近与函数插值

本章介绍函数逼近与插值的有关理论和算法. 函数逼近问题与插值问题两者既有联系又有区别,它们都是用较简单的函数来近似未知的、或表达式较复杂的函数. 一般来说,函数逼近是要在整个区间、或一系列离散点上整体逼近被近似函数,而在进行插值时,则须保证在若干自变量点上的函数值与被近似函数相等.

6.1 函数逼近的基本概念

进行函数逼近一般是在较简单的函数类Φ中找一个函数p(x)来近似给定的函数f(x),以使得在某种度量意义下误差函数p (x )?f(x)最小. 被逼近函数f(x)可能是较复杂的连续函数,也可能是只在一些离散点上定义的表格函数,而函数类Φ可以是多项式、分段多项式、三角函数、有理函数,等等. 函数逼近问题中度量误差的手段主要是函数空间的范数,下面先介绍函数空间的范数、内积等有关概念,然后讨论函数逼近问题的不同类型.

6.1.1 函数空间

线性空间的概念大家都很熟悉,其定义中包括一个元素集合和一个数域,以及满足一定运算规则的“加法”和“数乘”运算. 简单说,若这个元素集合对于“加法”和“数乘”运算封闭,则为一线性空间. 线性空间的元素之间存在线性相关和线性无关两种关系,进而又有空间的基和维数的概念.

在这里我们先考虑连续函数形成的线性空间. 例如C [a,b ]按函数加法、以及函数与实数乘法,构成一个线性空间. 对于[a,b]区间上所有k 阶导数连续的函数全体C k [a,b ],也类似地构成一个线性空间. 我们一般讨论实数函数,因此对应的是实数域?,若讨论复数函数,则相应的是复数域?. 另外,与线性代数中讨论的向量空间?n 不同,连续函数空间是无限维的.

对线性空间可以定义范数的概念(见3.1.2节). 针对实连续函数空间C [a,b ],与向量空间类似,可定义如下三种函数的范数(function norm):

1) ∞-范数 设f (x )∈C [a,b ],则‖f (x )‖∞=max x∈[a,b ]|f (x )| .

其几何意义如图6-1所示,即函数值绝

对值的最大值.

2) 1-范数

‖f (x )‖1=∫|f (x )|dx b a .

其几何意义如图6-2所示,即函数曲线

与横轴之间的面积总和.

3) 2-范数

‖f (x )‖2=[∫f 2(x )dx b a ]1/2. 2-范数也常称为平方范数,其几何意义

与1-范数类似. 线性空间还有一个重要概念是内积,它

定义了空间中两个元素的一种运算. 下面给出一般的复数域上线性空间内积的定义.

定义6.1:设S为实数域?上的线性空间,?u,v∈S,定义值域为?的二元运算?u,v?,若满足

1)?u,v?=?v,u?, (可交换性)

2)?αu,v?=α?u,v?, ?α∈?(线性性1)

3)?u+v,w?=?u,w?+?v,w?, ?w∈S(线性性2)

4)?u,u?≥0,当且仅当u=O时①,?u,u?=0, (非负性)

则称?u,v?为一种实内积运算(inner product). 定义了内积的线性空间称为实内积空间.

应说明的是,将定义6.1加以扩展可在更一般的实数域?上定义内积,区别只是将第1条性质改为共轭可交换性:

?u,v?=?v,u? .

例如复向量的内积为: ?u,v?=u T v?,可以验证它满足上述共轭可交换性. 下面只考虑实内积,但得到的结果都可以类似地推广到复内积空间. 另外,定义6.1的条件2还说明零元素与任意元素的内积均等于0.

根据内积的线性性可推出:

?α1u1+α2u2,v?=α1?u1,v?+α2?u2,v?,?α1,α2∈?,(6.1) 更一般地有:

?∑αj u j n

j=1,v?=∑αj?u j,v?

n

j=1

,?α1,?,αn∈?.(6.2)

这里主要考虑函数空间,则(6.2)式表明,线性组合函数(与另一函数作)内积等于(相应各个函数)内积的线性组合.

可以规定一种依赖于内积运算的范数:

‖u‖≡√?u,u? .

易知这种内积导出的范数满足范数定义的三个条件(见3.1.2节),详细证明过程留给读者思考. 应注意,在向量空间中,由内积导出的范数等同于向量的2-范数. 在实函数空间C[a,b]中,一般定义内积为

?u(x),v(x)?=∫u(x)v(x)dx

b

a

,(6.3) 因此,由它导出的范数也等同于函数空间的2-范数.

下面介绍与内积有关的两个重要定理.

定理6.1:设S为实内积空间,?u,v∈S,有:

|?u,v?|2≤?u,u???v,v? .(6.4) 这是著名的柯西-施瓦茨不等式(Cauchy-Schwarz inequality).

定理6.1的证明留给读者思考,若u,v为三维向量,也请思考该定理有什么几何含义?定理6.2:设S为实内积空间,u1,…,u n∈S,则格莱姆矩阵(Gram matrix)

G=[?u1,u1??u2,u1???u n,u1??u1,u2??u2,u2???u n,u2?????

?u1,u n??u2,u n???u n,u n?

](6.5)

非奇异的充要条件是u1,…,u n线性无关.

[证明] 首先要用到线性代数中的一个基本结论:

矩阵G非奇异?det(G)≠0?齐次线性方程组Ga=0只有全零解.

设向量a=[a1,…,a n]T,则方程Ga=0可写成:

①这里用正体的字母O表示线性空间的零元素.

∑a j ?u j ,u k ?n

j=1=0,

k =1,2,?,n (6.6)

下面证明方程组(6.6)只有恒零解的充分必要条件是u 1,…,u n 线性无关. 先证必要性,即已知方程组(6.6)只有恒零解,要证u 1,…,u n 线性无关. 采用反证法,若u 1,…,u n 线性相关,即存在不全为0的一组系数{αj ,j =1,?,n}使∑αj u j n j=1=O ,则

∑αj ?u j ,u k ?n j=1=?∑αj u j n

j=1

,u k ?=?O,u k ?=0,(k =1,…,n ),

即这组{αj }是方程组(6.6)的解,与已知条件矛盾!

再证明充分性,即已知u 1,…,u n 线性无关,要证方程组(6.6)只有全零解. 仍采用反证法,若方程组(6.6)存在不全为零的一组解{αj },则

∑αj ?u j ,u k ?n j=1=?∑αj u j n

j=1

,u k ?=0,k =1,…,n

将上述方程中第k 个方程乘以αk ,累加所有方程得到,

?∑αj u j n j=1,∑αj u j n

j=1

?=0 ,

根据内积的定义,必有∑αj u j n j=1=O , 也就是说存在不全为0的一组{αj }j=1n 使∑αj u j n j=1=O ,

这与u 1,…,u n 线性无关的已知条件矛盾!综上所述,完成了定理的证明.

应注意,格莱姆矩阵是实对称矩阵,并且当u 1,…,u n 线性无关时,它是对称正定矩阵. 针对实函数空间C[a, b],常常有权函数、加权内积的概念.

定义6.2:若函数ρ(x )≥0,?x ∈[a,b],且满足

1) ∫x k ρ(x )dx b

a 存在,(k =0,1,…),

2) 对非负连续函数g (x ),若∫g (x )ρ(x )dx =0b a 可推出g (x )≡0,

则称ρ(x)为区间[a,b]上的权函数(weight function).

关于权函数的定义,说明几点:

● 定义中对连续性没有要求,即ρ(x )可能不是连续函数;第1个条件要求的是ρ(x )与

多项式乘积为可积函数.

● 定义中第2条件的意义不是很直观,较直观的一种等价形式为:不存在子区间

(c,d )?[a,b],使ρ(x )=0,?x ∈(c,d ),即“权函数在[a,b]中任一子区间不恒为零”. ● 一般遇到的C [a,b ]中非负函数(一定有界、可积),若不在某一子区间恒为零,则

都可作权函数.

定义6.3:若ρ(x )为区间[a,b]上的权函数,则可定义C [a,b ]上的内积为:

?u (x ),v (x )?=∫ρ(x )u (x )v (x )dx b a ,

(6.7)

并称其为加权内积(weighted inner product).

容易验证加权内积满足一般内积的定义,并且常用的函数内积(6.3)式是加权内积的特例,其对应于权函数ρ(x )≡1的情况. 根据加权内积,也可以导出范数,这种范数可看成是广义的2-范数,其公式为:

‖f(x)‖=[∫ρ(x )f 2(x )dx b a ]

12? .

6.1.2 函数逼近的不同类型

在函数逼近问题中,用简单函数p(x)来近似f(x),并要求误差最小. 这里度量误差大小的标准是范数,采用不同范数时其问题的性质是不同的. 下面分两种情况作些讨论.

1) ∞-范数

考虑误差函数p (x )?f (x )的∞-范数,假设函数的定义域为[a, b],则可设

ε=‖p (x )?f (x )‖∞=max x∈[a,b ]

|p (x )?f (x )| , 因此有?ε≤p (x )?f (x )≤ε,?x ∈[a,b ],即

p (x )?ε≤f (x )≤p (x )+ε, ?x ∈[a,b ]

图6-3显示了函数p (x ),f (x ), 以及‖p (x )?f (x )‖∞之间的关系,从中可以看出,在∞-范数意义下的逼近要求使ε尽量小,也就是要p (x )在整个区间上“一致地”接近f (x ). 因此,采用∞-范数的函数逼近问题常称为最佳一致逼近.

2) 1-范数和2-范数

先看看误差函数p (x )?f (x )的1-范数,

‖p (x )?f (x )‖1=∫|p (x )?f (x )|dx b

a

令A =‖p (x )?f (x )‖1,则它表示p (x )和f (x )两个函数曲线之间的面积(如图6-4所示). 在1-范数意义下的逼近,要求使A 尽量小,也就是要p (x )与f (x )曲线之间的总面积尽量小,反映出这种逼近有整个区间上“平均”误差尽量小的含义(在某个子区间上误差可能很大).

2-范数的意义与1-范数大体上类似,由于它更容易处理,在实际的逼近问题中一般采用

图6-3 函数p (x ),f (x ), 以及‖p (x )?f (x )‖∞之间的关系.

图6-4 函数p (x ),f (x ), 以及‖p (x )?f (x )‖1之间的关系.

2-范数. 这种逼近称为最佳平方逼近或最小二乘逼近(least squares fitting).

从直观上看,采用∞-范数的最佳一致逼近效果更好一些,而最佳平方逼近具有平均误差最小的含义.

除了度量误差函数可采用不同的范数,被逼近函数也可分为连续函数和表格函数两种情况. 表格函数就是仅在一系列离散自变量点上已知函数值的函数,可通过函数值组成的向量来刻画,有关逼近问题的求解有特殊的处理方法. 而在逼近函数类方面,多项式函数是最常用的一种. 下面给出魏尔斯特拉斯定理(Weierstrass Theorem ),它是用多项式函数进行逼近的一个重要依据.

定理6.3:设f (x )∈C[a,b],则对任何?>0,总存在一个多项式P (x ),使‖P (x )?f (x )‖∞

[a, b]上一致成立.

该定理的证明已超出了本书的要求,因此不做讨论. 值得一提的是,若f (x )∈C[0,1],伯恩斯坦多项式(Bernstein polynomial)②

B n (f,x )=∑f (k )Q k (x )n

k=0 , 其中

Q k (x )=(n k

)x k (1?x )n?k , 就是满足定理要求的多项式P (x ). 注意B n (f,x )为n 次多项式,并且可以证明,lim n→∞B n (f,x )=f(x)在[0, 1]上一致成立. 因此,C[0,1]中的任意函数都可以用伯恩斯坦多项式(一致)逼近到任意好的程度. 应注意,它一般不是多项式函数类?n 中的最佳一致逼近.

最后说明一点,求最佳一致逼近多项式的方法比较复杂,感兴趣的读者请参考[4, 9]. 本章后面主要介绍求最佳平方逼近的方法,它有很广泛的应用.

6.2 连续函数的最佳平方逼近

为了记号的方便,在6.2节和6.3节的介绍中记函数的自变量为t.

6.2.1 一般的法方程方法

一. 问题描述

假设对f (t )∈C [a,b ]进行函数逼近,逼近函数类Φ应是形式简单的函数类,比如多项式函数、三角函数、有理函数,等等,并且它是有限维的线性子空间. 设Φ=span {φ1(t ),…,φn (t )},则Φ的任一元素可表示为:

S (t )=Σj=1n x j φj (t ), (6.8)

其中x 1,…,x n ∈?.

连续函数的最佳平方逼近问题就是求S (t )∈Φ,使 ‖S (t )?f (t )‖2达到最小值. 利用公式(6.8)以及2-范数的定义,上述问题等价于最小化

F =‖S (t )?f (t )‖22=∫[Σj=1n x j φj (t )?f (t )]2dt b a .

(6.9)

F 是关于实系数x 1,x 2,…,x n 的多元函数,需求出F 的最小值对应的那组系数x 1,x 2,…,x n .

二. 法方程方法

下面推导如何求(6.9)式的最小值点. 为了记号简便,省略函数记号中的“(t )”,即直接

② 由原苏联数学家伯恩斯坦(1880—1968)于1912年提出.

f ?=f (3)=f (2)?2v 2T f (2)v 2T v 2v 2=[ ?4.2061330.399807?0.004750130.0009512830.00195269]

, 此时矩阵A 经变换为: R =A (3)=[ ?2.236068?3.35410200.790569000000

] . 根据算法6.3,需求解方程R 1x =b ,其中

R 1=[?2.236068?3.35410200.790569],b =[?4.2061330.399807

]. 解得:x =[1.12250.5057]T ,即拟合公式为y ?=1.1225+0.5057t ,它与例6.6, 6.7得到的结果是一样的.

根据表格函数与其函数值向量的对应关系可证明,算法6.3与通过Gram-Schmidt 正交化过程求最佳逼近函数的方法在数学上是等价的. 不同之处在于:前者不涉及正交函数族,直接得到原基函数对应的拟合系数;前者的主要计算是矩阵的QR 分解,它可通过Householder 变换或Givens 旋转变换等不同方法实现. 由于算法6.3直接利用矩阵的QR 分解的特点,它更易于实现和应用,而且稳定性比算法6.2好. 最后说明一点,若初始的表格函数φ1(t ),…,φn (t )线性相关,矩阵A 不是列满秩的,QR 分解也能进行,但得到的上三角阵R 1奇异. 可以证明,这种情况下有无穷多个最小二乘解,详细的讨论请参考[6].

一. 问题背景

1945年7月16日,美国科学家在新墨西哥州Los Alamos

沙漠试爆了世界上第一颗原子弹,这一事件令全球震惊. 但在当

时有关原子弹爆炸的任何资料都是保密的,而很多其他国家的

科学家非常想知道这次爆炸的威力有多大.

两年之后,美国政府首次公开了这次爆炸的录像带,而其

他数据和资料仍然不被外界所知. 英国物理学家G. I. Taylor

(1886 ~ 1975)通过研究原子弹爆炸的录像带,建立数学模型对爆

炸所释放出的能量进行了估计,得到估计值与若干年后正式公

布的爆炸能量21 kt 相当接近(1 kt 为

1千吨TNT 炸药的爆炸能量). Taylor 是如何根据爆炸录像估计的呢?主要是通过测量爆

炸形成的“蘑菇云”半径来进行估计的(如图(A)). 因为爆炸产生的冲击波从中心点向外传播,爆炸的能量越大,在相同时间内冲击波传播得越远、蘑菇云的半径就越大. Taylor 通过

图(A) 原子弹爆炸的蘑菇云.

*t 的单位为ms, r 的单位为m.

然后通过量纲分析法建立了蘑菇云半径r 与时间t 和爆炸能量E 的关系式,利用上述数据最后求出了爆炸的能量.

二. 数学模型

考虑到原子弹爆炸在极短的时间内释放出巨大的能量,蘑菇云半径r 主要与时间t 、爆炸能量E 、以及空气密度ρ等几个参数有关. 通过仔细分析这几个量的单位,采用量纲分析法得到如下的蘑菇云半径的近似表达式:

r =(t 2E )15

. 其中r , t , E 的单位分别为米(m), 秒(s)和焦耳,

而空气密度ρ的值为1.25 (kg m 3?). 对这次原子弹爆炸来说,E 为一固定值,因此r 与t 2成正

比. 图(B)是根据蘑菇云半径与对应时刻的数据画出的散点图,它大体反映了这个趋势. 接下

来的问题是如何求未知的参数E .

三. 求解过程

首先,改写蘑菇云半径的公式为r =at b 的

形式,通过测量数据拟合出参数a 和b ,来验证

量纲分析法得到的公式. 要作线性最小二乘拟

合,进一步改写公式为:

lnr =lna +blnt . 根据测量数据我们得到lnr 和lnt 的数据,将它

们的函数关系拟合为1次多项式,得到系数b =0.4094,其值与前面分析的结果2/5非常接近,从而验证了量纲分析得到的公式.

为了更为准确地计算爆炸能量E ,将蘑菇云半径公式改写为:

5lnr ?2lnt =ln (E ) . 此时可根据测量数据得到5lnr ?2lnt 对应的一组数据,将它拟合为0次多项式(常数),设得到拟合系数为c ,则

E ≈ρ?e c .

根据此方法算出E ≈8.6418×1013,单位为焦耳,查表得知1kt=4.184×1012焦耳,因此爆炸能量约等于20.65 kt.

6.4函数插值与拉格朗日插值法

函数插值可看作一种“特殊”的函数逼近问题,其逼近采用的“度量”准则是要求在插值节点处误差函数的值为0. 本节先介绍关于插值(interpolation)的一些基本概念,然后讨论最简单的一种多项式插值——拉格朗日插值法.

图(B) 蘑菇云半径与对应时刻的数据 r

t

个节点:x 0

样条函数进行组合. 可以证明,它们在区间[x 0,x n ]上的部分组成n+k 个线性无关的基函数. 因此,对于满足额外边界条件的[x 0,x n ]上的k 次样条函数,可唯一地用这些基函数的线性组合表示. 感兴趣地读者可以推导B i 3(x )的表达式,然后利用插值条件和边界条件列方程求这些基函数对应的系数,进而推导出三次样条插值函数的表达式. 这个计算过程将与上一小节的方法得到相同的结果.

利用B-样条基函数,可得到确定和计算各阶样条插值的有效而稳定的方法. 此外,它在计算机图形学、几何建模,以及数值求解微分方程等领域都有广泛的应用.

评述

关于多项式逼近和插值问题的研究历史悠久,应用面也很广. 本章只讨论了一元函数的最佳平方逼近,更多的相关内容,包括多元函数的逼近、正交多项式等,可参考下述文献:

● P . J. Davis, Interpolation and Approximation , Dover, 1975.

● W. Cheney, Introduction to Approximation Theory , AMS Chelsea Publishing, 2nd edition,

1998.

● G. A. Baker, and P . R. Graves-Morris, Pade Approximations , Cambridge University Press,

2nd edition, 1996.

● W. Gautschi, “Orthogonal polynomials: Applications and computation,” Acta Numerica ,

Vol. 5, pp. 45-119, 1996.

最佳平方逼近的法方程方法在1795年由高斯提出. 格莱姆-斯密特正交化方法在1883年由格莱姆提出,1907年斯密特给出了现代算法. 在求解最小二乘问题中使用QR 分解方法,特别是使用Householder 变换的方法是在1965年由G. Golub ⑥提出的. 最小二乘方法是统计学的重要工具,也称为回归分析,很多常用的数据处理软件(比如微软公司的Excel 软件)都具有这个功能. 本章讨论的线性最小二乘问题实际上是一种最简化的形式,即假设待逼近函数是基函数的线性组合. 在实际应用中还常遇到非线性最小二乘问题,它属于非线性优化问题,见参考文献[6]及其中给出的更多文献. 另外,若考虑所有参量都带有随机误差的情形,则成为完全最小二乘问题,有关详细讨论见文献:

● S. Van Huffel and J. Vandewalle, The Total Least Squares Problem , SIAM Press, 1991. 本章也没有讨论拟合的基函数可能线性相关的情况,这在实际中可能由于拟合模型的不合理或数值误差造成,它使得矩阵A 列不满秩. 此时最佳平方逼近解不唯一,要得到实际有用的一个逼近解,需采用列重排的QR 分解等技术,更多讨论参见文献[6]及其他文献.

多项式插值问题历史非常悠久,牛顿、拉格朗日等都在这方法做出了很多贡献. 除了将函数值作为条件的插值问题,插值条件中包括各阶导数值的情况也常见于各种工程应用中. 目前,常用的文档编辑软件都已使用保形分段插值来绘制曲线,例如微软公司的Word 和Power Point 软件. 样条函数是1946年由Schoenberg 首先提出的,本章只讨论了一维数据的样条插值和B-样条函数,实际问题中还有高维的插值问题,尤其在计算机图形学中二维B-样条是一个重要的工具. 关于样条的参考文献主要有:

● C. de Boor, A Practical Guide to Splines , Springer-Verlag, 2nd edition, 1984.

● E. V. Shikin and A. I. Plis, Handbook on Splines for the User , CRC Press, 1995.

最后,列表说明Matlab 中与本章讨论的函数逼近与插值有关的命令和功能.

⑥ Gene H. Golub (1932-2007), 美国斯坦福大学计算机系教授,美国科学院、工程院、艺术与科学院三院院士,著名的数值计算专家,1996年出版的著作”Matrix Computations ” [21]被奉为矩阵计算领域的经典.

线拟合与样条插值的功能.

[本章知识点]: 连续函数的范数;内积及其性质;内积空间的格莱姆矩阵、及其非奇异的充要条件;权函数与加权内积;最佳一致逼近与最佳平方逼近的概念;法方程方法求连续函数的最佳平方逼近;最佳平方逼近的误差;正交函数族与Gram-Schimdit正交化过程;勒让德多项式;用正交函数族作最佳平方逼近;曲线拟合的线性最小二乘问题;线性最小二乘问题的矩阵描述;法方程方法解线性最小二乘问题;表格函数的线性无关性与相关性;利用矩阵的QR分解解线性最小二乘问题;插值的基本概念;范德蒙矩阵与多项式插值的存在唯一性;拉格朗日插值公式;拉格朗日插值余项公式;牛顿插值公式;差商的计算;牛顿插值余项公式;高次多项式插值的问题;分段线性插值;埃尔米特插值;分段三次埃尔米特插值;保形分段插值;三次样条插值及边界条件;三次样条插值的构造方法;三弯矩方程;几种插值的比较;B-样条函数的基本概念与性质.

算法背后的历史:拉格朗日与插值法

约瑟夫·路易斯·拉格朗日(Joseph-Louis Lagrange,1736年1月25日—1813年4月10

日)是法国数学家、物理学家. 他在数学、力学和天文学三个领域中都

有巨大的贡献,其中尤以数学方面的成就最为突出. 拉格朗日与同时代

的勒让德(Legendre)、拉普拉斯(Laplace)并称为法国的3L.

拉格朗日于1736年生于意大利西北部的都灵. 17岁时,开始专攻当

时迅速发展的数学分析. 1756年,受欧拉的举荐,拉格朗日被任命为普

鲁士科学院通讯院士. 1766年赴柏林任普鲁士科学院数学部主任,居住

柏林达20年之久,这是他一生科学研究的鼎盛时期. 在此期间,他完成

了著作《分析力学》. 1786年加入了巴黎科学院成立的研究法国度量衡统一问题的委员会,并出任法国米制委员会主任. 1795年建立了法国最高学术机构——法兰西研究院后,拉格朗

样条插值函数与应用

样条插值函数及应用

摘要 样条函数具有广泛的应用,是现代函数论的一个十分活跃的分支,是计算方法的主要基础和工具之一,由于生产和科学技术向前发展的推动以及电子计算机广泛应用的需要,人们便更多地应用这个工具,也更深刻的认识了它的本质。 在实际问题中所遇到许多函数往往很复杂,有些甚至是很难找到解析表达式的。根据函数已有的数据来计算函数在一些新的点处的函数值,就是插值法所需要解决的问题。 插值法是数值逼近的重要方法之一,它是根据给定的自变量值和函数值,求取未知函数的近似值。早在一千多年前,我国科学家就在研究历法时就用到了线性插值和二次插值。而在实际问题中,有许多插值函数的曲线要求具有较高的光滑性,在整个曲线中,曲线不但不能有拐点,而且曲率也不能有突变。因此,对于插值函数必须二次连续可微且不变号 ,这就需要用到三次样条插值。 关键词三次样条函数;插值法

目录 引言 0 第一章三次样条插值 (1) 1.1 样条插值函数简介 (1) 1.2 三次样条函数应用 (2) 第二章AMCM91A 估计水塔水流量 (4) 2.1 理论分析及计算 (5) 2.2运用MATLAB软件计算 (8) 参考文献 (13)

引言 样条函数具有广泛的应用,是现代函数论的一个十分活跃的分支,是计算方法的主要基础和工具之一,由于生产和科学技术向前发展的推动以及电子计算机广泛应用的需要,人们便更多地应用这个工具,也更深刻的认识了它的本质。上世纪四十年代,在研究数据处理的问题中引出了样条函数,例如,在1946年Schoenberg将样条引入数学,即所谓的样条函数,直到五十年代,还多应用于统计数据的处理方面,从六十年代起,在航空、造船、汽车等行业中,开始大量采用样条函数。 在我国,从六十年代末开始,从船体数学放样到飞机外形设计,逐渐出现了一个使用样,逐渐出现了一个使用样条函数的热潮,并推广到数据处理的许多问题中。 在实际生活中有许多计算问题对插值函数的光滑性有较高的要求,例如飞机机翼外形、发动机进、排气口都要求有连续的二阶导数,用三次样条绘制的曲线不仅有很好的光滑度,而且当节点逐渐加密时其函数值整体上能很好地逼近被插函数,相应的导数值也收敛于被插函数的导数值,不会发生“龙格现象”。 现在国内外学者对这方面的研究也越来越重视,根据我们的需要来解决不同的问题,而且函数的形式也在不断地改进,长期以来很多学者致力于样条插值的研究,对三次样条的研究已相当成熟。

计算方法 课内实验 插值法与函数逼近

《计算方法》课内实验报告 学生姓名:张学阳1009300132 及学号: 学院: 理学院 班级: 数学101 课程名称:计算方法 实验题目:插值法与函数逼近 指导教师 宋云飞讲师 姓名及职称: 朱秀丽讲师 尚宝欣讲师 2012年10月15日

目录 一、实验题目.......................................................... 错误!未定义书签。 二、实验目的.......................................................... 错误!未定义书签。 三、实验内容.......................................................... 错误!未定义书签。 四、实现结果.......................................................... 错误!未定义书签。 五、实验体会或遇到问题 (6)

插值法与函数逼近 二、实验目的 1.熟悉matlab 编写及运行数值计算程序的方法。 2.进一步理解插值法及函数逼近方法的理论基础。 3.进一步掌握给定数据后应用插值法及函数逼近方法进行数据处理并给出图示结果的实际操作过程。 三、实验内容 1.已知函数在下列各点的值为 试用4次牛顿插值多项式)(4x P 及三次样条函数)(x S (自然边界条件)对数据进行插值。给出求解过程,并用图给出 (){},10,1,0),()(,08.02.0,,4 ===+=i x S y x P y i x y x i i i i i 及。 2.下列数据点的插值 可以得到平方根函数的近似。 (1)用这9个点作8次多项式插值)(8x L 。 (2)用三次样条(第一类边界条件)插值给出)(x S 。 给出求解过程,在区间[0,64]上作图,从得到的结果看,在区间[0,64]上哪种插值结果更精确?在区间[0,1]上两种插值哪个更精确? 3.由实验给出数据表 试求3次、4次多项式的曲线拟合,再根据数据曲线形状,求一个另外函数的拟合曲线。给出求解过程,用图表示实验数据曲线及三种拟合曲线。

对样条函数及其插值问题的一点认识

对样条函数及其插值问题的一点认识 样条函数是计算数学以及计算机辅助设计几何设计的重要工具。1946年,I. J. Schoenberg 著名的关于一元样条函数的奠定性论文“Contribution to the problem of application of equidistant data by analytic functions ”发表,建立了一元样条函数的理论基础。自此以后,关于样条函数的研究工作逐渐深入。随着电子计算机技术的不断进步,样条函数的理论以及应用研究得到迅速的发展和广泛的应用。经过数学工作者的努力,已经形成了较为系统的理论体系。 所谓(多项式)样条函数,乃指具有一定光滑性的分段(分片)多项式。一元n 次且n -1阶连续可微的样条函数具有如下的表示式: 1()()()()N n n j j j s x p x c x x x +==+--∞<<+∞∑[] 011,00,01,,...,,(1),...,(),,...,,n n n n N n N N u un u u u u x x x x x S x x x x ++++ +≥??=??

MATLAB数值实验一(数据的插值运算及其应用完整版)

佛山科学技术学院 实 验 报 告 课程名称 数值分析 实验项目 插值法与数据拟合 专业班级 机械工程 姓 名 余红杰 学 号 10 指导教师 陈剑 成 绩 日 期 月 日 一、实验目的 1、学会Lagrange 插值、牛顿插值和三次样条插值等基本插值方法; 2、讨论插值的Runge 现象 3、学会Matlab 提供的插值函数的使用方法,会用这些函数解决实际问题。 二、实验原理 1、拉格朗日插值多项式 2、牛顿插值多项式 3、三次样条插值 三、实验步骤 1、用MATLAB 编写独立的拉格朗日插值多项式函数 2、用MATLAB 编写独立的牛顿插值多项式函数 3、用MATLAB 编写独立的三次样条函数(边界条件为第一、二种情形) 4、已知函数在下列各点的值为: 根据步骤1,2,3编好的程序,试分别用4次拉格朗日多项式4()L x 、牛顿插值多项式4()P x 以及三次样条函数()S x (自然边界条件)对数据进行插值,并用图给出 {(,),0.20.08,0,1,2, ,10i i i x y x i i =+=},4()L x 、4()P x 和()S x 。 5、在区间[-1,1]上分别取10,20n =用两组等距节点对龙格函数 2 1 (),(11)125f x x x = -≤≤+作多项式插值,对不同n 值,分别画出插值函数及()f x 的图形。 6、下列数据点的插值

可以得到平方根函数的近似,在区间[0,64]上作图。 (1)用这9个点作8次多项式插值8()L x 。 (2)用三次样条(第一边界条件)程序求()S x 。 7、对于给函数2 1 ()125f x x = +在区间[-1,1]上取10.2(0,1, ,10)i x i i =-+=,试求3次 曲线拟合,试画出拟合曲线并打印出方程,与第5题的结果比较。 四、实验过程与结果: 1、Lagrange 插值多项式源代码: function ya=lag(x,y,xa) %x 所有已知插值点 %y 插值点对应函数值 %xa 所求点,自变量 %ya 所求点插值估计量 ya=0; mu=1; %初始化 %循环方式求L 系数,并求和: for i = 1:length(y) for j = 1:length(x) if i ~= j mu = mu * (xa - x(j) ) / ( x(i) - x(j) ); else continue end end ya = ya + y(i) * mu ; mu = 1; end 2、Newton 源代码: function ya = newton(x,y,xa) %x 所有已知插值点 %y 插值点对应函数值 %xa 所求点,自变量 %ya 所求点插值估计量 %建立系数零矩阵D 及初始化:

数据插值和函数逼近 MATLAB实现

数据插值和函数逼近 1 数据插值 由已知样本点,以数据更为平滑为目标,求出其他点处的函数 值。在信号处理与图像处理上应用广泛。 求解方法: y1=interp1(x,y,x1,'方法') z1=interp2(x,y,z,x1,y1,'方法') 1.1 一维数据的插值 例:假设样本点来自x e x x x f x sin )53()(52-+-=,进行插值处理,得到平 例:草图样条曲线功能。 function sketch() x=[]; y=[]; gca; hold on; axis([0 1,0 1]); while 1 [x0,y0,button]=ginput(1);

if(isempty(button)) break; end; x=[x x0]; y=[y y0]; plot(x,y,'*'); end; xx=[x(1):(x(end)-x(1))/100:x(end)]; yy=interp1(x,y,xx,'spline'); plot(xx,yy,x,y,'*'); end 1.2 二维网格数据的插值 例3:假设样本点来自xy y x e x x z ----=2 2)2(2,进行插值处理,得到平滑的曲

1.3 二维一般分布数据的插值 例4:假设样本点来自xy y x e x x z ----=22)2(2,进行插值处理,得到平滑的曲 2 样条插值函数逼近 由已知样本点,求能对其较好拟合的函数表达式。 求解方法: S=csapi(x,y); % 定义一个三次样条函数类 S=spapi(k,x,y); % 定义一个k 次B 样条函数类 ys=fnval(S,xs); % 计算插值结果 fnplt(S); % 绘制插值结果 例:从)sin(x y =中取样本点,计算三次样条函数。

Matlab中插值函数汇总和使用说明.

告: Matlab中插值函数汇总和使用说明收藏 命令1 interp1 功能一维数据插值(表格查找。该命令对数据点之间计算内插值。它找出一元函数f(x在中间点的数值。其中函数f(x由所给数据决定。x:原始数据点 Y:原始数据点 xi:插值点 Yi:插值点 格式 (1yi = interp1(x,Y,xi 返回插值向量yi,每一元素对应于参量xi,同时由向量x 与Y 的内插值决定。参量x 指定数据Y 的点。 若Y 为一矩阵,则按Y 的每列计算。yi 是阶数为length(xi*size(Y,2的输出矩阵。 (2yi = interp1(Y,xi 假定x=1:N,其中N 为向量Y 的长度,或者为矩阵Y 的行数。 (3yi = interp1(x,Y,xi,method 用指定的算法计算插值: ’nearest’:最近邻点插值,直接完成计算; ’linear’:线性插值(缺省方式,直接完成计算;

’spline’:三次样条函数插值。对于该方法,命令interp1 调用函数spline、ppval、mkpp、umkpp。这些命令生成一系列用于分段多项式操作的函 数。命令spline 用它们执行三次样条函数插值; ’pchip’:分段三次Hermite 插值。对于该方法,命令interp1 调用函数p chip,用于对向量x 与y 执行分段三次内插值。该方法保留单调性与数据的外形; ’cubic’:与’pchip’操作相同; ’v5cubic’:在MATLAB 5.0 中的三次插值。 对于超出x 范围的xi 的分量,使用方法’nearest’、’linear’、’v5cubic’的插值算法,相应地将返回NaN。对其他的方法,interp1 将对超出的分量执行外插值算法。 (4yi = interp1(x,Y,xi,method,'extrap' 对于超出x 范围的xi 中的分量将执行特殊的外插值法extrap。 (5yi = interp1(x,Y,xi,method,extrapval 确定超出x 范围的xi 中的分量的外插值extrapval,其值通常取NaN 或0。 例1 1.>>x = 0:10; y = x.*sin(x; 2.>>xx = 0:.25:10; yy = interp1(x,y,xx; 3.>>plot(x,y,'kd',xx,yy 复制代码 例2 1.>> year = 1900:10:2010;

插值法实验报告

实验二插值法 1、实验目的: 1、掌握直接利用拉格郎日插值多项式计算函数在已知点的函数值;观察拉格郎日插值的龙格现象。 2、了解Hermite插值法、三次样条插值法原理,结合计算公式,确定函数值。 2、实验要求: 1)认真分析题目的条件和要求,复习相关的理论知识,选择适当的解决方案和算法; 2)编写上机实验程序,作好上机前的准备工作; 3)上机调试程序,并试算各种方案,记录计算的结果(包括必要的中间结果); 4)分析和解释计算结果; 5)按照要求书写实验报告; 3、实验内容: 1) 用拉格郎日插值公式确定函数值;对函数f(x)进行拉格郎日插值,并对f(x)与插值多项式的曲线作比较。 已知函数表:(0.56160,0.82741)、(0.56280,0.82659)、(0.56401,0.82577)、(0.56521,0.82495)用三次拉格朗日插值多项式求x=0.5635时函数近似值。 2) 求满足插值条件的插值多项式及余项 1) 4、题目:插值法 5、原理: 拉格郎日插值原理: n次拉格朗日插值多项式为:L n (x)=y l (x)+y 1 l 1 (x)+y 2 l 2 (x)+…+y n l n (x)

n=1时,称为线性插值, L 1(x)=y (x-x 1 )/(x -x 1 )+y 1 (x-x )/(x 1 -x )=y +(y 1 -x )(x-x )/(x 1 -x ) n=2时,称为二次插值或抛物线插值, L 2(x)=y (x-x 1 )(x-x 2 )/(x -x 1 )/(x -x 2 )+y 1 (x-x )(x-x 2 )/(x 1 -x )/(x 1 -x 2 )+y 2 (x -x 0)(x-x 1 )/(x 2 -x )/(x 2 -x 1 ) n=i时, Li= (X-X0)……(X-X i-1)(x-x i+1) ……(x-x n) (X-X0)……(X-X i-1)(x-x i+1) ……(x-x n) 6、设计思想: 拉格朗日插值法是根据n + 1个点x0, x1, ... x n(x0 < x1 < ... x n)的函数值f (x0), f (x1) , ... , f (x n)推出n次多項式p(x),然后n次多項式p (x)求出任意的点x对应的函数值f (x)的算法。 7、对应程序: 1 ) 三次拉格朗日插值多项式求x=0.5635时函数近似值 #include"stdio.h" #define n 5 void main() { int i,j; float x[n],y[n]; float x1; float a=1; float b=1; float lx=0; printf("\n请输入想要求解的X:\n x="); scanf("%f",&x1); printf("请输入所有点的横纵坐标:\n"); for(i=1;i

三次样条插值方法的应用

CENTRAL SOUTH UNIVERSITY 数值分析实验报告

三次样条插值方法的应用 一、问题背景 分段低次插值函数往往具有很好的收敛性,计算过程简单,稳定性好,并且易于在在电子计算机上实现,但其光滑性较差,对于像高速飞机的机翼形线船体放样等型值线往往要求具有二阶光滑度,即有二阶连续导数,早期工程师制图时,把富有弹性的细长木条(即所谓的样条)用压铁固定在样点上,在其他地方让他自由弯曲,然后沿木条画下曲线,称为样条曲线。样条曲线实际上是由分段三次曲线并接而成,在连接点即样点上要求二阶导数连续,从数学上加以概括就得到数学样条这一概念。下面我们讨论最常用的三次样条函数及其应用。 二、数学模型 样条函数可以给出光滑的插值曲线(面),因此在数值逼近、常微分方程和偏微分方程的数值解及科学和工程的计算中起着重要的作用。 设区间[]b ,a 上给定有关划分b x x n =<<<= 10x a ,S 为[]b ,a 上满足下面条件的函数。 ● )(b a C S ,2∈; ● S 在每个子区间[]1,+i i x x 上是三次多项式。 则称S 为关于划分的三次样条函数。常用的三次样条函数的边界条件有三种类型: ● Ⅰ型 ()()n n n f x S f x S ''0'',==。 ● Ⅱ型 ()()n n n f x S f x S ''''0'''',==,其特殊情况为()()0''''==n n x S x S 。 ● Ⅲ型 ()() 3,2,1,0,0==j x S x S n j j ,此条件称为周期样条函数。 鉴于Ⅱ型三次样条插值函数在实际应用中的重要地位,在此主要对它进行详细介绍。 三、算法及流程 按照传统的编程方法,可将公式直接转换为MATLAB 可是别的语言即可;另一种是运用矩阵运算,发挥MATLAB 在矩阵运算上的优势。两种方法都可以方便地得到结果。方法二更直观,但计算系数时要特别注意。这里计算的是方法一的程序,采用的是Ⅱ型边界条件,取名为spline2.m 。 Matlab 代码如下: function s=spline2(x0,y0,y21,y2n,x) %s=spline2(x0,y0,y21,y2n,x) %x0,y0 are existed points,x are insert points,y21,y2n are the second

数值分析(计算方法)实验一

《数值分析》 课程实验指导书 实验一 函数插值方法 一、问题提出 对于给定的一元函数)(x f y =的n+1个节点值(),0,1,,j j y f x j n == 。试用Lagrange 公式求其插值多项式或分段二次Lagrange 插值多项式。 数据如下: (1) j x 0.4 0.55 0.65 0.80 0.95 1.05 j y 0.41075 0.57815 0.69675 0.90 1.00 1.25382 求五次Lagrange 多项式5L ()x ,和分段三次插值多项式,计算(0.596)f ,(0.99)f 的值。(提示:结果为(0.596)0.625732f ≈, (0.99) 1.05423f ≈ ) (2) j x 1 2 3 4 5 6 7 j y 0.368 0.135 0.050 0.018 0.007 0.002 0.001 试构造Lagrange 多项式6L ()x ,计算的(1.8)f ,(6.15)f 值。(提示:结果为(1.8)0.164762f ≈, (6.15)0.001266f ≈ ) 二、要求 1、 利用Lagrange 插值公式 00,()n n i n k k i i k k i x x L x y x x ==≠??-= ?-??∑∏编写出插值多项式程序; 2、 给出插值多项式或分段三次插值多项式的表达式; 3、 根据节点选取原则,对问题(2)用三点插值或二点插值,其结果如何; 4、 对此插值问题用Newton 插值多项式其结果如何。

四、实验分析: Lagrange 插值多项式的表达式: 1,,2,1,)()()(, )()(1111+=--==∏∑+≠=+=n i x x x x x l x l y x L n i j j j i j i n i i i 。 其中)(x l i 被称为插值基函数,实际上是一个n 次多项式。)(x l i 的这种表示具有较好的对称性。公式具有两大优点:(1)求插值多项式,不需要求解线性方程组,当已知数据点较多时,此公式更能显示出优越性。(2)函数值可以用符号形式表示,数据点未确定的纵坐标可用多项式表示。 Newton 插值多项式如下: 10010,()()[,,]()k n n j k k j j k N x f x f x x x x -==≠=+?-∑∏ 其中: 00,0()()[,,]k i k i i j j j i k f x x x f x x ==≠-=∑∏ Newton 插值多项式的优点是:当每增加一个节点时,只增加一项多项式。 三、实验程序及注释 1、m 程序: function [c,l]=lagran(x,y) % x 为n 个节点的横坐标组成的向量,y 为纵坐标所组成的向量 % c 为所得插值函数的系数所组成的向量 w=length(x); n=w-1; l=zeros(w,w); for k=1:n+1 v=1; for j=1:n+1 if k~=j v=conv(v,poly(x(j)))/(x(k)-x(j)); end end l(k,:)=v; end c=y*l; function fi=Lagran_(x,f,xi) fi=zeros(size(xi)); n=length(f); for i=1:n

三次样条插值作业题

例1 设)(x f 为定义在[0,3]上的函数,有下列函数值表: 且2.0)('0=x f ,1)('3-=x f ,试求区间[0,3]上满足上述条件的三次样条插值函数)(x s 本算法求解出的三次样条插值函数将写成三弯矩方程的形式: ) ()6()() 6()(6)(6)(211123 13 1j j j j j j j j j j j j j j j j x x h h M y x x h h M y x x h M x x h M x s -- + -- + -+ -= +++++其中,方程中的系数 j j h M 6, j j h M 61+,j j j j h h M y )6(2- , j j j j h h M y ) 6(211++- 将由Matlab 代码中的变量Coefs_1、Coefs_2、Coefs_3以及Coefs_4的值求出。 以下为Matlab 代码: %============================= % 本段代码解决作业题的例1 %============================= clear all clc % 自变量x 与因变量y ,两个边界条件的取值 IndVar = [0, 1, 2, 3]; DepVar = [0, 0.5, 2, 1.5]; LeftBoun = 0.2; RightBoun = -1; % 区间长度向量,其各元素为自变量各段的长度 h = zeros(1, length(IndVar) - 1); for i = 1 : length(IndVar) - 1 h(i) = IndVar(i + 1) - IndVar(i); end % 为向量μ赋值

关于三次样条插值函数的学习报告(研究生)资料

学习报告—— 三次样条函数插值问题的讨论 班级:数学二班 学号:152111033 姓名:刘楠楠

样条函数: 由一些按照某种光滑条件分段拼接起来的多项式组成的函数;最常用的样条函数为三次样条函数,即由三次多项式组成,满足处处有二阶连续导数。 一、三次样条函数的定义: 对插值区间[,]a b 进行划分,设节点011n n a x x x x b -=<< <<=,若 函数2()[,]s x c a b ∈在每个小区间1[,]i i x x +上是三次多项式,则称其为三次样条函数。如果同时满足()()i i s x f x = (0,1,2)i n =,则称()s x 为()f x 在 [,]a b 上的三次样条函数。 二、三次样条函数的确定: 由定义可设:101212 1(),[,] (),[,]()(),[,] n n n s x x x x s x x x x s x s x x x x -∈??∈?=???∈?其中()k s x 为1[,]k k x x -上的三次 多项式,且满足11(),()k k k k k k s x y s x y --== (1,2,,k n = 由2()[,]s x C a b ∈可得:''''''()(),()(),k k k k s x s x s x s x -+-+== 有''1()(),k k k k s x s x -++= ''''1()(),(1 ,2,,1)k k k k s x s x k n -+ +==-, 已知每个()k s x 均为三次多项式,有四个待定系数,所以共有4n 个待定系数,需要4n 个方程才能求解。前面已经得到22(1)42n n n +-=-个方程,因此要唯一确定三次插值函数,还要附加2个条件,一般上,实际问题通常对样条函数在端点处的状态有要求,即所谓的边界条件。 1、第一类边界条件:给定函数在端点处的一阶导数,即 ''''00(),()n n s x f s x f == 2、第二类边界条件:给定函数在端点处的二阶导数,即

计算方法-插值方法实验

实验一插值方法 一. 实验目的 (1)熟悉数值插值方法的基本思想,解决某些实际插值问题,加深对数值插值方法 的理解。 (2)熟悉Matlab 编程环境,利用Matlab 实现具体的插值算法,并进行可视化显示。 二. 实验要求 用Matlab 软件实现Lagrange 插值、分段线性插值、三次Hermite 插值、Aitken 逐步插值算法,并用实例在计算机上计算和作图。 三. 实验内容 1. 实验题目 (1 ) 已 知概 率积 分dx e y x x ?-= 2 2 π 的数据表 构造适合该数据表的一次、二次和三次Lagrange 插值公式,输出公式及其图形,并计算x =0.472时的积分值。 答: ①一次插值公式: 输入下面内容就可以得到一次插值结果 >> X=[0.47,0.48];Y=[0.4937452,0.5027498]; >> x=0.472; >> (x-X(2))/(X(1)-X(2))*Y(1)+(x-X(1))/(X(2)-X(1))*Y(2) ans =0.495546120000000 >> ②两次插值公式为: 输入下面内容就可以得到两次插值结果 >> X=[0.46,0.47,0.48];Y=[0.4846555,0.4937452,0.5027498]; >> x=0.472; >>(x-X(2))*(x-X(3))/((X(1)-X(2))*(X(1)-X(3)))*Y(1)+(x-X(1))*(x-X(3))/((X(2)-X(1))*(X(2)-X(3)))*Y(2)+(x-X(2))*(x-X(1))/((X(3)-X(2))*(X(3)-X(1)))*Y(3) i 0 1 2 3 x 0.46 047 0.48 0.49 y 0.4846555 0.4937452 0.5027498 0.5116683

回归、插值、逼近、拟合的区别

回归、插值、逼近、拟合的区别 1、回归:一般指线性回归,是求最小二乘解的过程。在求回归前,已经假设所有型值点同时满足某一曲线方程,计算只要求出该方程的系数 2、多项式插值:用一个多项式来近似代替数据列表函数,并要求多项式通过列表函数中给定的数据点。(插值曲线要经过型值点。)离散的点 3、多项式逼近:为复杂函数寻找近似替代多项式函数,其误差在某种度量意义下最小。(逼近只要求曲线接近型值点,符合型值点趋势。)连续的函数 4、多项式拟合:在插值问题中考虑给定数据点的误差,只要求在用多项式近似代替列表函数时,其误差在某种度量意义下最小。离散的点 注意: 表列函数:给定n+1个不同的数据点(x0,y0),(x1,y1)...,(xn,yn),称由这组数据表示的函数为表列函数。 逼近函数:求一函数,使得按某一标准,这一函数y=f(x)能最好地反映这一组数据即逼近这一表列函数,这一函数y=f(x)称为逼近函数 插值函数:根据不同的标准,可以给出各种各样的函数,如使要求的函数y=f(x)在以上的n+1个数据点出的函数值与相应数据点的纵坐标相等,即yi=f(x1)(i=0,1,2....n)这种函数逼近问题称为插值问题,称函数y=f(x)为数据点的插值函数,xi称为插值点。 插值和拟合都是函数逼近或者数值逼近的重要组成部分 他们的共同点都是通过已知一些离散点集M上的约束,求取一个定义在连续集合S(M包含于S)的未知连续函数,从而达到获取整体规律的 目的,即通过"窥几斑"来达到"知全豹"。 简单的讲,所谓拟合是指已知某函数的若干离散函数值{f1,f2,…,fn},通过调整该函数中若干待定系数f(λ1, λ2,…,λ3), 使得该函数与已知点集的差别(最小二乘意义)最小。如果待定函数是线性,就叫线性拟合或者线性回归(主要在统计中),否则叫作非线性拟合或者非线性回归。表达式也可以是分段函数,这种情况下叫作样条拟合。 而插值是指已知某函数的在若干离散点上的函数值或者导数信息,通过求解该函数中待定形式的插值函数以及待定系数,使得该函数在给定离散点上满足约束。插值函数又叫作基函数,如果该基函数定义在整个定义域上,叫作全域基,否则叫作分域基。如果约束条件中只有函数值的约束,叫作Lagrange插值,否则叫作Hermite插值。 从几何意义上将,拟合是给定了空间中的一些点,找到一个已知形式未知参数的连续曲面来最大限度地逼近这些点;而插值是找到一个(或几个分片光滑的)连续曲面来穿过这些点。

实验5 插值方法

实验5 插值方法 一、实验目的及意义 [1] 了解插值的基本原理 [2] 了解拉格朗日插值、线性插值、样条插值的基本思想; [3] 了解三种网格节点数据的插值方法的基本思想; [4] 掌握用MATLAB 计算三种一维插值和两种二维插值的方法; [5] 通过范例展现求解实际问题的初步建模过程; 通过自己动手作实验学习如何用插值方法解决实际问题,提高探索和解决问题的能力。通过撰写实验报告,促使自己提炼思想,按逻辑顺序进行整理,并以他人能领会的方式表达自己思想形成的过程和理由。提高写作、文字处理、排版等方面的能力。二、实验内 容 1.编写拉格朗日插值方法的函数M 文件;2.用三种插值方法对已知函数进行插值计算,通过数值和图形输出,比较它们的效果;3.针对实际问题,试建立数学模型,并求解。 三、实验步骤 1.开启软件平台——MATLAB ,开启MATLAB 编辑窗口; 2.根据各种数值解法步骤编写M 文件 3.保存文件并运行; 4.观察运行结果(数值或图形); 5.写出实验报告,并浅谈学习心得体会。 四、实验要求与任务 根据实验内容和步骤,完成以下具体实验,要求写出实验报告(实验目的→问题→数学模型→算法与编程→计算结果→分析、检验和结论→心得体会) 基础实验 1. 一维插值 利用以下一些具体函数,考察分段线性插值、三次样条插值和拉格朗日多项式插值等三种插值方法的差异。 1) 2 11 x +,x ∈[-5,5]; 2)sin x , x ∈[0,2π]; 3)cos 10 x , x ∈[0,2π]. 注意:适当选取节点及插值点的个数;比较时可以采用插值点的函数值与真实函数值的 差异,或采用两个函数之间的某种距离。 2.高维插值 对于二维插值的几种方法:最邻近插值、分片线性插值、双线性插值、三次插值等,利用如下函数进行插值计算,观察其插值效果变化,得出什么结论? 1) ())(sin ),(px t t x f -=ω,参数p =1/2000~1/200;采样步长为:t =4ms~4s ;

计算方法--插值法与拟合实验

实验三 插值法与拟合实验 一、实验目的 1. 通过本实验学会利用程序画出插值函数,并和原图形相比较 2. 通过本实验学会拟合函数图形的画法,并会求平方误差 二、实验题目 1. 插值效果的比较 实验题目:区间[]5,5-10等分,对下列函数分别计算插值节点k x 的值,进行不同类型的插值,作出插值函数的图形并与)(x f y =的图形进行比较: 2 11)(x x f +=; x x f arctan )(=; 4 41)(x x x f += (1) 做拉格朗日插值; (2) 做三次样条插值. 2. 拟合多项式实验 实验题目:给定数据点如下表所示: 分别对上述数据作三次多项式和五次多项式拟合,并求平方误差,作出离散函数),(i i y x 和拟合函数的图形. 三、实验原理 本实验应用了拉格朗日插值程序、三次样条插值程序、多项式拟合程序等实验原理. 四、实验内容 1(1) figure x=-5:0.2:5; y=1./(1+x.^2); plot(x,y,'r'); hold on %拉格朗日插值 x1=-5:1:5; y1=1./(1+x1.^2); xx=-4.5:0.5:4.5; yy=malagr(x1,y1,xx); plot(xx,yy,'+') %三次样条插值 dy0=1./(1+25); dyn=1./(1+25);

m=maspline(x1,y1,dy0,dyn,xx); plot(xx,m,'ok') 1(2) x=-5:0.2:5; y=atan(x); plot(x,y,'r'); hold on %拉格朗日插值 x1=-5:1:5; y1=atan(x1); xx=-4.5:0.5:4.5; yy=malagr(x1,y1,xx); plot(xx,yy,'+') %三次样条插值 dy0=1./(1+25); dyn=1./(1+25); m=maspline(x1,y1,dy0,dyn,xx); plot(xx,m,'ok') 1(3) x=-5:0.2:5; y=x.^2./(1+x.^4); plot(x,y,'r'); hold on %拉格朗日插值 x1=-5:1:5; y1=x1.^2./(1+x1.^4); xx=-4.5:0.5:4.5; yy=malagr(x1,y1,xx); plot(xx,yy,'+') %三次样条插值 dy0=1./(1+25); dyn=1./(1+25); m=maspline(x1,y1,dy0,dyn,xx); plot(xx,m,'ok') 2. x=[-1.5 -1.0 -0.5 0.0 0.5 1.0 1.5]'; y=[-4.45 -0.45 0.55 0.05 -0.44 0.54 4.55]'; plot(x,y,'or'); hold on %三次多项式拟合 p1=mafit(x,y,3);

第6章 函数逼近与函数插值

第六章 函数逼近与函数插值 本章介绍函数逼近与插值的有关理论和算法. 函数逼近问题与插值问题两者既有联系又有区别,它们都是用较简单的函数来近似未知的、或表达式较复杂的函数. 一般来说,函数逼近是要在整个区间、或一系列离散点上整体逼近被近似函数,而在进行插值时,则须保证在若干自变量点上的函数值与被近似函数相等. 6.1 函数逼近的基本概念 进行函数逼近一般是在较简单的函数类Φ中找一个函数p(x)来近似给定的函数f(x),以使得在某种度量意义下误差函数p (x )?f(x)最小. 被逼近函数f(x)可能是较复杂的连续函数,也可能是只在一些离散点上定义的表格函数,而函数类Φ可以是多项式、分段多项式、三角函数、有理函数,等等. 函数逼近问题中度量误差的手段主要是函数空间的范数,下面先介绍函数空间的范数、内积等有关概念,然后讨论函数逼近问题的不同类型. 6.1.1 函数空间 线性空间的概念大家都很熟悉,其定义中包括一个元素集合和一个数域,以及满足一定运算规则的“加法”和“数乘”运算. 简单说,若这个元素集合对于“加法”和“数乘”运算封闭,则为一线性空间. 线性空间的元素之间存在线性相关和线性无关两种关系,进而又有空间的基和维数的概念. 在这里我们先考虑连续函数形成的线性空间. 例如C [a,b ]按函数加法、以及函数与实数乘法,构成一个线性空间. 对于[a,b]区间上所有k 阶导数连续的函数全体C k [a,b ],也类似地构成一个线性空间. 我们一般讨论实数函数,因此对应的是实数域?,若讨论复数函数,则相应的是复数域?. 另外,与线性代数中讨论的向量空间?n 不同,连续函数空间是无限维的. 对线性空间可以定义范数的概念(见3.1.2节). 针对实连续函数空间C [a,b ],与向量空间类似,可定义如下三种函数的范数(function norm): 1) ∞-范数 设f (x )∈C [a,b ],则‖f (x )‖∞=max x∈[a,b ]|f (x )| . 其几何意义如图6-1所示,即函数值绝 对值的最大值. 2) 1-范数 ‖f (x )‖1=∫|f (x )|dx b a . 其几何意义如图6-2所示,即函数曲线 与横轴之间的面积总和. 3) 2-范数 ‖f (x )‖2=[∫f 2(x )dx b a ]1/2. 2-范数也常称为平方范数,其几何意义 与1-范数类似. 线性空间还有一个重要概念是内积,它 定义了空间中两个元素的一种运算. 下面给出一般的复数域上线性空间内积的定义.

实验四 Lagrange函数插值方法(新)

实验四 Lagrange函数插值方法 一、问题提出 对于给定的一元函数的n+1个节点值 。试用Lagrange公式求其插值多项式或分段二次Lagrange 插值多项式。 数据如下: 试构造Lagrange多项式L,计算和的值。 二、要求 1、利用Lagrange插值公式 编写出插值多项式程序; 2、给出插值多项式或分段三次插值多项式的表达式; 3、根据节点选取原则,对问题(2)用三点插值或二点插值,其结果如何; 4、对此插值问题用Newton插值多项式其结果如何。 三、目的和意义 1、学会常用的插值方法,求函数的近似表达式,以解决其它实际问题; 2、明确插值多项式和分段插值多项式各自的优缺点; 3、熟悉插值方法的程序编制; 4、如果绘出插值函数的曲线,观察其光滑性。 四、实验源代码 #include #define N 7 float x[] = {1,2,3,4,5,6,7}; float y[] = {0.368,0.135,0.050,0.018,0.007,0.002,0.001}; float p(float xx)

{ int i,k; _______________ for( i=0; i

数值分析常用的插值方法

数值分析 报告 班级: 专业: 流水号: 学号: 姓名:

常用的插值方法 序言 在离散数据的基础上补插连续函数,使得这条连续曲线通过全部给定的离散数据点。插值是离散函数逼近的重要方法,利用它可通过函数在有限个点处的取值状况,估算出函数在其他点处的近似值。 早在6世纪,中国的刘焯已将等距二次插值用于天文计算。17世纪之后,牛顿、拉格朗日分别讨论了等距和非等距的一般插值公式。在近代,插值法仍然是数据处理和编制函数表的常用工具,又是数值积分、数值微分、非线性方程求根和微分方程数值解法的重要基础,许多求解计算公式都是以插值为基础导出的。 插值问题的提法是:假定区间[a,b〕上的实值函数f(x)在该区间上 n+1 个互不相同点x 0,x 1 (x) n 处的值是f(x ),……f(x n ),要求估算f(x)在[a,b〕 中某点的值。其做法是:在事先选定的一个由简单函数构成的有n+1个参数C , C 1,……C n 的函数类Φ(C ,C 1 ,……C n )中求出满足条件P(x i )=f(x i )(i=0,1,…… n)的函数P(x),并以P(x)作为f(x)的估值。此处f(x)称为被插值函数,x 0,x 1 ,……xn 称为插值结(节)点,Φ(C 0,C 1 ,……C n )称为插值函数类,上面等式称为插值条件, Φ(C 0,……C n )中满足上式的函数称为插值函数,R(x)= f(x)-P(x)称为 插值余项。

求解这类问题,它有很多种插值法,其中以拉格朗日(Lagrange)插值和牛顿(Newton)插值为代表的多项式插值最有特点,常用的插值还有Hermit 插值,分段插值和样条插值。 一.拉格朗日插值 1.问题提出: 已知函数()y f x =在n+1个点01,, ,n x x x 上的函数值01,, ,n y y y ,求任意一点 x '的函数值()f x '。 说明:函数()y f x =可能是未知的;也可能是已知的,但它比较复杂,很难计算其函数值()f x '。 2.解决方法: 构造一个n 次代数多项式函数()n P x 来替代未知(或复杂)函数()y f x =,则 用()n P x '作为函数值()f x '的近似值。 设()2012n n n P x a a x a x a x =+++ +,构造()n P x 即是确定n+1个多项式的系数 012,,,,n a a a a 。 3.构造()n P x 的依据: 当多项式函数()n P x 也同时过已知的n+1个点时,我们可以认为多项式函数 ()n P x 逼近于原来的函数()f x 。根据这个条件,可以写出非齐次线性方程组: 20102000 201121112012n n n n n n n n n n a a x a x a x y a a x a x a x y a a x a x a x y ?+++ +=?++++=??? ?+++ +=? 其系数矩阵的行列式D 为范德萌行列式: () 200021110 2 111n n i j n i j n n n n x x x x x x D x x x x x ≥>≥= = -∏

相关文档
最新文档