此示例显示如何使用曲线拟合工具箱™中的样条曲线的PPForm构造和工作。
(单变量)分段多项式,或PP.简而言之,其特征在于它打破序列那休息
说,及其系数阵列那COEFS.
说,其多项式件的局部动力形式。假设断裂序列严格增加,
休息(1)<中断(2)<... <中断(L + 1),
和L.
构成pp的多项式块的数量。在下图中,休息
是[0,1,4,6],因此L.
是3。
虽然这些多项式可能具有不同程度的,但它们都被记录为相同的多项式命令K.
,即系数阵列COEFS.
是尺寸[L,K]
, 和Coefs(J,:)
包含这一点K.
局部电力形式的系数j
-th多项式件。
这里是由三个二次多项式组成的PP的示例,即,L.
=K.
= 3.中断以红色标记。
sp = spmak([01 4 4 6],[2 -1]);pp = fn2fm(sp,'pp');breaks = fnbrk(pp,'B');coofs = fnbrk(pp,'C');COEFS(3,[1 2])= [0 1];pp = ppmak(休息,cofs,1);fnplt(pp,[断裂(1)-1 break(2)],'G',1.8)持有在fnplt(pp,breaks([2 3]),'B',1.8)Fnplt(PP,[断裂(3),断裂(4)+1],'M',1.8)LP1 =长度(断裂);xb = repmat(休息,3,1);Yb = Repmat([2; 2.2; NaN],1,LP1);绘图(XB(:),YB(:),'r')轴([ - 1 7 -2.5 2.3])持有离开
PP在断裂序列方面的精确描述休息
和系数阵列COEFS.
是
pp(t)= polyval(cofs(j,:),t-breaks(j))
断裂(j)<= t
在哪里,回忆,
PolyVal(A,X)= A(1)* x ^(k-1)+ a(2)* x ^(k-2)+ ... + a(k)* x ^ 0。
对于上图中的PP,休息(1)
是0,和Coefs(1,:)
是[-1/2 0 0],而休息(3)
是4,和Coefs(3,:)
是[0 1 -1]。为了T.
不是[休息(1)..中断(L + 1)]
那pp(t)
通过延伸第一或上一多项式件来定义。
PP通常通过插值或近似的过程构建。但是,使用命令也可以从划痕中取出ppformPPMAK.
。例如,可以获得上述PP为
断裂= [0 1 4 6];cofs = [1/2 0 0 -1 / 2 1 1 1/2 0 1 -1];fn = ppmak(休息,cofs)
FN =带有字段的结构:形式:'PP'中断:[0 1 4 6] COEFS:[3x3双]碎片:3级:3次:1
这回报率FN.
,在所谓的PPFFOR中完整描述该PP功能。
曲线拟合工具箱中的各种命令可以在此表单上运行。其余部分显示了一些示例。
要评估PP,请使用fnval.
命令。
fnval(fn,-1:7)
ANS =列1到7 0.5000 0 0.5000 1.0000 0.5000 -1.0000 0列8到9 1.0000 2.0000
要区分PP,请使用f
命令。
dfn = fnder(fn);抓住在fnplt(dfn,'跳跃'那'是',3)持有离开h1 = findobj(gca,'颜色'那'是');传奇(H1,{'第一个衍生'},'地点'那'SW')
请注意,示例PP的导数在1处是连续的,但在4中不连续。还请注意,默认情况下,fnplt.
绘制一个ppform基本间隔,即,在间隔内[休息(1)..休息(结束)]
。
你也可以使用f
采取PP的第二个衍生物。
ddfn = fnder(fn,2);抓住在fnplt(ddfn,'j'那'K',1.6)持有离开h2 = findobj(gca,'颜色'那'K');传奇([H1 H2],{'第一个衍生''第二个衍生物'},'地点'那'SW')
第二衍生物是分段常数。
注意差异化通过f
为每个多项式件分开完成。例如,尽管第一个衍生物在4上具有跳跃不连续性,但是第二衍生物在那里不是无限的。当我们整合第二衍生物时,这会产生后果。
要集成PP,请使用Fnint.
命令。
iddfn = fnint(ddfn);抓住在fnplt(iddfn,'B',.5)持有离开h3 = findobj(gca,'颜色'那'B'那'行宽',.5);传奇([H1 H2 H3],{'第一个衍生''第二个衍生物'......“第二衍生物的积分”},'地点'那'SW')
注意,除了任何PP功能的整体是连续的,除了跳过的跳跃之外,第二导数的集成确实恢复了第一导数,除了不能恢复的4。
您可以借助命令获取零件FNBRK.
。例如
breaks = fnbrk(fn,'休息')
休息= 0 1 4 6
恢复pp的断裂序列FN.
, 尽管
转换器2 = fnbrk(fn,2);
如该曲线证实,恢复第二多项式件。
fnplt(pp,[断裂(1)-1 break(2)],'G',1.8)持有在fnplt(ode2,'B',2.5,断裂([2 3])+ [ - 1 .5])Fnplt(pp,[断裂(3),断裂(4)+1],'M',1.8)绘图(XB(:),YB(:),'r') 标题('提供第二多项式件的多项式') 抓住离开轴([ - 1 7 -2.5 2.3])
PP也可以是矢量值,以描述曲线,在2空间或3空间中。在这种情况下,每个局部多项式系数是向量而不是数字,但没有其他关于PPFFOM的变化。有一个额外的ppform部分以记录这个,方面它的目标。
例如,这里是描述单位广场的2矢量值PP,因为其绘图显示。它是一个2D曲线,因此其尺寸为2。
方形= PPMAK(0:4,[1 0 0 1 -1 1 0 0; 0 0 1 0 0 1 -1 1]);fnplt(方形,'r',2)轴([ - 。5 1.5 -.5 1.5])轴平等的标题('描述广场的矢量值PP')
曲线配件工具箱中的PP也可以多变量,即单变量PP功能的张量产品。这种多变量PP的PPFFOR仅稍微复杂,有休息
现在,包含每个变量的中断序列的单元格数组,以及COEFS.
现在是一个多维数组。从头开始弥补非随机这样的功能更难,因此我们不会尝试在此处,特别是由于工具箱意图帮助从关于它们的某些条件构建PP功能。例如,该图中的球体是借助于csape.
。
x = 0:4;y = -2:2;S2 = 1 / SQRT(2);v =零(3,7,5);v(3,:,:) = [0 1 S2 0 -S2 -1 0]。'* [1 1 1 1 1];v(2,:,:) = [1 0 S2 1 S2 0 -1]。'* [0 1 0 -1 0];v(1,:,:) = [1 0 S2 1 S2 0 -1]。'* [1 0 -1 0 1];sph = csape({x,y},v,{'夹紧'那'定期'});Fnplt(SPH)轴平等的轴离开标题('由双方3-载值valued样条描述的球体')
虽然样条的ppffl是有效的评估, 这建造来自某些数据的样条曲通常通过首先确定其更有效地处理B形式,即其表示作为B样条的线性组合。有关更多信息,请参阅用B形式构建和工作。