插值与拟合
插值与拟合实验
x x x x
j 1 j 1 j + 1 j + 1
, x , x 其
j 1
≤ x
x ≤
≤ x
x
j
j
≤ 它
j + 1
1 , 6≤ x≤6 【例 2】 g ( x ) = 】 2 1+ x
用分段线性插值法求插值,并观察插值误差 用分段线性插值法求插值 并观察插值误差. 并观察插值误差 1.在[-6,6]中平均选取 个点作插值 在 中平均选取5个点作插值 中平均选取 个点作插值(xch11) 2.在[-6,6]中平均选取 个点作插值 在 中平均选取11个点作插值 中平均选取 个点作插值(xch12) 3.在[-6,6]中平均选取 个点作插值 在 中平均选取21个点作插值 中平均选取 个点作插值(xch13) 4.在[-6,6]中平均选取 个点作插值 在 中平均选取41个点作插值 中平均选取 个点作插值(xch14)
Matlab程序: 程序: 程序 ch607.m
【例 5】 】 已知飞机下轮廓线上数据如下, 已知飞机下轮廓线上数据如下,求x每改变0.1时的y值。 每改变0.1时的y 0.1时的
X Y
0 0
3 5 7 9 11 12 13 14 15 12 17 20 21 20 18 12 10 16
机翼下 轮廓线
【例 6】 】 测得平板表面3*5网格点处的温度分别为: 3*5网格点处的温度分别为 测得平板表面3*5网格点处的温度分别为: 82 81 80 82 84 79 63 61 65 81 84 84 82 85 86 试作出平板表面的温度分布曲面z=f(x,y)的图形。 试作出平板表面的温度分布曲面z=f(x,y)的图形。 z=f(x,y)的图形 1.先在三维坐标画出原始数据,画出粗糙的温度分布曲图. 1.先在三维坐标画出原始数据,画出粗糙的温度分布曲图. 先在三维坐标画出原始数据 输入以下命令: 输入以下命令: x=1:5; y=1:3; temps=[82 81 80 82 84;79 63 61 65 81;84 84 82 85 86]; mesh(x,y,temps) 2.以平滑数据,在x、y方向上每隔0.2个单位的地方进行插值. 以平滑数据, 方向上每隔0.2个单位的地方进行插值. 0.2个单位的地方进行插值
数值计算方法插值与拟合
数值计算方法插值与拟合数值计算方法在科学计算和工程应用中起着重要的作用,其中插值和拟合是其中两个常用的技术。
插值是指通过已知的离散数据点来构造出连续函数或曲线的过程,拟合则是找到逼近已知数据的函数或曲线。
本文将介绍插值和拟合的基本概念和常见的方法。
一、插值和拟合的基本概念插值和拟合都是通过已知数据点来近似表达未知数据的方法,主要区别在于插值要求通过已知数据点的函数必须经过这些数据点,而拟合则只要求逼近这些数据点。
插值更加精确,但是可能会导致过度拟合;拟合则更加灵活,能够通过调整参数来平衡拟合精度和模型复杂度。
二、插值方法1. 线性插值线性插值是一种简单的插值方法,通过已知数据点构造出线段,然后根据插值点在线段上进行线性插值得到插值结果。
2. 拉格朗日插值拉格朗日插值是一种基于多项式插值的方法,通过已知数据点构造出一个多项式,并根据插值点求解插值多项式来得到插值结果。
3. 分段线性插值分段线性插值是一种更加灵活的插值方法,通过将插值区间分成若干小段,然后在每个小段上进行线性插值。
三、拟合方法1. 最小二乘法拟合最小二乘法是一种常用的拟合方法,通过最小化实际观测点和拟合函数之间的残差平方和来确定拟合函数的参数。
2. 多项式拟合多项式拟合是一种基于多项式函数的拟合方法,通过选择合适的多项式次数来逼近已知数据点。
3. 曲线拟合曲线拟合是一种更加灵活的方法,通过选择合适的曲线函数来逼近已知数据点,常见的曲线包括指数曲线、对数曲线和正弦曲线等。
四、插值与拟合的应用场景插值和拟合在实际应用中具有广泛的应用场景,比如图像处理中的图像重建、信号处理中的滤波器设计、金融中的风险评估等。
五、插值与拟合的性能评价插值和拟合的性能可以通过多种指标进行评价,常见的评价指标包括均方根误差、相关系数和拟合优度等。
六、总结插值和拟合是数值计算方法中常用的技术,通过已知数据点来近似表达未知数据。
插值通过已知数据点构造出连续函数或曲线,拟合则找到逼近已知数据的函数或曲线。
插值与拟合
Interpolation and Fitting 插值与拟合-V2.11. 前言Preface ............................................................................................................................................................................. 2 2. 插值与拟合 Interpolation and Fitting . (2)2.1. 最小二乘法理论基础(The basic theory of Least Squares Method )............................................................. 3 2.2. 数据拟合和曲线拟合(Data Fitting & Curve Fitting ) ........................................................................................ 3 3. 不同曲线的拟合模型 . (4)3.1. 线性模型 Y=C 1+C 2X ................................................................................................................................................... 4 3.2. 拋物线模型 y=C 1+C 2X+C 3X 22123y C C x C x =++ (5)3.3. 对数模型 Y=C 1+C 2ln(x) ............................................................................................................................................ 5 3.4. 指数模型 y=ae bx .......................................................................................................................................................... 5 3.5. 双曲模型 y=1/(C1+C2X) ......................................................................................................................................... 6 3.6. 幂模型 Power y=x n ..................................................................................................................................................... 6 3.7. 多项式拟合 Polynomial Fitting .. (6)3.7.1. 多项式拟合原理(共6步) ............................................................................................................................. 6 3.7.2. 多元函数求偏导的推导过程(共7步) ....................................................................................................... 10 3.7.3. 线性方程组解法-LU 分解法(共4步) ..................................................................................................... 15 3.7.4. 矩阵A 的LU 分解的流程图(共8步) . (18)4. 最小二乘法拟合范例 Example of Fitting by Least Squares Method (29)4.1. 先验证算法正确性 ...................................................................................................................................................... 29 4.2. 利用最小二乘法计算最优曲线 ................................................................................................................................... 29 4.3. VS2010中动态内存的申请 ........................................................................................................................................ 30 5. 添加绘画控件 .......................................................................................................................................................................... 32 6. 参考资料及课本错误之处 (35)6.1. 参考资料 ...................................................................................................................................................................... 35 6.2. 课本上的错误之处 (35)1. 前言Preface工作中需要根据已知的n 组数据,推测未来几个点的数据(或曲线的趋势),如健康指南。
插值和拟合区别
>> [xx,res]=lsqcurvefit(f,[1,1,1,1,1],x,y); xx',res
Optimization terminated successfully: Relative function value changing by less than
125.29*x^4+74.450*x^327.672*x^2+4.9869*x+.42037e-6
最小二乘曲线拟合
• 格式: [a, jm]=lsqcurvefit(Fun,a0,x,y)
例 >> x=0:.1:10; >> y=0.12*exp(-0.213*x)+0.54*exp(-0.17*x).*sin(1.23*x);
2*x0).*exp(-4*x0) x0.^2]; >> y1=A1*c; >> plot(x0,y1,x,y,'x')
例
• 数据分析
>> x=[1.1052,1.2214,1.3499,1.4918,1.6487,1.8221,2.0138,... 2.2255,2.4596,2.7183,3.6693];
0.1200 0.2130 0.5400 0.1700 1.2300 res = 9.5035e-021
• 绘制曲线: >> x1=0:0.01:10; y1=f(xx,x1); plot(x1,y1,x,y,'o')
插值与拟合
x[ a ,b ]
即:有界区间上的连续函数被多项式一致逼近。
§ 7.1.4 实际应用中两种方法的选择
在实际应用中,究竟选择哪种方法比较恰 当?总的原则是根据实际问题的特点来决定采 用哪一种方法。具体说来,可从以下两方面来 考虑:
1.如果给定的数据是少量的且被认为是严 格精确的,那么宜选择插值方法。采用插值方 法可以保证插值函数与被插函数在插值节点处 完全相等。
2.如果给定的数据是大量的测试或统计的 结果,并不是必须严格遵守的,而是起定性地 控制作用的,那么宜选用数据拟合的方法。这 是因为,一方面测试或统计数据本身往往带有 测量误差,如果要求所得的函数与所给数据完 全吻合,就会使所求函数保留着原有的测量误 差;另一方面,测试或统计数据通常很多,如 果采用插值方法,不仅计算麻烦,而且逼近效 果往往较差。
0
(
x)
1
2
x x1
x0 x0
x x0
x1 x1
2
1(x)
1
2
x x1 x0 x1
x x0 x1 x0
2
2
0
(
x)
(
x
x0
)
(7.2.3)
下 面 的 (7.2.9) 、 (7.2.10) 两 式 构 成 了 三 次 Hermite 插值基本提法二的插值公式
P3(x) = 0(x)y0 1(x)y1 0(x)m0 1(x)m1 (7.2.9)
0 ( x)
(x ( x0
第二章插值与拟合
1 不为零。
xn
n xn xn
实 用 测 量 数 据 处 理 方 法
中 南 大 学
三、线性插值
假定已知区间[xk, xk+1] 的端点处的函数值 yk=f(xk), yk+1=f(xk+1),要求线性插值多项式 L1(x),使它满足 L1(xk)=yk
L1(xk+1)=yk+1
则L1(x)的表达式可按下式给出:
实 用 测 量 数 据 处 理 方 法
中 南 大 学
l k 1 ( x k 1 ) 1, l k 1 ( x j ) 0( j k , k 1) l k ( x k ) 1, l k ( x j ) 0( j k 1, k 1) (28) l k 1 ( x k 1 ) 1, l k 1 ( x j ) 0( j k 1, k ) 满足(28 )式的插值基函数很容 易求出的,例如求 l k 1 ( x),因为它有两个零点 k 和x k 1,故可表达为: x l k 1 ( x) A( x x k )(x x k 1 ) 其中A为待定系数可由 k 1 ( x k 1 ) 1定出: l 1 A ( x k 1 x k )(x k 1 x k 1 ) ( x x k )(x x k 1 ) 于是l k 1 ( x)= ,同理可得 ( x k 1 x k )(x k 1 x k 1 ) ( x x k-1 )(x x k 1 ) ( x x k 1 )(x x k ) l k ( x)= ,l k 1 ( x)= ( x k x k-1 )(x k x k 1 ) ( x k+1 x k 1 )(x k 1 x k )
解:2、抛物插值
插值法和曲线拟合的主要差异
插值法和曲线拟合的主要差异
插值法和曲线拟合是数据处理和分析中常用的方法,它们的主要差异如下:
1. 目标不同:
- 插值法的主要目标是通过已知数据点的函数值推断未知数据点的函数值,以填充数据的空缺部分或者进行数据的重构。
- 曲线拟合的主要目标是通过已知数据点拟合出一条函数曲线,以描述数据点之间的趋势或模式。
2. 数据使用方式不同:
- 插值法使用已知数据点的函数值作为输入,通过构造插值函数来推断未知数据点的函数值。
- 曲线拟合使用已知数据点的函数值作为输入,并通过选择合适的拟合函数参数,使得拟合函数与数据点尽可能接近。
3. 数据点要求不同:
- 插值法要求已知数据点间的函数值比较准确,以保证插值函数的质量,并要求数据点间的间距不会过大,避免出现过度插值或者不稳定的现象。
- 曲线拟合对于数据点的要求相对较松,可以容忍噪声、异常值等因素,因为它不需要将函数曲线完全通过所有数据点。
4. 应用场景不同:
- 插值法常见应用于信号处理、图像处理等领域,可以用于填充缺失数据、图像重构等任务。
- 曲线拟合常见应用于数据分析、模型建立等领域,可以用
于描述数据间的趋势、拟合科学模型等。
综上所述,插值法和曲线拟合在目标、数据使用方式、数据点要求和应用场景等方面存在明显的差异。
(完整版)第8讲excel插值与拟合
使用Excel求解
1.1.2 二次插值
线性插值并不 y
一定总是能够
满足精度要求。
y2 y1
y=?
y0
x0
x1
x2
x
二次插值方法
已知数据点x0,y0,x1,y1,x2,y2 (x0<x1<x2),求在x处 (x0<x<x1)相应的y值。
解法:由x0,y0,x1,y1 ,x2,y2构造二次曲线,并求取在x 点的函数值。
x
2.5
2.6
2.7
2.8
2.9
y
12.1825 13.4637 14.8797 16.4446 18.1741
使用Excel求解
一次、二次插值结果比较
15
14.5
y=exp(x)
一次插值
14
二次插值
13.5
13
12.5
12
2.5
2.55
2.6
2.65
2.7
2.75
1.1.3 插值方法评价
插值方法广泛应用于查表,对于表格中没有的 数据可以考虑外推。
一般的,外推的准确性较内插差。
线性插值是最常用的插值方法,可以满足大多 数工程要求。
二、拟合与参数估值
2.2.1 介绍
图1-1 含有噪声的数据
200
150
Y Y
在化工设计及化工模拟计算中,需要大100
量的物性参数及各种设备参数。这些参数有50
些可以通过计算得到,但大量的参数还是要
通过实验测量得到。实验测量得到的常常是0
2.2.2 拟合的标准
前面已经提到按Q与Y之间误差最小原则作为“最优”标准构造的逼近 函数,称为拟合函数,而向量Q与Y之间的误差或距离有各种不同的定义方 法,一般有以下几种。
数学建模之插值与拟合
matlab中拟合的函数
非线性曲线拟合 Matlab中对于多项式拟合,有现成的函数
c = lsqcurvefit ( ′fun′, x0, xdata, ydata)
matlab中拟合的函数
非线性曲线拟合例题
对下面的x、y进行数据拟合
x=[3.6,7.7,9.3,4.1,8.6,2.8,1.3,7.9,10,5.4]; y=[16.5,150.6,263.1,24.7,208.5,9.9,2.7,163.9,325,54.3];
最小二乘法
线性最小二乘法是解决曲线拟合最常用的方法,基本 思路是,令
f (x) a1r1(x) a2r2 (x) amrm (x) • 其中,rk(x)是事先选定的一组线性无关的函数,ak是待定系
数(k=1,2,...,m,m<n)。拟a合准则是使yi,i=1,2,3...,n,与f (xi )
• 求:利用最小二乘法求得上述拟合函数
求解方法
(1)做散点图,通过散点图判断函数为:y=ax+b
(2)根据最小二乘法原理可知,即使下式中M最小
10
M yi axi b2
i 1
(3)把M看作是自变量为a和b的函数,由多元函数取最值
的条件可知:
M M
a b
a, a,
b b
0 0
M
a
M
b
目录
1
插值法与拟合法
2 matlab中插值的函数
3 matlab中拟合的函数 4 插值与拟合的运用
插值法与拟合法的基本介绍
插值法:求过已知有限个数据点的近似函数。
拟合法:已知有限个数据点,求近似函数,不要求
过已知数据点,只要求在某种意义下它在这些点上 的总偏差最小。
插值与拟合方法
插值与拟合方法在实际中,常常要处理由实验或测量所得到的一批离散数据.插值与拟合方法就是要通过这些数据去确定某一类已知函数的参数或寻找某个近似函数,使所得到的近似函数与已知数据有较高的拟合精度.插值问题:要求这个近似函数(曲线或曲面)经过所已知的所有数据点.通常插值方法一般用于数据较少的情况.数据拟合:不要求近似函数通过所有数据点,而是要求它能较好地反映数据的整体变化趋势。
共同点:插值与拟合都是根据实际中一组已知数据来构造一个能够反映数据变化规律的近似函数的方法,由于对近似要求的准则不同,因此二者在数学方法上有很大的差异.插值问题的一般提法:已知某函数)(x f y =(未知)的一组观测(或试验)数据),,2,1)(,(n i y x ii⋅⋅⋅=,要寻求一个函数)(x φ,使iiy x =)(φ),,2,1(n i ⋅⋅⋅=,则)()(x f x ≈φ.实际中,常常在不知道函数)(x f y =的具体表达式的情况下,对于i x x =有实验测量值iy y =),,2,1,0(n i ⋅⋅⋅=,寻求另一函数)(x φ使满足:)()(i i i x f y x ==φ),,2,1,0(n i ⋅⋅⋅=称此问题为插值问题,并称函数)(x φ为)(x f 的插值函数,nx x x x ,,,,21⋅⋅⋅称为插值节点,),,2,1,0()(n i y x ii⋅⋅⋅==φ称为插值条件,即)()(iiix f y x ==φ),,2,1,0(n i ⋅⋅⋅=,则)()(x f x ≈φ.(1) 拉格朗日(Lagrange )插值设函数)(x f y =在1+n 个相异点nx x x x ,,,,21⋅⋅⋅上的函数值为ny y y y ,,,,21⋅⋅⋅,要求一个次数不超过n 的代数多项式nnnx a x a x a a x P +⋅⋅⋅+++=221)(使在节点i x 上有),,2,1,0()(n i y x P ii n ⋅⋅⋅==成立,称之为n 次代数插值问题,)(x P n称为插值多项式.可以证明n 次代数插值是唯一的.事实上: 可以得到j n j n i i j in y x x xx x P j i ∑∏==⎥⎥⎦⎤⎢⎢⎣⎡⎪⎪⎭⎫⎝⎛--=≠00)()( 当1=n 时,有二点一次(线性)插值多项式:101001011)(y x x x x y x x x x x P --+--=当n =2时,有三点二次(抛物线)插值多项式:2120210121012002010212))(())(())(())(())(())(()(y x x x x x x x x y x x x x x x x x y x x x x x x x x x P ----+----+----=(2)牛顿(Newton ) 插值牛顿插值的基本思想:由于)(x f y =关于二节点10,x x 的线性插值为)()()()()()()()()(00101000010101x x x x x f x f x p x x x x x f x f x f x p ---+=---+= 假设满足插值条件)2,1,0()()(2===i x p y x f iii的二次插值多项式一般形式为))(()()(1212x x x x c x x c c x p --+-+= 由插值条件可得⎪⎩⎪⎨⎧=--+-+=-+=)())(()()()()(21202202101011000x f x x x x c x x c c x f x x c c x f c 可以解出⎪⎪⎪⎩⎪⎪⎪⎨⎧------=--==020101121220101100)()()()()()(),(x x x x x f x f x x x f x f c x x x f x f c x f c所以))(()())(()()(10211020102x x x x c x p x x x x c x x c c x p --+=--+-+=类似的方法,可以得到三次插值多项式等,按这种思想可以得到一般的牛顿插值公式.函数的差商及其性质对于给定的函数)(x f ,用),,,(10n x x x f ⋅⋅⋅表示关于节点nx x x ,,,1⋅⋅⋅的n 阶差商,则有一阶差商:01011)()(),(x x x f x f x x f --=,121221)()(),(x x x f x f x x f --= 二阶差商:021021210),(),(),,(x x x x f x x f xx x f --=n 阶差商:0110211),,,(),,,(),,,(x x x x x f x x x f x x x f n n n n -⋅⋅⋅-⋅⋅⋅=⋅⋅⋅-差商有下列性质:(1)差商的分加性:∑∏=≠=-=⋅⋅⋅nk nk j j j kk n x xx f xx x f 0)(01)()(),,,(.(2)差商的对称性:在),,,(1nx x x f ⋅⋅⋅中任意调换jix x ,的次序其值不变.牛顿插值公式: 一次插值公式为))(,()()(01001x x x x f x f x p -+=二次插值公式为))()(,,()())()(,,())(,()()(1021011021001002x x x x x x x f x p x x x x x x x f x x x x f x f x p --+=--+-+=于是有一般的牛顿插值公式为)())()(,,,()()())()(,,,())()(,,())(,()()(11010111010102100100----⋅⋅⋅--⋅⋅⋅+=-⋅⋅⋅--⋅⋅⋅+⋅⋅⋅+--+-+=n n n n n n x x x x x x x x x f x p x x x x x x x x x f x x x x x x x f x x x x f x f x p可以证明:其余项为))(())()(,,,,()(11010n n n x x x x x x x x x x x x f x R --⋅⋅⋅--⋅⋅⋅=-实际上,牛顿插值公式是拉格朗日插值公式的一种变形,二者是等价的.另外还有著名的埃尔米特(Hermite )插值等.(3)样条函数插值方法样条,实质上就是由分段多项式光滑连接而成的函数,一般称为多项式样条.由于样条函数的特殊性质,决定了样条函数在实际中有着重要的应用.样条函数的一般概念定义 设给定区间],[b a 的一个分划b x x x a n=<⋅⋅⋅<<=∆1:,如果函数)(x s 满足条件:(1) 在每个子区间),,2,1](,[1n i x x ii ⋅⋅⋅=-上是k 次多项式; (2) )(x s 及直到k -1阶的导数在],[b a 上连续.则称)(x s 是关于分划△的一个k 次多项式样条函数,nx x x ,,,1⋅⋅⋅称为样条节点,121,,,-⋅⋅⋅n x x x 称为内节点,nx x ,0称为边界节点,这类样条函数的全体记作),(k S P∆,称为k 次样条函数空间.若),()(k S x s P∆∈,则)(x s 是关于分划△的k 次多项式样条函数.k 次多项式样条函数的一般形式为∑∑=-=+-+=ki n j k j jii k x x k i x x s 011)(!!)(βα其中),,1,0(k i i=α和)1,,2,1(-=n j jβ均为任意常数,而)1,,2,1(,0,)()(-=⎪⎩⎪⎨⎧<≥-=-+n j x x x x x x x x jj kj kj在实际中最常用的是2=k 和3的情况,即为二次样条函数和三次样条函数. 二次样条函数:对于],[b a 上的分划b x x x a n=<⋅⋅⋅<<=∆1:,则)2,()(!2!2)(11222102∆βαααP n j j jS x x x x x s ∈-+++=∑-=+其中)1,2,1(,0,)()(22-=⎪⎩⎪⎨⎧<≥-=-+n j x x x x x x x x j j j j . 三次样条函数:对于],[b a 上的分划b x x xa n =<⋅⋅⋅<<=∆10:,则)3,()(!3!3!2)(1133322103∆βααααP n j j jS x x x x x x s ∈-++++=∑-=+其中)1,2,1(,0,)()(33-=⎪⎩⎪⎨⎧<≥-=-+n j x x x x x x x x jjj j .1 二次样条函数插值)2,()(2∆∈P S x s 中含有2+n 个待定常数,故应需要2+n 个插值条件,因此,二次样条插值问题可分为两类:问题(1):已知插值节点ix 和相应的函数值),,2,1,0(n i y i⋅⋅⋅=,以及端点0x (或n x )处的导数值0'y (或ny '),求)2,()(2∆∈PS x s 使得⎩⎨⎧'=''='⋅⋅⋅==))(()(),,2,1,0()(20022n n i i y x s y x s n i y x s 或(5.1)问题(2):已知插值节点ix 和相应的导数值),,2,1,0(n i y i⋅⋅⋅=',以及端点0x (或n x )处的函数值0y (或ny ),求)2,()(2∆∈P S x s 使得⎩⎨⎧==⋅⋅⋅='='))(()(),,2,1,0()(20022n n i i y x s y x s n i y x s 或(5.2)事实上,可以证明这两类插值问题都是唯一可解的.对于问题(1),由条件(5.1)⎪⎪⎪⎪⎩⎪⎪⎪⎪⎨⎧'=+='==-+++==++==++=∑-=00210211222102121211112020201002)(,,3,2,)(2121)(21)(21)(y x x s n j y x x x x x s yx x x s y x x x s j j i i j i jj j ααβααααααααα 引入记号T n ),,,,,(11210-=ββααα X 为未知向量,T nn y y y y ),,,,(10'= C 为已知向量, ⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎣⎡---=-0010)(21)(21211)(212110211211021212212222211200x x x x x x x x x x x x x x x n n n n n A 于是,问题转化为求方程组C AX =的解Tn ),,,,,(1121-=ββααα X 的问题,即可得到二次样条函数的)(2x s 的表达式.对于问题(2)的情况类似.2.三次样条函数插值由于)3,()(3∆∈P S x s 中含有3+n 个待定系数,故应需要3+n 个插值条件,因此可将三次样条插值问题分为三类: 问题(1):已知插值节点jx 和相应的函数值),,2,1,0(n j y j⋅⋅⋅=,以及两个端点0x ,n x 处的导数值0'y ,ny ',求)3,()(3∆∈PS x s 使满足条件⎪⎩⎪⎨⎧='='⋅⋅⋅==),0()(),,1,0()(33n j y x s n j y x s j j j j(5.3)问题(2):已知插值节点jx 和相应的函数值),,2,1,0(n j y j⋅⋅⋅=,以及两个端点0x ,nx 处的二阶导数值0y '',n y '',求)3,()(3∆∈PS x s 使满足条件⎪⎩⎪⎨⎧=''=''⋅⋅⋅==),0()(),,1,0()(33n j y x s n j y x s j j j j(5.4)问题(3):类似地,求)3,()(3∆∈PSx s 使满足条件⎪⎩⎪⎨⎧=+=-==)2,1,0)(0()0(),,1,0()(0)(3)(33k x s x s n j y x s k n k j j(5.5)这三类插值问题的条件都是3+n 个,可以证明其解都是唯一的〔8〕.一般的求解方法可以仿照二次样条的情况处理方法,在这里给出一种更简单的方法.仅依问题(1)为例,问题(2)和问题(3)的情况类似处理.由于在)3,()(3∆PS x s ∈区间],[b a 上是一个分段光滑,且具有二阶连续导数的三次多项式,则在子区间],[1+j jx x 上)(3x s ''是线性函数,记),,,1,0)((3n j x s d jj =''=为待定常数.由拉格朗日插值公式可得nj x x h h x x d h x x d x s j j j jj j jj j ,,1,0,,)(1113=-=-+-=''+++显然jjj h d dx s -='''+13)(在],[1+j jx x上为常数.于是在],[1+j j x x 上有31233)(6)(2))(()(j jjj j j j j j x x h d d x x d x x x s y x s --+-+-'+=+(5.6)则当1+=j x x 时,由(5.6)式和问题(1)的条件得121231362)()(+++=-++'+=j j jj j j j j j j y h d d h d h x s y x s故可解得)2(6)(113+++--='j j j jjj j d d h h y y x s(5.7)将(5.7)式代入(5.6)式得)1,,1,0](,[,)(6)(2)()2(6)(1312113-=∈--+-+-⎥⎥⎦⎤⎢⎢⎣⎡+--+=++++n j x x x x x h d d x x d x x d d h h y y y x s j j j jj j j jj j j j j j j j(5.8) 在],[1j j x x-上同样的有),,2,1](,[,)(6)(2)()2(6)(131112111111113n j x x x x x h d d x x d x x d d h h y y y x s j j j j j j j j j j j j j j j j =∈--+-+-⎥⎥⎦⎤⎢⎢⎣⎡+--+=------------(5.9) 根据)(3x s的一阶导数连续性,由(5.9)式得)()2(6)0(311113j j j j j j j j x s d d h h y y x s '=++-=-'---- 结合(5.7)式整理得⎪⎪⎭⎫ ⎝⎛---+=++++--+-+----11111111162j j j j j j j j j j j j j j j j j h y y h y y h h d h h h d d h h h 引入记号⎪⎪⎭⎫ ⎝⎛---+=+=--+--111116,j j j j j j j j j j j j j h y y h y y h h c h h h a ,111--+=-j j j j h h h a .则)1,,2,1(,2)1(11-==++-+-n j c d a d d a j j j j j j(5.10)再由边界条件:nny x s y x s '=''=')(,)(33得⎪⎪⎩⎪⎪⎨⎧⎪⎪⎭⎫ ⎝⎛--'=+⎪⎪⎭⎫ ⎝⎛'--=+----111100010106262n n n n n n n h y y y h d d y h y y h d d(5.11)联立(5.10),(5.11)式得方程组C D A =⋅(5.12)其中⎥⎥⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎢⎢⎣⎡---=----2121212112112200n n n n a a a a a aA ,⎥⎥⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎢⎢⎣⎡=-n n d d d d 110 D ,⎥⎥⎥⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎢⎢⎢⎣⎡⎪⎪⎭⎫ ⎝⎛--'⎪⎪⎭⎫ ⎝⎛'--=----111110001066n n n n n n hy y y h c c y h y y h C 由方程组(6.12)可以唯一解出),,1,0(n j d j=,代入(5.8)式就可以得三次样条函数)(3x s 的表达式.B样条函数插值方法磨光函数实际中的许多问题,往往是既要求近似函数(曲线或曲面)有足够的光滑性,又要求与实际函数有相同的凹凸性,一般插值函数和样条函数都不具有这种性质.如果对于一个特殊函数进行磨光处理生成磨光函数(多项式),则用磨光函数构造出样条函数作为插值函数,既有足够的光滑性,而且也具有较好的保凹凸性,因此磨光函数在一维插值(曲线)和二维插值(曲面)问题中有着广泛的应用.由积分理论可知,对于可积函数通过积分会提高函数的光滑度,因此,我们可以利用积分方法对函数进行磨光处理.定义 若)(x f 为可积函数,对于0>h ,则称积分⎰+-=22,1)(1)(hx h x h dt t f h x f为)(x f 的一次磨光函数,h 称为磨光宽度.同样的,可以定义)(x f 的k 次磨光函数为)1()(1)(22,1,>=⎰+--k dt t f h x f hx h x h k h k事实上,磨光函数)(,x f h k 比)(x f 的光滑程度要高,且当磨光宽度h 很小时)(,x f h k 很接近于)(x f .等距B样条函数对于任意的函数)(x f ,定义其步长为1的中心差分算子δ如下:⎪⎭⎫ ⎝⎛--⎪⎭⎫ ⎝⎛+=2121)(x f x f x f δ在此取0)(+=x x f ,则002121+++⎪⎭⎫ ⎝⎛--⎪⎭⎫ ⎝⎛+=x x x δ是一个单位方波函数(如图5-1),记0)(+=Ωx x δ.并取1=h ,对)(0x Ω进行一次磨光得++++-+++-+++--+-+=-=⎥⎥⎦⎤⎢⎢⎣⎡⎪⎭⎫ ⎝⎛--⎪⎭⎫ ⎝⎛+==⎰⎰⎰⎰)1(2)1(2121)()(11212100212101x x x dt t dt t dt t t dt t x x xx x x x x x ΩΩ显然)(1x Ω是连续的(如图5-2).)(1x Ωo1-1/2 0 1/2 x -1 0 1 x 图5-1图5-2类似地可得到k 次磨光函数为kk j jk j k j k x k C x ++=+⎪⎭⎫ ⎝⎛-++-=Ω∑21!)1()(11 实际上,可以证明:)(x kΩ是分段k 次多项式,且具有1-k 阶连续导数,其k 阶导数有2+k个间断点,记为)1,,2,1,0(21+⋅⋅⋅=+-=k j k j x j.从而可知)(x kΩ是对应于分划+∞<<⋅⋅⋅<<<-∞∆+110:k x x x 的k 次多项式样条函数,称之为基本样条函数,简称为k 次B样条.由于样条节点为)1,,2,1,0(21+⋅⋅⋅=+-=k j k j xj是等距的,故)(x k Ω又称为k 次等距B样条函数.对于任意函数)(x f 的k 次磨光函数,由归纳法可以得到 [4,8] :⎪⎭⎫⎝⎛+≤≤--Ω=⎰∞+∞--22)()(1)(1,h x t h x dt t f htx h x f k h k 特别地,当1)(=x f 时,有1)(11⎰+∞∞--=-dt htx hk Ω,从而1)(⎰+∞∞-=dx x k Ω,且当k ≥1时有递推关系⎥⎦⎤⎢⎣⎡⎪⎭⎫ ⎝⎛-Ω⎪⎭⎫ ⎝⎛---⎪⎭⎫ ⎝⎛+Ω⎪⎭⎫ ⎝⎛++=Ω--212121211)(11x x k x k x k x k k k一维等距B样条函数插值等距B样条函数与通常的样条如下的关系: 定理设有区间],[b a 的均匀分划nab h n j jh x x j -=⋅⋅⋅=+=),,,1,0(:0∆,则对任意 k 次样条函数),()(k S x S p k ∆∈都可以表示为B样条函数族1021-=-=⎭⎬⎫⎩⎨⎧⎪⎭⎫⎝⎛+---n j k j k k j h x x Ω的线性组合[14].根据定理 5.1,如果已知曲线上一组点()jjy x ,,其中),,1,0,0(0n j h jh x x j⋅⋅⋅=>+=,则可以构造出一条样条磨光曲线(即为B样条函数族的线性组合)⎪⎭⎫⎝⎛--=∑--=j h x x c x S n kj k j k 01)(Ω 其中)1,,1,(-⋅⋅⋅+--=n k k j c j为待定常数.用它来逼近曲线,既有较好的精度,又有良好的保凸性.实际中,最常用的是3=k 的情况,即一般形式为⎪⎭⎫ ⎝⎛--=∑+-=j h x x c x S n j j 01133)(Ω 其中3+n 个待定系数)1,,0,1(+⋅⋅⋅-=n j c j可以由三类插值条件确定.由插值条件(5.3)得()()()⎪⎪⎪⎪⎩⎪⎪⎪⎪⎨⎧'=-'='==-='=-'='∑∑∑+-=+-=+-=n n j j n i n j j i n j j y j n c h x S ni y j i c x S y j c h x S 113311330113031)(,,1,0,)(1)(ΩΩΩ(5.13)注意到)(3x Ω的局部非零性及其函数值:61)1(,32)0(33=±=ΩΩ,当2≥x 时0)(3=x Ω;且由)21()21()(223--+='x x x ΩΩΩ知,21)1(,0)0(33=±'='ΩΩ,当2≥x 时0)(3='x Ω.则(5.13)中的每一个方程中只有三个非零系数,具体的为⎪⎩⎪⎨⎧'=+-==++'=+-+-+--n n n i i i i y h c c n i y c c c y h c c 2,,1,0,6421111011(5.14)由方程组(5.14)容易求解出)1,,0,1(+⋅⋅⋅-=n j c j,即可得到三次样条函数)(3x S 表达式.类似地,由插值条件(5.4)得待定系数的)1,,0,1(+⋅⋅⋅-=n j c j所满足的方程组为⎪⎩⎪⎨⎧''=+-==++''=+-+-+--nn n n i i i i y h c c c n i y c c c y h c c c 21111021012,,1,0,642(5.15)由插值条件(5.5)得待定系数的)1,,0,1(+⋅⋅⋅-=n j cj所满足的方程组为⎪⎪⎩⎪⎪⎨⎧==++=-+---=-++-=-+-+-+-+--+--+--ni y c c c c c c c c c c c c c c c c c c c i i i i n n n n n n n n ,,1,0,640)()(2)(0)(0)(0)()(4)(1111011111111011(5.16)方程组(5.15),(5.16)也都是容易求解的.注:上述等距B样条插值公式也适用于近似等距的情形,但在端点0x 和n x 处误差可能较大,实际应用时,为了提高在端点0x 和nx 处的精度,可以适当向左右延拓几个节点.二维等距B样条函数插值设有空间曲面),(y x f z =(未知),如果已知二维等距节点()()τj y ih x y x ji++=0,,)0,(>τh 上的值为),,2,1,0;,,2,1,0(m j n i z ij⋅⋅⋅=⋅⋅⋅=,则相应的B样条磨光曲面的一般形式为⎪⎭⎫ ⎝⎛--⎪⎭⎫⎝⎛--=∑∑--=--=j y y i h x x c y x s l m lj k ij n ki τΩΩ0011),( 其中),,2,1,0;,,2,1,0(m j n i c ij⋅⋅⋅=⋅⋅⋅=为待定常数,l k ,可以取不同值,常用的也是2,=l k 和3的情形.这是一种具有良好保凸性的光滑曲面(函数),在工程设计中是常用的,但只能使用于均匀分划或近似均匀分划的情况.(4) 最小二乘拟合方法最小二乘拟合方法的思想:由于一般插值问题并不总是可解的(即当插值条件多于待定系数的个数时,其问题无解),同时,问题的插值条件本身一般是近似的,为此,只要求在节点上近似地满足插值条件,并使它们的整体误差最小,这就是最小二乘拟合法.最小二乘拟合方法可以分为线性最小二乘拟合方法和非线性最小二乘拟合方法.线性最小二乘拟合方法设{}m k kx 0)(=φ是一个线性无关的函数系,则称线性组合∑==mk k k x a x 0)()(φφ为广义多项式.如三角多项式:∑∑==+=mk k mk kkx b kx ax 0sin cos )(φ.设由给定的一组测量数据),(iiy x 和一组正数),,2,1(n i w i⋅⋅⋅=,求一个广义多项式∑==mk k k x a x 0)()(φφ使得目标函数[]21)(∑=-=ni i i i y x w S φ(5.17)达到最小,则称函数)(x φ为数据),,2,1)(,(n i y x ii⋅⋅⋅=关于权系数),,2,1(n i w i⋅⋅⋅=的最小二乘拟合函数,由于)(x φ关于待定系数ia 是线性的,故此问题又称为线性最小二乘问题. 注意:这里{}m k kx 0)(=φ可根据实际来选择,权系数iw 的选取更是灵活多变的,有时可选取1=i w ,或nw i 1=,对于nw i1=,则相应问题称为均方差的极小化问题.最小二乘拟合函数的求解要使最小二乘问题的目标函数(5.17)达到最小,则由多元函数取得极值的必要条件得),,2,1,0(0m k a Sk==∂∂ 即),,2,1,0(0)()(10m k x y x a w i k ni i m k i k k i ⋅⋅⋅⋅==⎥⎦⎤⎢⎣⎡-∑∑==φφ 亦即),,2,1,0()()()(001m k x y w a x x w n i i k i i j mj n i i k i j i ⋅⋅⋅⋅==⎥⎦⎤⎢⎣⎡∑∑∑===φφφ(5.18)是未知量为ma a a a ,,,,21⋅⋅⋅的线性方程组,称(5.18)式为正规方程组.实际中可适当选择函数系{}m k kx 0)(=φ,由正规方程组解出ma a a a ,,,,210⋅⋅⋅,于是可得最小二乘拟合函数∑==mk kk x a x 0)()(φφ.一般线性最小二乘拟合方法将上面一元函数的最小二乘拟合问题推广到多元函数,即为多维线性最小二乘拟合问题.假设已知多元函数),,,(21nx x x f y ⋅⋅⋅=的一组测量数据);,,,(21iniiiy x x x ⋅⋅⋅),,2,1(m i ⋅⋅⋅=和一组线性无关的函数系{}N k nk x x x 021),,,(=⋅⋅⋅φ,求函数∑=⋅⋅⋅=⋅⋅⋅Nk n k k n x x x a x xx 02121),,,(),,,(φφ对于一组正数mw w w ,,,21⋅⋅⋅,使得目标函数[]2121),,,(∑=⋅⋅⋅-=mi ni i i i i x x x y w S φ达到最小.其中待定系数N a a a a,,,,210⋅⋅⋅由正规方程组),,2,1,0(),(),(0N k y a Nj k j k j⋅⋅⋅==∑=φφφ确定,此处ini i i k mi i k ni i i k mi ni i i j i k j y x x x w y x x x x x x w ),,,(),(),,,(),,,(),(21121121⋅⋅⋅=⋅⋅⋅⋅⋅⋅=∑∑==φφφφφφ注:上面的函数φ关于ia 都是线性的,这就是线性最小二乘拟合问题,对于这类问题的正规组总是容易求解的.如果φ关于ia 是非线性的,则相应的问题称为非线性最小二乘拟合问题.非线性最小二乘拟合方法假设已知多元函数),,,(21nx x x f y ⋅⋅⋅=的一组测量数据);,,,(21iniiiy x x x ⋅⋅⋅),,2,1(m i ⋅⋅⋅=,要求一个关于参数),,2,1,0(N j a j⋅⋅⋅=是非线性的函数),,,;,,,(1021Nn a a a x x x ⋅⋅⋅⋅⋅⋅=φφ对一组正数mw w w ,,,21⋅⋅⋅使得目标函数[]21102110),,,;,,,(),,,(∑=⋅⋅⋅⋅⋅⋅-=⋅⋅⋅mi N ni i i i i N a a a x x x y w a a a S φ达到最小,则称之为非线性最小二乘问题.这类问题属于无约束的最优化问题,一般问题的求解是很复杂的,通常情况下,可以采用共轭梯度法、最速下降法、拟牛顿法和变尺度法等方法求解.实例:黄河小浪底调水调沙问题问题的提出2004年6月至7月黄河进行了第三次调水调沙试验,特别是首次由小浪底、三门峡和万家寨三大水库联合调度,采用接力式防洪预泄放水,形成人造洪峰进行调沙试验获得成功.整个试验期为20多天,小浪底从6月19日开始预泄放水,直到7月13日恢复正常供水结束.小浪底水利工程按设计拦沙量为75.5亿立方米,在这之前,小浪底共积泥沙达14.15亿吨.这次调水调试验一个重要目的就是由小浪底上游的三门峡和万家寨水库泄洪,在小浪底形成人造洪峰,冲刷小浪底库区沉积的泥沙.在小浪底水库开闸泄洪以后,从6月27日开始三门峡水库和万家寨水库陆续开闸放水,人造洪峰于29日先后到达小浪底,7月3日达到最大流量2700立方米/每秒,使小浪底水库的排沙量也不断地增加.下面是由小浪底观测站从6月29日到7月10日检测到的试验数据:表5-1: 试验观测数据单位:水流为立方米/每秒,含沙量为公斤/立方米·84··85·注:以上数据主要是根据媒体公开报道的结果整理而成的,不一定与真实数据完全相符.现在,根据试验数据建立数学模型研究下面的问题:(1) 给出估算任意时刻的排沙量及总排沙量的方法;(2) 确定排沙量与水流量的变化关系.模型的建立与求解对于问题(1),根据所给问题的试验数据,要计算任意时刻的排沙量,就要确定出排沙量随时间变化的规律,可以通过插值来实现.考虑到实际中排沙量应该是随时间连续变化的,为了提高精度,我们采用三次B样条函数进行插值.下面构造三次B样条函数)(x S y =.由试验数据,时间是每天的早8点和晚8点,间隔都是12个小时,共24个点)24,,2,1(⋅⋅⋅=i t i.为了计算方便,令)23,,,1,0(122128⋅⋅⋅=+⎥⎦⎤⎢⎣⎡⋅+-=i i t x i i(5.19)则it 对应于)23,,1,0(1⋅⋅⋅=+=i i x i.于是以)23,,1,0(⋅⋅⋅=i x i为插值节点(等距),步长1=h .其相应的排沙量为)23,,1,0(⋅⋅⋅=i y i 对应关系如下表:·86·表5-2: 插值数据对应关系单位:排沙量为公斤函数)(x S y =所满足的条件为 (1)23,,1,0,)(⋅⋅⋅==i y x S ii;(2) 3500)(,56400)(2223222323231212-=--≈'='=--≈'='x x y y x S y x xy yx S y .取)(x S 的三次B样条函数一般形式为∑-=⎪⎭⎫⎝⎛--=24103)(j j j h x x c x S Ω·87·其中)24,,1,0,1(⋅⋅⋅-=j cj为待定常数,1=h .在这里⎪⎪⎪⎩⎪⎪⎪⎨⎧≥<<+-+-≤+-=Ω2,021,342611,3221)(23233x x x x x x x x x且易知⎪⎪⎪⎩⎪⎪⎪⎨⎧≥±===Ω2,01,610,32)(3x x x x和⎪⎪⎩⎪⎪⎨⎧≥±===Ω'2,01,210,0)(3x x x x 根据B样条函数的性质,)(x S ''在[]23,x x 上连续,则有()∑-=--'='='2413)(j jj xx c x S y Ω由插值条件(1),(2)可得到下列方程组()()()⎪⎪⎪⎪⎩⎪⎪⎪⎪⎨⎧'=-'=''=-'='⋅⋅⋅==-=∑∑∑-=-=-=23241323024130241323)()(23,,1,0,)(y j c x S y j c x S i y j i c x S j j j j i j j i ΩΩΩ 即⎪⎩⎪⎨⎧'=+-'=+-⋅⋅⋅==++-+-23242311112223,,1,0,64y c c y c c i y c c c i i i i 将232324112,2y c c y c c '+='-=-代入前24个方程中的第一个和最后一个,便可得到方程组F AC =,其中·88·⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎣⎡=⎥⎥⎥⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎢⎢⎢⎣⎡⋅⋅⋅⋅⋅⋅=⨯232102424,421410141014124c c c c C A ,⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎣⎡=⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎣⎡'-'+=3400048000684000458400266626232322100 y y y y y y F显然A 为满秩阵,方程组F AC =一定有解,用消元法求解可得问题的解为56044.39830=c , 4117111.2031=c , 2159510.7882=c , 9189845.6433=c ,1203106.6364=c , 8239727.8115=c ,8249182.1166=c , 1263543.7217=c ,9287842.9988=c , 2302284.2839=c ,4317419.86810=c , 1304836.24311=c ,3307635.15912=c ,6305423.11913=c ,2270672.36214=c ,4240287.43115=c ,0154177.91216=c ,4103000.92017=c ,99818.406218=c , 43725.454719=c ,49279.775020=c ,32155.445221=c , 2098.444222=c ,7450.777923=c ,-450.777924311.2034,2232324011='+=='-=-y c c y c c . 将)24,,1,0,1(⋅⋅⋅-=j c j代入()∑-=--==24131)(j jj x c x S y Ω(5.20)即得排沙量的变化规律.由(5.19)和(5.20)式可得到第i 时间段(12小时为一段)内,任意时刻]12,0[∈t 的排沙量.则总的排沙量为()dt j t c dx x S Y j j⎰∑⎰-=--Ω==284824132411)(经计算可得1110844.1⨯=Y 吨,即从6月29日至7月10日小浪底水库排沙总量大约为1.844亿吨,此与媒体报道的排沙量基本相符.对于问题(2),研究排沙量与水量的关系,从试验数据可以看出,开始排沙量是随着水流量的增加而增长,而后是随着水流量的减少而减少.显然,变化规律并非是线性的关系,为此,我们问题分为两部分,从开始水流量增加到最大值2720立方米/每秒(即增长的过程)为一段,从水流量的最大值到结束为第二段,分别来研究水流量与排沙量的关系.具体数据如表5-3和5-4.表5-3: 第一阶段试验观测数据 单位:水流为立方米/每秒,含沙量为公斤/立方米表5-4: 第二阶段试验观测数据单位:水流为立方米/每秒,含沙量为公斤/立方米对于第一阶段,由表5-3用Matlab作图(如图5-3)可以看出其变化趋势,我们用多项式作最小二乘拟合.·90··91·图5-3设拟合函数为∑==mk kk x a x 1)(φ确定待定常数),,1,0(m k ak=使得211111102])([∑∑∑===⎥⎦⎤⎢⎣⎡-=-=i i i m k k i k i i y x a y x S φ有最小值.于是可以得到正规方程组为m k x y a x mj i k i i j i j k i ,,1,0,0111111 ==⎪⎭⎫⎝⎛∑∑∑===+ 当3=m 时,即取三次多项式拟合,则3,2,1,0,1113111321112111110111==⎪⎭⎫⎝⎛+⎪⎭⎫ ⎝⎛+⎪⎭⎫ ⎝⎛+⎪⎭⎫ ⎝⎛∑∑∑∑∑==+=+=+=k x y a x a x a x a x i k i i i k i i k i i k i i k i求解可得73321108423.1,103172.1,3.1784,-2492.9318--⨯=⨯-===a a a a .于是可得拟合多项式为332213)(x a x a x a a x +++=φ,最小误差为847.72=S ,拟合效果如图所示.·92·图:三次拟合效果,带*号的为拟合曲线.类似地,当4=m 时,即取四次多项式拟合,则正规方程组为4,3,2,1,0111411143111321112111110111==⎪⎭⎫⎝⎛+⎪⎭⎫ ⎝⎛+⎪⎭⎫ ⎝⎛+⎪⎭⎫ ⎝⎛+⎪⎭⎫ ⎝⎛∑∑∑∑∑∑==+=+=+=+=k x y a x a x a x a x a x i ki i i k i i k i i k i i k i i k i求解可得104633210109312.1,1094.1,102626.7,12.0624,-7434.6557---⨯-=⨯=⨯-===a a a a a 于是可得拟合多项式为443322104)(x a x a x a x a a x ++++=φ,最小误差为102.66=S ,拟合效果如图5-5所示.图5-5:四次拟合效果,带*号的为拟合曲线.从上面的三次多项式拟合和四次多项拟合效果来看,差别不大.基本可以看出排沙量与水流量的关系.图5-6:第二段三·93··94· 次多项式拟合效果对于第二阶段,由表5-4可以类似地处理.我们用线性最小二乘法作三次和四多项式拟合.拟合效果如图5-6和5-7所示,最小误差分别为5.459=S 和1.236=S . 从拟合效果来看,显然四次多项式拟合要比三次多项式拟合好的多.图5-7:第二段四次多项式拟合效果。
插值与拟合算法分析
插值与拟合算法分析在数学与计算机科学领域,插值与拟合算法是两种常用的数据处理技术。
插值算法通过已知数据点之间的内插来估算未知数据点的值,而拟合算法则通过求取最佳拟合曲线或函数来逼近已知数据点。
本文将对插值与拟合算法进行详细分析,并比较它们在不同应用中的优缺点。
一、插值算法插值算法主要用于通过已知数据点之间的内插来估算未知数据点的值。
常用的插值算法包括拉格朗日插值、牛顿插值、样条插值等。
这些算法根据插值函数的不同特点,适用于不同类型的数据处理。
1. 拉格朗日插值拉格朗日插值是一种基于代数多项式的插值方法。
它通过构造一个全局多项式函数来拟合已知数据点,并推导出未知数据点的估算值。
拉格朗日插值算法具有简单易懂、计算效率高等优点,但在处理大量数据点时可能会出现龙格现象,导致插值结果有一定误差。
2. 牛顿插值牛顿插值是一种基于差商的插值方法。
它通过计算差商的递推关系,构造一个分段多项式函数来拟合已知数据点。
相比于拉格朗日插值,牛顿插值算法具有更高的数值稳定性和精度,并且可以方便地进行动态插值。
3. 样条插值样条插值是一种基于分段函数的插值方法。
它将整个数据区间划分为若干小段,并使用不同的插值函数对每一段进行插值。
样条插值算法通过要求插值函数的高阶导数连续,能够更好地逼近原始数据的曲线特征,因此在光滑性较强的数据处理中常被使用。
二、拟合算法拟合算法主要用于通过最佳拟合曲线或函数来逼近已知数据点。
常用的拟合算法包括最小二乘拟合、多项式拟合、非线性拟合等。
这些算法可以使拟合曲线与已知数据点尽可能地接近,从而进行更精确的数据分析和预测。
1. 最小二乘拟合最小二乘拟合是一种通过最小化残差平方和来求取最佳拟合曲线的方法。
它利用数据点与拟合曲线的差异来评估拟合效果,并通过求取最小残差平方和的参数值来确定拟合曲线的形状。
最小二乘拟合算法广泛应用于线性回归和曲线拟合等领域。
2. 多项式拟合多项式拟合是一种通过多项式函数来逼近已知数据点的方法。
插值和拟合
插值和拟合都是函数逼近或者数值逼近的重要组成部分他们的共同点都是通过已知一些离散点集M上的约束,求取一个定义在连续集合S(M包含于S)的未知连续函数,从而达到获取整体规律的目的,即通过"窥几斑"来达到"知全豹"。
简单的讲,所谓拟合是指已知某函数的若干离散函数值{f1,f2,…,fn},通过调整该函数中若干待定系数f(λ1, λ2,…,λ3), 使得该函数与已知点集的差别(最小二乘意义)最小。
如果待定函数是线性,就叫线性拟合或者线性回归(主要在统计中),否则叫作非线性拟合或者非线性回归。
表达式也可以是分段函数,这种情况下叫作样条拟合。
而插值是指已知某函数的在若干离散点上的函数值或者导数信息,通过求解该函数中待定形式的插值函数以及待定系数,使得该函数在给定离散点上满足约束。
插值函数又叫作基函数,如果该基函数定义在整个定义域上,叫作全域基,否则叫作分域基。
如果约束条件中只有函数值的约束,叫作Lagrange插值,否则叫作Hermite插值。
从几何意义上将,拟合是给定了空间中的一些点,找到一个已知形式未知参数的连续曲面来最大限度地逼近这些点;而插值是找到一个(或几个分片光滑的)连续曲面来穿过这些点。
一、概念的引入1. 插值与拟合在现实生活中的应用l 机械制造:汽车外观设计l 采样数据的重新建构:电脑游戏中场景的显示,地质勘探,医学领域(CT)2.概念的定义l 插值:基于[a,b]区间上的n个互异点,给定函数f(x),寻找某个函数去逼近f(x)。
若要求φ(x)在xi处与f(xi)相等,这类的函数逼近问题称为插值问题,xi即是插值点l 逼近:当取值点过多时,构造通过所有点的难度非常大。
此时选择一个次数较低的函数最佳逼近这些点,一般采用最小二乘法l 光顾:曲线的拐点不能太多,条件:①二阶几何连续②不存在多余拐点③曲率变化较小l 拟合:曲线设计过程中用插值或通过逼近方法是生成的曲线光滑(切变量连续)光顾二、插值理论设函数y=f(x)在区间[a,b]上连续,在[a,b]上有互异点x0,x1,…,xn处取值y 0,y1,…,yn。
(完整版)数学建模 插值和拟合
x
xn
x
4.2 MATLAB实现插值
Matlab 实现:实现插值不需要编制函 数程序,它自身提供了内部的功能函数 interp1(一维分段插值) interp2(二维) interp3(三维) intern(n维)
4.3.1一维插值
用MATLAB作插值计算
一维插值函数: yi=interp1(x,y,xi,'method')
h=1:0.1:12;
t=interp1(hours,temps,h,'spline');
plot(hours,temps,'+',h,t,'r:')
xlabel('Hour'),ylabel('Degrees Celsius’)
例1:从1点12点的11小时内,每隔1小时测量一次温度, 测得的温度的数值依次为:5,8,9,15,25,29, 31,30,22,25,27,24.试估计(1)每隔1/10小时 的温度值;(2)估计1点30分和13的温度值。
例1:从1点到12点的11小时内,每隔1小时测量一次温 度,测得的温度的数值依次为:5,8,9,15,25, 29,31,30,22,25,27,24.试估计(1)每隔 1/10小时的温度值;(2)估计1点30分和13的温度值。
hours=1:12;
temps=[5 8 9 15 25 29 31 30 22 25 27 24];
x x0 y y0
x1 … xn y1 … yn
其中x0,x1, …xn是n+1个互不相同的点,求一个 近似函数 (x) ,使得
( xi ) f ( xi ) i 0,1 …n
数值分析实验插值与拟合
数值分析实验插值与拟合插值是指根据已知的数据点,通过其中一种数学方法来构造一个函数,使得该函数在已知的数据点上与被插值函数相等。
插值方法可以分为两类:基于多项式的插值和非多项式插值。
基于多项式的插值方法中,最常用的是拉格朗日插值和牛顿插值。
拉格朗日插值方法通过一个n次多项式来逼近被插值函数,该多项式通过n个已知数据点中的所有点。
牛顿插值方法则通过一个n次多项式来逼近被插值函数,该多项式通过n个已知数据点中的前m+1个点。
非多项式插值方法中,最常用的是分段线性插值和样条插值。
分段线性插值方法将插值区间划分为多个小段,在每一段内使用线性函数来逼近被插值函数。
样条插值方法则使用分段低阶多项式来逼近被插值函数,保证了插值函数和原函数在插值区间内的连续性、光滑性。
拟合是指在给定的离散数据点集合上,通过选取一个函数,使得该函数与数据点之间的误差最小化。
拟合方法可以分为两类:线性拟合和非线性拟合。
线性拟合方法中,最简单的是最小二乘法。
最小二乘法拟合是通过最小化观测数据与拟合函数的残差平方和来选择最佳函数参数。
在实验中,最小二乘法常用于线性回归问题,例如估计一个直线或者平面来拟合数据。
非线性拟合方法中,最常用的是非线性最小二乘法和局部加权回归。
非线性最小二乘法通过将非线性拟合问题转化为线性问题,使用最小二乘法来寻找最佳参数。
局部加权回归方法则通过给予不同数据点不同的权重,以更好地逼近数据点。
在数值分析实验中,插值与拟合可以应用于各种实际问题。
例如,在地理信息系统中,通过已知的地理坐标点来插值出未知点的地理信息。
在气象学中,通过已知的气象数据点来插值出未知点的气象信息。
在工程学中,通过已知的测量数据点来拟合出一个最佳的拟合函数来预测未来的测量值。
需要注意的是,插值和拟合的精度在很大程度上取决于数据的分布和拟合函数的选择。
如果数据点过于稀疏或者数据点中存在异常值,可能导致插值和拟合结果不准确。
因此,在进行插值和拟合之前,需要对数据进行预处理,例如去除异常值、平滑数据等。
数值计算中的插值和拟合方法
在数值计算中,插值和拟合是两种常用的方法,用于通过已知数据点推测未知数据点的数值。
插值是一种通过已知数据点构建一个函数,以便在这些数据点之间进行预测。
而拟合是一种将一个函数与已知数据点进行匹配,以便预测未知数据点的数值。
插值的目标是通过经过已知数据点的连续函数来准确地估计未知数据点的数值。
最简单的插值方法是线性插值,它假设两个相邻数据点之间的函数值是线性变化的。
线性插值可以用于计算两个已知数据点之间的任何位置的函数值。
如果我们有更多的数据点,可以使用更高阶的插值方法,如二次插值或三次插值。
这些方法使用多项式来表示数据点之间的函数,以便更准确地预测未知数据点。
然而,插值方法并不总是最理想的选择。
在某些情况下,通过已知数据点精确地构建一个连续函数是不可能的。
这可能是因为数据点之间的差异太大,或者数据点的数量太少。
在这种情况下,拟合方法可以提供更好的预测结果。
拟合的目标是找到一个函数,使其与已知数据点的误差最小。
最常用的拟合方法是最小二乘拟合,它通过最小化数据点的残差的平方和来找到最佳拟合函数。
最小二乘拟合可以用于各种不同的函数类型,如线性拟合、多项式拟合、指数拟合等。
根据数据点的分布和特性,我们可以选择适当的拟合函数来获得最准确的预测结果。
在实际应用中,插值和拟合方法经常同时使用。
例如,在地理信息系统中,我们可能需要通过已知地点的气温数据来估计未知地点的气温。
我们可以使用插值方法来构建一个连续函数,以便在已知地点之间预测未知地点的气温。
然后,我们可以使用拟合方法来匹配这个连续函数与其他已知数据点,以提高预测的准确性。
插值和拟合方法在科学、工程、金融等各个领域都有广泛的应用。
在科学研究中,它们可以用于数据分析和预测,以帮助我们理解和解释实验结果。
在工程中,它们可以用于控制系统设计、信号处理和机器学习等领域。
在金融领域,它们可以用于市场预测和风险管理等重要任务。
总而言之,插值和拟合是数值计算中常用的方法,用于通过已知数据点推测未知数据点的数值。
数值分析中的插值与拟合
数值分析中的插值与拟合插值和拟合是数值分析中常用的技术,用于估计或预测数据集中缺失或未知部分的数值。
在本文中,我们将讨论插值和拟合的概念、方法和应用。
一、插值插值是通过已知数据点之间的连续函数来估计中间数据点的数值。
插值方法可以根据不同的数据和需求选择合适的插值函数,常用的插值方法包括拉格朗日插值、牛顿插值和埃尔米特插值。
1.1 拉格朗日插值拉格朗日插值是一种基于多项式的插值方法。
通过已知的n个数据点,可以构建一个n-1次的插值多项式。
这个多项式通过已知数据点上的函数值来准确地经过每一个点。
1.2 牛顿插值牛顿插值方法也是一种多项式插值方法,通过差商的概念来构建插值多项式。
差商是一个递归定义的系数,通过已知数据点的函数值计算得出。
牛顿插值可以通过递推的方式计算出插值多项式。
1.3 埃尔米特插值埃尔米特插值是一种插值方法,适用于已知数据点和导数值的情况。
它基于拉格朗日插值的思想,通过引入导数信息来逼近数据的真实分布。
埃尔米特插值可以更准确地估计数据点之间的值,并且可以保持导数的连续性。
二、拟合拟合是通过一个模型函数来逼近已知数据点的数值。
拟合方法旨在找到最适合数据集的函数形式,并通过最小化误差来确定函数的参数。
常见的拟合方法包括最小二乘法、多项式拟合和曲线拟合。
2.1 最小二乘法最小二乘法是一种常用的拟合方法,通过最小化数据点到拟合函数的误差平方和来确定最佳拟合曲线或曲面。
最小二乘法适用于线性和非线性拟合问题,可以用于拟合各种类型的非线性函数。
2.2 多项式拟合多项式拟合是一种基于多项式函数的拟合方法。
通过多项式的线性组合来近似已知数据集的数值。
多项式拟合可以通过最小二乘法或其他优化算法来确定拟合函数的系数。
2.3 曲线拟合曲线拟合是一种用曲线函数来逼近已知数据点的拟合方法。
曲线函数可以是非线性的,并且可以根据数据的特点进行选择。
曲线拟合可以通过优化算法来确定拟合函数的参数。
三、应用插值和拟合在数值分析中有广泛的应用。
插值与拟合方法
插值与拟合方法插值和拟合是数学中常用的方法,用于根据已知数据点的信息,推断出未知数据点的数值或函数的形式。
插值和拟合方法是经典的数学问题,应用广泛,特别是在数据分析、函数逼近和图像处理等领域。
1.插值方法:插值方法是通过已知数据点的信息,推断出两个已知数据点之间的未知数据点的数值。
插值方法的目的是保证插值函数在已知数据点处与实际数据值一致,并且两个已知数据点之间的连续性良好。
最常用的插值方法是拉格朗日插值法和牛顿插值法。
拉格朗日插值法根据已知数据点的横纵坐标,构造一个多项式函数,满足通过这些数据点。
拉格朗日插值法可以用于任意次数的插值。
牛顿插值法是使用差商的概念进行插值。
差商是指一个多项式在两个数据点之间的斜率。
牛顿插值法通过迭代计算得到与已知数据点一致的多项式。
插值方法的优点是可以精确地经过已知数据点,但是在两个已知数据点之间的插值部分可能会出现震荡现象,从而导致插值结果不准确。
2.拟合方法:拟合方法是通过已知数据点的信息,找出一个函数或曲线,使其能够最好地拟合已知数据点。
拟合方法的目标是寻找一个函数或曲线,尽可能地逼近已知数据点,并且能够在未知数据点处进行预测。
最常用的拟合方法是最小二乘法。
最小二乘法是通过求解最小化残差平方和的问题来进行拟合。
残差是指已知数据点与拟合函数的差异。
最小二乘法的目标是找到一个函数,使得所有数据点的残差平方和最小。
拟合方法的优点是可以得到一个光滑的函数或曲线,从而可以预测未知数据点的数值。
但是拟合方法可能会导致过拟合问题,即过度拟合数据点,导致在未知数据点处的预测结果不准确。
除了最小二乘法,还有其他的拟合方法,如局部加权回归和样条插值等。
局部加权回归是一种基于最小二乘法的拟合方法,它通过赋予不同的数据点不同的权重,来实现对未知数据点的预测。
样条插值是一种基于多项式插值的拟合方法,它将整个数据集分段拟合,并且在分段部分保持连续性和光滑性。
总结:插值和拟合方法是数学中的经典方法,用于根据已知数据点的信息,推断出未知数据点的数值或函数的形式。
插值与拟合-2012
? si ( xi )
si+ 1 ( xi ), siⅱi ) = si+ 1 ( xi ), siⅱi ) = siⅱ( xi ) (i = 1, , n - 1) (x (x +1
2) 3) 4) 揶 ai , bi , ci , di S ( x)
4) S ⅱ 0 ) = S ⅱ n ) = 0 ( (x (x 自然边界条件)
言
例 1:已知 sin35 10' = 0.5760,sin35 20' =0.5783 ,求 sin 35 16' 的值。
分析: 由于所给的这几个值范围很小, 故我们可以考虑用线性函数逼近正弦函数 (即用线性函数近似的代替正弦函数),于是容易得到:
sin 3516' = sin 3510'+ (sin 3520'- sin 3510') 复 10 6
拟合与插值的关系
问题:给定一批数据点,需确定满足特定要求的曲线或曲面
解决方案: •若要求所求曲线(面)通过所给所有数据点,就是插值问题; •若不要求曲线(面)通过所有数据点,而是要求它反映对象 整体的变化趋势,这就是数据拟合,又称曲线拟合或曲面拟合。
函数插值与曲线拟合都是要根据一组数据构造一个函数作 为近似,由于近似的要求不同,二者的数学方法上是完全不同 的。
y 0 , y1 , , y n 。
要求:求一个分段( 共 n 段)多项式函数 q(x),使其满足:q(xi)=yi,
q ( xi ) y i ,i=0,1,…,n.
相当于在每一小段上应满足四个条件(方程),可以确定四个待定参数。三次多项式正 好有四个系数,所以可以考虑用用三次多项式函数作为插值函数,这就是所谓的分段三次 埃尔米特插值,与分段线性插值一起都称为分段多项式插值。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
t=0:0.5:5; s=1*t+0.2.*t.*t; %给定二次曲线 s1=[0.5 -0.18 -0.01 0.13 0.1 ...
0.31 -0.22 -0.31 0.2 0.4 -0.14]; ss=s+s1;%设定误差值 P=polyfit(t,ss,2); %二次曲线拟合 y=polyval(P,t); %计算拟合函数的值 plot(t,y,t,ss,’r*’)
3. 插值与拟合的计算方法
3.1 拉格朗日插值法 过两点(x0, y0), (x1, y1)直线为
将方程改写为
y
=
x x0
− x1 − x1
y0
+
x x1
− x0 − x0
y1
L1(x) = l0(x)y0 + l1(x)y1
其中
L1(x)
=
y,
l0
=
x x0
− x1 − x1
,
l0(x), l1(x)显然是满足下列条件的一次函数
4. 求单调连续函数f (x)的实数根的算法
4.1 对分法 已知函数f (x)在区间[a, b]单调连续,设f (a) < 0, f (b) > 0,则a, b间必有一实 根。
记中点x0 = (a + b)/2,若f (x0) = 0则x0为所求实根。 若f (x0) < 0,则令a1 = x0, b1 = b,若f (x0) > 0,则令b1 = x0, a1 = a。这时 根必在[a1, b1]中,它的长度为原区间的一半。 令x1 = (a1 + b1)/2再重复上面的过程,得到新的缩小一半的区间[a2, b2]。一 直进行下去,可得到一区间系列
类似的方法可以求出二次插值函数.令
L2(x) = l0(x)y0 + l1(x)y1 + l2(x)y2 l0(x), l1(x), l2(x) 分别是节点y0, y1, y2的插值基函数, 它们应该是不超过二次的 多项式, 且满足条件
l0(x0) = 1, l0(x1) = 0, l0(x2) = 0,
正则方程组是
9a0 + 0 + 3.75a2 = 18.1732
0 + 3.75a1 3.75a0 + 0
+ +
0 = 8.4842 2.7656a2 =
7.6173
其解为a0 = 2.0034, a1 = 2.2625, a3 = 0.0378,所求多项式为
P2(x) = 0.0378x2 + 2.2625x + 2.0034 用MATLAB验证结果
i=1
·····
n
a0
· xmi
+Байду номын сангаас
i=1 n
a1
i=1
xmi +1 + a2
n
i=1
xmi +2 + · · · + am
n
i=1
x2i m =
n
yixmi
i=1
i=1
i=1
i=1
i=1
这是最小二乘拟合多项式的系数ak应满足的方程组,称为正则方程组。
例:求下面数据表的最小二乘二次拟合多项式。
i1
23456789
• 分段插值 将插值区间分成若干小区间,在每个小区间插入一个多项式。
• 样条插值 要求分段插值生成的曲线在相邻小区间的连接处也光滑。
• 曲线拟合
不要求插值函数通过数据点,只要求插值函数所代表的曲线按照某个判别 标准(如最小二乘法, 要求 n [fi − g(xi)]2 为最小)能最好地接近数据点。
i=0
>> f=inline(’5*x^5+3*x^4-4*x.^3+x.^2+7*x+9’); >> fzero(f,1) ans =
-1.3127
>> f=@(x)5*x^5+3*x^4-4*x.^3+x.^2+7*x+9 f=
@(x)5*x^5+3*x^4-4*x.^3+x.^2+7*x+9 >> X=fzero(f,1) X=
=
xn
−
f
(xn)
f
(xn (xn)
− −
xn−1) f (xn−1)
这就是弦割法的公式,它通过xn和xn−1求出xn+1。它是用过点(xn−1, f (xn−1),
(xn, f (xn))) 的直线与x轴的交点来求根。
4.4 MATLAB解方程的指令
MATLAB有多个解方程的指令,要分别情况加以应用。
本 例 中 , 以 正 弦 函 数 的10个 值作为原始数据(小圆圈表 示)。再用四种方法算出41个 插值点并画曲线
2.2 曲线的多项式拟合 polyfit (X,Y,N ) 对数据作最小二乘法的多项式拟合 X,Y是样点数据,N是拟合多项式的最高幂次,结果是按降幂排列的系 数。 polyval 计算多项式的值
子(x − x1)(x − x2), 又因为l0(x) 是二次多项式, 故可写成
l0(x) = A(x0 − x1)(x0 − x2) 式中A为待定的系数, 再由条件l0(x0) = 1 定出
于是 同样可求得
最后得到
A
=
(x0
−
1 x1)(x0
−
x2)
l0(x)
=
(x (x0
− −
x1)(x − x2) x1)(x0 − x2)
x=[-1 -0.75 -0.5 -0.25 0 0.25 0.5 0.75 1] ; y=[-0.2209 0.3295 0.8826 1.4392 2.0003 2.5645 3.1334 3.7601 4.2836 yi=polyfit(x,y,2) yp = 0.0379 2.2624 2.0034
k=0
通过选取参数ai(多项式的系数),使得
(j = 0, 1, 2, · · · , m)
n
n
δi2 = [yi − Pm(xi)]2 = F (a0, a1, · · · , am)
i=1
i=1
最小。由多元函数取极值的条件得方程组
移项得
∂F ∂ai
=
−2
n i=1
m
yi − akxki
k=0
xji = 0,
options控制算法的优化选项,[ ]是默认值。
这个指令每次只能求出一个根,而且只能求实根。例如
>> fzero(@(x)5*x^5+3*x^4-4*x.^3+x.^2+7*x+9,1) ans =
-1.3127
>>x = fzero(@sin,3) x=
3.1416
也可以先定义函数,再求解。定义函数的方法有多种:
subplot(2,2,1)
plot(xi,yi1,xi,yi1,’r.’)
subplot(2,2,2)
plot(xi,yi2,xi,yi2,’r.’)
subplot(2,2,3)
plot(xi,yi3,xi,yi3,’r.’)
subplot(2,2,4)
plot(xi,yi4,xi,yi4,’r.’)
n
Ln(x) = lk(x)yk
k=0
lk(x)
=
(x − x0) · · · (x (xk − x0) · · · (xk
− −
xk−1)(x − xk+1) · · · (x − xn) xk−1)(xk − xk+1) · · · (xk − xn)
且满足插值条件
Lk(xi) = δik, (i, k = 0, 1, 2, · · · , n)
m
n
n
ak
xki +j =
yixji
k=0
i=1
i=1
即
n
n
na0 + a1 xi + a2 x2i + · ·
n
i=1 n
i=1 n
a0 xi + a1 x2i + a2 x3i
·+ +·
n
am xmi
i=1 n
· · + am
n
= yi
i=1
xmi +1 =
n
yixi
xn+1
=
xn
−
f (xn) f (xn)
xn+1是过点(xn, f (xn))的切线
y − f (xn) = f (xn)(x − xn)
与x轴的交点,所以叫切线法。
4.3 弦割法 用差分公式近似代替上式中的导数
f
(xn)
=
f (xn) xn
− −
f (xn−1) xn−1
得到的递推公式是
xn+1
l1(x)
=
(x (x1
− −
x0)(x − x2) x0)(x1 − x2)
l2(x)
=
(x (x2
− −
x0)(x − x1) x0)(x2 − x1)
L2(x)
=
(x (x0
− −
x1)(x − x2) x1)(x0 − x2)
y0
+
(x (x1
− −
x0)(x − x2) x0)(x1 − x2)
将f (x)在xn处展开成Taylor级数
f (x) = f (xn) + f (xn)(x − xn) + f (x)(x − xn)2/2! + · · · + O(x3)