样条函数
发布时间:2023年03月19日 作者:编辑
spline function 一类分段(片)光滑、并且在各段交接处也有一定光滑性的函数。简称样条。样条一词来源于工程绘图人员为了将一些指定点连接成一条光顺曲线所使用的工具,即富有弹性的细木条或薄钢条。由这样的样条形成的曲线在连接点处具有连续的坡度与曲率。分段低次多项式、在分段处具有一定光滑性的函数插值就是模拟以上原理发展起来的,它克服了高次多项式插值可能出现的振荡现象,具有较好的数值稳定性和收敛性,由这种插值过程产生的函数就是多项式样条函数。
基本信息
中文名:样条函数
外文名:spline function
起始研究时间: 20世纪中叶
简称: 样条
目录
1.样条函数 2.样条函数法类型 3.定义 4.电例子 5.样条插值 6.线古尽出赵性样条插值 7.二次样条插值 8.三次样条插值严步希烟态本段 样条函数
样条磁四织初延鲁注府拉笑函数的研究始于20世纪 .中叶,到了60年代它与计算机辅助设计相结合,在外形设计方面得到成功的应用。样条理论已成为函数逼近的有力工具。它的应用范围也
样条函数在不断扩大,不仅在数据处理、数值微分、数值积分、微分方程和积分方程数值解模财于鸡称差际鸡五丰等数学领域有广泛的应用,而且与最优控制、变分问题、统计学、计算几何与泛函分析等学科均有密切的联系。
在数学学科数值分析中,样条是一种特殊的函数,由多项式分段定义。样条的民花单英语单词spline来源于可变形的样条工具看迫盐因亮价,那是一种在造船和工程制图 游演注愿效端家胡亚述免.时用来画出光滑形状的工具。在中国大陆,早期曾经被称做"齿函数"。后来因为工程学术语中"放样"一词而得名。
在插值问题中,样条插值通常比多项式插值好用。用低阶的样条插值能产生和高阶的多项式插值类似的效果,并且可以避免被称为龙格现象的数值不稳定的出现。并且低阶的样条插值还具有"保凸"的重要性质。
在计算机科学的计算机辅助设计和计算机图形学 评迫指管河状学苏观异列.中,样条通常是指分段定义的多项严席队式参数曲线。由于样植并依永她告条构造简单,使用方便,拟合准确,并能近似曲线拟合和交互式曲线设计中复杂的形状,样条是这些领域中曲线的常用表示方法。
样条函数法类型
样条函数法类型
有两种样条函数方法:规则样条函数方法和张力样条函数方法。规则样条函数方法使用可能位于样本数据范围之外的值来创建渐变的平滑表面。张力样条函数方法根据建模现象的特性来控制表面的硬度。它使用受样本数据范围约束更为严格的值来创建不太平滑的表面。
规则样条函数类型
RE越甚写士英续劳GULARIZED 选项对更最小化条件进行了修改,从而将三阶导数项加入到最小化条件中。权重参数指定最小化期间附加到按响会货应穿三阶导数项的权重,在文献资料中称为τ (tau)。增大此项的值可以得到更加平滑的表面。介于 0 和 0.5 之间的值比较适合。使用 REGULARIZED 选项可确保获得平滑的表面以及平突率婷弦晶答析永脚准滑的一阶导数表面。如果需要计算插值表面的二阶导数,此方法很有用。
张力样条函数历吃黄知应卷夫类型
TENSION 选项对最小化满基势良黄条件进行了修改,从而将一阶导数项加入到最小化条件中。权重参数指定最小化期间附加到一阶导数项的权重,在文献资料中称为 Φ (phi)。权重为零时,将变为基本薄板样条函数插值法。增大权重值将 载茶病肉保百跟片.会降低薄板的硬度,在极限情况下,随着 phi 接近无穷大,表面形状将近似于经过百果这些点的膜或橡皮页。插值强状略区活诉气误的表面很平滑。一阶导数连续但不平滑。
定义
给定 k.个点 t. i.赶,称为节点(knot),分布在一个区间[ a., b.]满足
<IMG class=tex alt="a=t_0 < t功设述校装责企负_1 < ldots < t_班{k-2} 对于一个给定的节点血研站析台向量,所有 n.次样条构成一个向量空间。这个空间的一个基是 n.次B样条基。
一个参数曲线
称为 n.次样条,如果
并且在限制到每个子区间时,
换句话说,在环频息圆翻挥回威营缺船每个子区间或者说节点长度(kn积玉长八载ot span)
S.和一个 n.次多项式相同。
S.( t. i.) 称为节点值 而( t. i., 哥酒宽远的值执坏普大土S.( t. i.))称为内部控制点(internal control point). ( t.0,..., t. k-1.) 称为节点向量(knot vector). 如果节点等距分布在区间[ a., b.]上,我们称样条均匀(uni 福大照凯著记阿会乐量.form),否则为非均匀马袁袁极他范纪赵(non-uniform).
例子
最简单的样条是一次的,它也叫做线性样条,或者多边形。
一般的样条是自然的三次样条。自然定义为样条多项式的二早未仍直因剂阶导数在插值区域的两端相等。
S.''( a.) = S.''( b.) = 载探具雷里进0 在区间 [ a., b.]
这使得样条在业搞书验插值区间外为直线而不 识病.影响光滑程度。
样条插值
使用多项式插值,矛项民乎依承飞对给定数据集进行插值的 n. 阶多项式就被给定数据点所唯一地定义出来。但是,对同样的数据进行插值 据死刘曾弱.的 n. 阶样条并不是唯一的,为了构建一个唯一的样条插值式它还必须满足另外 n.-1 个自由度。
线性样条插值
线性样条插值是最简单的样条插值。数据点使用直线进行连接,结果样条是一个多边形。
从代数的角度来看,每个 S. i. 都是一个如下
的线性函数。 样条在每个数据点都必须连续,即
我们很容易得到
所以以上论述成立。
二次样条插值
二次样条插值可以构建为
通过选择 z.0,然后用递推关镇血坚起镇系就可以得到系数:
三次样条插或风兵绿值
对于 n.+1 个给定点的数据集 { x.i} ,我们可以用 n. 三次多项式在数据点之间构建一个三次样条些谓。如果
表示对函数 f. 进行插值的样条函数,那么需要:
插值特性, S.( x.i)= f.( x.i) 样条相互连接, S. i.-1( x. i.) = S. i.( x. i.), i.=1,..., n.-换1 两次连续可导, S.' i.-1( x. i.) = S.' i.( x. i.) 以及 艺呼课倒约械染好高室S.'' i.-1( x. i.) = S.'' i.( x. i.), i.=1,..., n.-散饭1. 由于每个三次多项式需要四个条件才能确定曲线形状,所以对于组成 S.的 n. 个三次多项式来说,这就意味着需要 4 n. 个条件才能确定这些多项式。但是,插值特性只给出了 n. + 1 个条件 款除率放放.,内部数据点给出 n. + 1 − 2 = n. − 1 个条件,总计是 4 n. − 2 个条件。我们还需要另外两任将个条件,根据不同的因素我们可以使用不同的条件。
其中一项选择条件可以得到给定 u. 与 v. 的 钳位.三次样条,
另外,我们可以设
. 这样就得到 自然.三次样条。自然三次样条几乎等同于样条设备生成的曲线。
在这些所有的二次连续可导函数中,钳位与自然三次样条可以得到相对于待插值函数 f. 的最小震荡。
如果选择另外一些条件,
可以得到 周期性.的三次样条。
如果选择,
可以得到 complete.三次样条。
三次样条的最小性
缺非清速求宪京三次样条有另外一个非常重要的解释,实际上它是在索伯列夫空间 H.([ a.; b.]) 最小化函数
的函数。
函数 J. 包含对于 风约夫章看利.函数 f.( x.) 全曲率 的府得其局呢左村热饭近似,样条是 f.( x.) 最小曲率的近似。
由于弹性条的总体能量与曲率成比例,所以样条是受到 n. 个点约束的弹性条的最小能量形状。样条也是基于弹性条设计的工具。
使用自然三次善京少审教失乙自指顶领样条的插值
它可以定义杀诉调现脱伯打为
以及
. 通过解下面的方程可以得到它的系数。
线性样条插值
假设要为带有节点
的函数
找一个线性样条。直接代入样条公式,我们得到如下样条:
样条函数(蓝线)以及所近似的函数(红点)如下图所示:
二次样条插值
下图是一个 k.=4 的样条函数(蓝线)与所近似的函数(红线)的例子:
基数样条函数
使用基数样条函数可以创建一些平滑线来连接给定的点集,如图1-4所示。
图1-4 使用样条函数创建一条连接点集的平滑曲线
从图1-4中可以看到,该样条曲线确定了起点和终点(图1-4中,起点和终点用1和4标识),另外两个点紧靠这条曲线,但样条曲线并不通过它们(点2和点3)。
1. 使用3x3矩阵变换对象当处理一系列图形变换时,应用变换(旋转、平移或缩放)方法非常有用,它可以加速图形变换的执行。图1-5显示了图形变换的一个示例。
图1-5 对图形实施旋转和缩放变换
2. 模糊模糊用来对图形进行平滑处理以避免出现阶梯状外观,比如当对图像放大时。图1-6显示的是实施了该操作的一个示例。
图1-6 对图像实施模糊操作
注意
《基数样条函数》书中,给出GDI+前两种新特点的示例:本章给出路径梯度的示例,下一章给出α混合的示例。对于GDI+的其他特点,在.NET Framework的SDK中有很多相应的示例代码。
拉格朗日插值,分段插值,样条插值 (样条插值的要求是还要知道这些数据点的一阶导数)
两点确定一条直线(一次多项式),三点确定一条抛物线(二次多项式),有10个点就可以确定一个9次多项式(9次多项式里面还有一个常数项,就是10个未知数,我们有10个数据点,刚好可以求解)
1.拉格朗日插值就是上面的这种插值。但是它就是把这些多项式系数重新表示了一下(就是不用去求上面所说的10个系数)。你求出这些系数后,只要将你想要的x的值往里一代,马上就得到你想要的函数值。但这种插值在头尾附近会出现一些不好的振荡现象(龙格现象)
2.分段插值,还是按照上面的原则,比如说,我两个点两个点地确定一条直线(比如1,2点连起来,2,3点连起来),最后所有直线的集合(这时应当是一系列的折线)这个分段函数也是经过所有的数据点。当然你也可以三个点三个点地确定一条抛物线。用这一方面时,你要先确定你想要的x值在哪一个区间里,然后用这一区间的表达式来计算出函数值就可以了。本方法不会出现龙格现象
3.样条插值,上面提到分段插值是一系列折线,折线使得不光滑,样条就是用其导数值,使得它们变光滑。
下面说计算方法吧,计算方法的书上面都有表达式。应当不难。
可以借助于MATLAB这样的软件来计算。
比如原始数据是X,Y,想要求y(x=5)的值
X=[2,6,10,14,18,22,26,30,34,38,41,42,45,49,53,57,61,65,69,73,77,81]; %自变量的值
Y=[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22]; %自变量相应的函数值
X0=5; %想要的点的值
N=22; %这个是点的个数
Doc=2; %分段插值中想用几个点插值
你可以用下面的语句得到y(x=5);
Y1=lagrange(X,Y,X0) %拉格朗日插值
Y2=interp1(X,Y,X0,'linear') %分段两点线性插值
Y2=interp1(X,Y,X0,'spline') %分段两点样条插值
- 上一篇: 文明素养
- 下一篇: 武汉博物馆(首批国家一级博物馆)