文档

fnrfn

形式精细划分

语法

g = fnrfn (f, addpts)

描述

g = fnrfn (f, addpts)描述与does相同的函数f,但使用了更多的术语。当需要两个或两个以上不同形式的函数的和时,或者当需要增加形式中的自由度以使精细的局部变化成为可能时,这是有用的。准确的动作取决于形式f

如果表单在f是b表单还是BBform,那么addpts被插入现有结点序列中,受以下约束:无结点的多重性超过样条的阶数。用这种改进的结序列对函数给出等价的b形式f返回。

如果表单在f是一个ppform,那么条目呢addpts插入到现有的断续序列中,但有以下限制:断续序列严格递增。中函数的等价的ppform加上这个改进的中断序列f返回。

fnrfn不适用于stform中的函数。

如果函数在fm-variate,那么addpts必须是单元格数组,{addpts1,…, addptsm},并对每个变量进行细化。如果单元格数组中的第一个项为空,则数组中的结或断序列第Th变量不变。

例子

在b形式中构建一条样条,绘制它,然后应用两个中点细化,并绘制结果细化样条的控制多边形,希望它非常接近样条本身:

k = 4;sp = spapi (k,[1 1:10 10],[因为(1),罪(1:10),因为(10)));Fnplt (sp), hold on sp3 = fnrfn(fnrfn(sp));Plot (aveknt(fnbrk(sp3,'knots'),k), fnbrk(sp3,'coefs'), 'r') hold off
如果再改进一下,这两条曲线就无法区分了。

使用fnrfn添加两个相同顺序的b样条:

B1 = spmak ([0:4], 1);B2 = spmak ([2:6], 1);B1r = fnrfn (B1, fnbrk (B2, '节'));B2r = fnrfn (B2, fnbrk (B1, '节'));B1pB2 = spmak (fnbrk (B1r '节'),fnbrk (B1r,“c”)+ fnbrk (B2r ' c '));fnplt(B1,'r'),hold on, fnplt(B2,'b'), fnplt(B1pB2,'y',2) hold off

算法

标准的结插入算法用于计算精细结点序列的b型系数,而霍纳方法用于计算精细结点序列中附加断口处的局部多项式系数。

另请参阅

||

这个话题有用吗?