样条函数的线性样条插值

如题所述

第1个回答  2016-05-18

假设要为带有节点
的函数
找一个线性样条。直接代入样条公式,我们得到如下样条:
样条函数(蓝线)以及所近似的函数(红点)如下图所示: 使用基数样条函数可以创建一些平滑线来连接给定的点集,如图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') %分段两点样条插值

相似回答