主要内容

如何选择结

此示例显示如何使用该示例选择和优化结optknt.纽knt.曲线配件工具箱™的命令。

样本数据

以下是一些示例数据,很多用于测试用可变结的样条近似,所谓的钛热数据。它们记录了作为温度函数测量的钛的一些性能。

[xx,yy] =钛;情节(XX,YY,'X');轴([500 1100 .55 2.25]);标题('钛热数据');抓住

图包含轴。具有标题的钛热数据的轴包含类型线的物体。

注意相当尖峰。我们将使用这些数据来说明一些用于结选择的方法。

首先,我们从这些粗略的数据中选择一些数据点。我们将插入使用此子集,然后将结果与完整数据集进行比较。

拾取= [1 5 11 21 27 29 31 35 40 45 49];tau = xx(pick);y = yy(pick);情节(Tau,Y,'ro');传奇({'完整数据集''限定数据'},'地点''nw');

图包含轴。标题钛热数据的轴包含2个类型的线。这些对象表示完整的数据集,限制数据。

一般考虑因素

一个秩序的花键K.n + k结有N自由程度。由于我们有12个数据网站,tau(1)<... ,具有立方样条的拟合,即第四阶样条曲线,需要结序列T.长度12 + 4。

而且,结序列T.必须满足于Schoenberg-Whitney条件,即,必须是第i个数据站点位于第i个B样条的支持下,即,万博1manbetx

t(i)

只有在一个相结的情况下允许的平等K.

选择满足所有这些条件的结序列的一种方法是Gaffney / Powell和Micchelli / Rivlin / Winograd的最佳结。

最佳结

最佳样条插值,位点的值

Tau(1),......,Tau(n)

说,选择结以使标准错误公式中的常数最小化。具体地,第一和最后一个数据站点被选为k折结。剩余的N-K.结是由optknt.

这是帮助的开始optknt.

Optknt最佳结分布。

Optknt(TAU,K)返回“最佳”结序列

数据网站的插值tau(1),...,tau(n)用vickine

订单K. Tau必须是一个越来越多的序列,但这不是

检查。

optknt(tau,k,maxiter)指定迭代的数字MAXITER

要尝试,默认为10。

这种结序列的内部结是n-k

在任何绝对常量函数h〜= 0的签名

满足

积分{f(x)h(x):tau(1)

对于所有花键F的QUART k与结序列TAU。

尝试optknt.

我们尝试使用optknt.对于我们的示例的插值,通过立方样条对数据进行插值

(tau(i),y(i)),对于i = 1,...,n。

k = 4;OSP = Spapi(Optknt(Tau,K),Tau,Y);fnplt(OSP,'r');hl =图例({'完整数据集''限定数据'......'立方样条插值使用最佳结'},......'地点''nw');hl.position = hl.position  -  [.14,0,0,0];

图包含轴。标题钛热数据的轴包含3个类型的线。这些对象表示使用最佳结的完整数据集,分组数据,立方样条插值。

这有点令人不安!

在这里,由星星标记,也是内部最佳结:

xi = fnbrk(OSP,'结');Xi([1:k末端+ 1-(1:k)])= [];绘图(xi,repmat(1.4,尺寸(xi)),'*');hl =图例({'完整数据集''限定数据'......'立方样条插值使用最佳结'......'最佳结'},'地点''nw');hl.position = hl.position  -  [.14,0,0,0];

图包含轴。标题钛热数据的轴包含4个类型线的4个物体。这些对象表示使用最佳结的完整数据集,数据标注数据,立方样条插值,最佳结。

发生了什么?

最佳插值的结选择旨在最大限度地实现全部职能F比例

规范(F - IF)/ NOM(D ^ K F)

尽可能小,其中分子是插值误差的规范,f - 如果,分母是常态K.- 内嵌的衍生物,d ^ k f。因为我们的数据意味着d ^ k f相当大,数据的平坦部分附近的插值误差对于这种“最佳”方案具有可接受的尺寸。

实际上,对于这些数据,所提供的普通立方样条插值CSAPI.做得很好:

CS = CSAPI(TAU,Y);fnplt(cs,'G',2);hl =图例({'完整数据集''限定数据'......'立方样条插值使用最佳结'......'最佳结''立方样条插值使用CSAPI'},......'地点''nw');hl.position = hl.position  -  [.14,0,0,0];抓住离开

图包含轴。标题钛热数据的轴包含5个类型的线。这些对象表示使用最佳结,最佳结,使用CSAPI的立方样条插值,立方样条特数据。

结选项最小二乘近似

当通过样条曲线执行最终的平方近似时必须选择结。一种方法是使用同等间隔的结以开始,然后使用纽knt.通过获得更好的结分布获得的近似。

下一节用完整的钛热数据集来说明这些步骤。

用均匀结序列的最小二乘近似

我们从统一的结序列开始。

UNIF = LINSPACE(XX(1),XX(END),2 + FIX(长度(XX)/ 4));sp = spap2(奥尼克(Unif,k),k,xx,yy);情节(XX,YY,'X');抓住fnplt(sp,'r');轴([500 1100 .55 2.25]);标题('钛热数据');hl =图例({'完整数据集'......使用均匀结的“最小二乘立方样条”},......'地点''nw');hl.position = hl.position  -  [.14,0,0,0];

图包含轴。标题钛热数据的轴包含2个类型的线。这些对象表示完整的数据集,最小二乘立方样条使用均匀结。

这并不令人满意。所以我们使用纽knt.对于相同顺序的样条近似和相同数量的多项式件,但断裂更好分布。

使用Newknt改善结分布

spgood = spap2(newknt(sp),k,xx,yy);fnplt(spgood,'G',1.5);hl =图例({'完整数据集'......使用均匀结的“最小二乘立方样条”......使用newknt'的“最小二乘立方样条”},......'地点''nw');hl.position = hl.position  -  [.14,0,0,0];抓住离开

图包含轴。标题钛热数据的轴包含3个类型的线。这些对象代表完整的数据集,使用均匀结的最小二乘立方样条,最小二乘立方样条使用newknt。

这相当不错。顺便提及,在这种情况下,即使一个内部结较少也不会被磨损。