样条拟合钛测试数据
这个例子展示了如何使用命令从样条曲线拟合工具箱™适合钛与手动和自动测试数据选择节。
手工样条插值结选择
这里有一些数据记录一定财产的钛,测量作为温度的函数。我们将使用它与样条插值来说明一些问题。
[xx, yy] =钛;
一块的数据显示了一个顶点。
情节(xx, yy,“软”);帧= [10 - -10。1。3]+ [min (xx), max (xx)、min (yy)、马克斯(yy)];轴(框架);
我们挑选一些数据点从这些有些粗糙的数据,因为我们想插入。这是一个图片的数据,选择数据点标记。
选择=[1 5 11 21 27 29日31日33 35 40 45 49岁);τ= xx(选择);y = yy(选择);持有在情节(τ,y,“罗”);持有从
由于k阶样条与n + k结有n个自由度,我们有12个数据点,符合一个四阶样条需要12 + 4 = 16节。此外,这个结序列t必须这样的第i个数据站点位于第i b样条的支持。金宝app我们实现这一目标通过使用数据网站节,但添加两个简单节两端。
dl =τ(2)-τ(1);博士=τ(结束)-τ(end-1);t =(τ(1)dl *[2 1]ττ(结束)+ *[1 - 2]]博士;%构造结序列情节(τ,y,“罗”);持有在轴(框架+ (2 * dl博士2 * 0 0))情节(t, repmat(框架(3)+ 03,大小(t)),“kx”)举行从传奇({的数据值“节”},“位置”,“西北”)
我们用这个结序列来构造一个插值三次样条。
sp = spapi (t,τ,y);
现在,对于情节。因为我们不关心数据区间外花键的一部分,我们限制区间的阴谋。
情节(τ,y,“罗”轴(帧)在fnplt (sp(τ(1)τ(结束)),“k”)举行从
仔细看看左边的一部分花键配合展示了一些波动。
xxx = linspace(τ(1)τ(5),41);情节(xxx, fnval (sp, xxx),“k”,τ,y,“罗”);轴([τ(1)τ(5)0.6 - 1.2]);
不合理的撞在第一间隔源于我们的花键顺利在首次结零。看到,这里是整个花键的照片,连同其结序列和数据点。
fnplt (sp,“k”);持有在情节(τ,y,“罗”t repmat(。1、大小(t)),“kx”);持有从传奇({“样条Interpolant”的数据值“节”},“位置”,“西北”)
这是一个简单的方法来执行一个更合理的边界行为。我们添加两个更多的数据点在给定数据间隔和选择我们的数据的值有直线通过前两个数据点。
tt =(τ(1)- (4 3 2 1]* dlττ(结束)+(1 2 3 4)*博士);xx =[τ(1)- (2 - 1)* dlττ(结束)+(1 2)*博士);yy = [y (1) - (2 - 1) * (y (2) - y (1)) y y(结束)+ (1 2)* (y(结束)- y (end-1)));sp2 = spapi (tt, xx和yy);情节(τ,y,“罗”,xx ([1 2 end-1结束]),yy ([1 2 end-1结束]),“波”);轴(框架+ (2 * dl博士2 * 0 0));持有在fnplt (sp2,“b”结束,τ([1])从传奇({“原始数据”的数据还说结束条件…“符合添加数据”},“位置”,“西北”)
这是一个比较的两个样条,显示减少波动的第一个和最后一个时间间隔。
持有在fnplt (sp,“k”结束,τ([1])从传奇({“原始数据”的数据还说结束条件…“符合添加数据”“原来适合”},“位置”,“西北”)
最后,这是一个近距离观察第一个四个数据间隔显示更清楚左端附近的波动的减少。
情节(τ,y,“罗”,xxx, fnval (sp2, xxx),“b”xxx, xxx, fnval (sp),“k”);轴([τ(1)τ(5)。6 1.2]);传奇({“原始数据”“符合添加数据”…“原来适合”},“位置”,“西北”)
自动选择插值
如果把你所有这些细节,让曲线拟合工具箱为你选择的结。指定所需的订单interpolant的第一个输入参数样条插值命令spapi
,而不是一个结序列。
autosp = spapi(4,τ,y);节= fnbrk (autosp,“节”);情节(τ,y,“罗”)举行在fnplt (autosp‘g’)情节(节,repmat(5、大小(结)),“gx”)举行从传奇({的数据值“符合节SPAPI选择”…“结由SPAPI选择”},“位置”,“西北”)
下面是一个更好的结果,结的选择,通过把结在842略向右,结在985略向左。
12节([7])= (851、971);adjsp = spapi(节,τ,y);持有在fnplt (adjsp“r”2)图(结repmat(54、大小(结)),“处方”)举行从传奇({的数据值“符合节SPAPI选择”…“结由SPAPI选择”“符合节调整”…“调整节”},“位置”,“西北”)
否则,仅仅尝试标准立方样条interpolant,提供的csapi
。这相当于一个稍微不同的节的选择。
autocs = csapi(τ,y);情节(τ,y,“罗”)举行在fnplt (autocs“c”)举行从
这样rapidly-varying数据,很难在所有合理的interpolants达成一致,即使每个人都是一个三次样条。下面的图显示了所有5个interpolants,比较。
情节(τ,y,“罗”)举行在fnplt (sp,“k”结束,τ([1]))%黑色:原fnplt (sp2,“b”结束,τ([1]))%蓝色:有特殊条件fnplt (autosp‘g’)%格林:自动结SPAPI选择fnplt (autocs“c”)%青色:自动结CSAPI选择fnplt (adjsp“r”,2)%红色:结选择SPAPI略有改变持有从传奇({的数据值“原来适合”“特殊结束条件”…“由SPAPI节选择”“由CSAPI节选择”…“与调整节”},“位置”,“西北”)