主要内容

曾经

描述

例子

fprime=曾经(fdorder返回dorder函数的-th导数f.的默认值。dorder是1。为负dorder,特别的|dorder|-第一个不定积分被返回,|消失dorder|-fold在基本区间的左端点。

输出与输入的形式相同,它们要么都是ppform,要么都是b -form,要么都是stform。

如果函数在f变量,然后dorder必须给出,必须有长度

另外:

  • 如果f是ppform形式,或b形式,其最后一个结具有足够高的多重性,那么,四舍五入误差,f而且曾经(fnint (f))都是一样的。

  • 如果f在ppform和足总函数的值在里面吗f在基本区间的左端,在舍入误差范围内,f而且fnint(曾经(f)、fa)都是一样的,除非用f具有跳跃不连续。

  • 如果f包含b形式的f,t1是它最左边的结,那么,四舍五入误差,fnint(曾经(f))包含b形式的f- - - - - -ft1).然而,它最左边的结将失去一个多重性(如果它一开始就有多重性> 1)。此外,它最右边的结将有充分的多重性,即使最右边的结为b型ff不喜欢。为了验证这一点,创建一个样条,Sp = spmak([0 0 1], 1).这条样条在其基本区间[0.。1,直线在0处为1,在1处为0。现在求它的导数:Spdi = fnint(fnder(sp)).这里的样条spdi基本区间相同,但在这个区间上,它与直线一致即在0处为0,在1处为-1。

曾经(f)曾经(f, 1)

例子

全部折叠

这个例子展示了如何计算三阶b样条的一阶和二阶导数函数。然后绘制样条曲线及其导数,并对结果进行比较。

创建结序列T1 = [0.8 2];T2 = [3 4.4 5 6];T3 = [7 7.9 9.2 10 11];Tt = [t1 t2 t3];用于绘图的辅助变量和命令Cl = [‘g’“r”“b”“k”“k”];V = 5.4;D1 = 2.5;D2 = 0;S1 = 1;S2 = .5;Ext = tt([1 end])+[-。5。5);Plot (ext([1,2]),[v v],cl(5))保持情节(ext ([1 - 2]), (d1 d1), cl(5)情节(ext ([1 - 2]), (d2 d2), cl (5) ts = (tt、tt、南(大小(tt))];ty = repmat(2*[-1;0;NaN],size(tt));情节(ts(:),泰(:)+ v, cl(5)情节(ts(:),泰(:)+ d1, cl(5)情节(ts(:),泰(:)+ d2, cl (5))样条1(线性)B1 = spmak(t1,1);P1 = [t1;0 1 0];计算样条1的一阶导数和二阶导数Db1 = fnder(b1);P11 = fnplt(db1,“j”);P12 = fnplt(fnder(db1));Lw = 2;情节(p1 (1:), p1 (2:) + v, cl (2),“线宽”、lw)情节(赛(1:),s1 *赛(2:)+ d1, cl (2),“线宽”、lw)情节(p12 (1:), s2 * p12 (2:) + d2, cl (2),“线宽”lw)样条2(二次型)B1 = spmak(t2,1);P1 = fnplt(b1);计算样条2的一阶导数和二阶导数Db1 = fnder(b1);P11 = [t2;fnval(db1,t2)];P12 = fnplt(fnd (db1)),“j”);情节(p1 (1:), p1 (2:) + v, cl (3),“线宽”、lw)情节(赛(1:),s1 *赛(2:)+ d1, cl (3),“线宽”、lw)情节(p12 (1:), s2 * p12 (2:) + d2, cl (3),“线宽”lw)%样条3(立方)B1 = spmak(t3,1);P1 = fnplt(b1);计算样条3的一阶导数和二阶导数Db1 = fnder(b1);P11 = fnplt(db1);p12 = [t3; fnval(曾经(db1), t3)];情节(p1 (1:), p1 (2:) + v, cl (4),“线宽”、lw)情节(赛(1:),s1 *赛(2:)+ d1, cl (4),“线宽”、lw)情节(p12 (1:), s2 * p12 (2:) + d2, cl (4),“线宽”lw)%格式化绘图Tey = v+1.5;文本(t1(2)闲置,他们,“线性”“字形大小”12“颜色”cl(2)文本(t2(2)。8,他们,“二次”“字形大小”12“颜色”cl(3))文本(t3(3)闲置,他们,“立方”“字形大小”12“颜色”cl(4))文本(2 v“B”“字形大小”12)文本(d1,“数据库”“字形大小”12)文本(d2,“D ^ 2 b”([-1 12 -2 7.5]) title({带有简单结及其导数的b样条曲线})轴持有

输入参数

全部折叠

ppform, B-form或stform中的样条,指定为具有以下字段的结构:

样条的形式,返回为B -,或tp00表示样条以分段多项式形式给出,B -表示样条以b形式给出,且tp00指示样条以stform形式给出。

样条的结位置,作为向量或作为多元数据的向量单元格数组返回。向量包含严格递增的元素,这些元素表示定义多项式片段的每个区间的开始和结束。

每个部分的多项式系数,作为矩阵或多元数据的数组返回。

描述样条的多项式片段数,作为标量或多元数据中每个变量片段数的向量返回。

描述样条的每个多项式片段的多项式函数的阶数,作为一个标量或一个包含多元数据中每个变量的阶数的向量返回。

目标函数的维度,作为标量返回。

函数导数的阶f,指定为多变量函数的标量或向量。

数据类型:|

输出参数

全部折叠

的导数函数f在ppform, B-form或stform中的样条,作为具有以下字段的结构返回:

样条的形式,返回为B -,或tp00.导数函数的形式和f函数。表示样条以分段多项式形式给出,B -表示样条以b形式给出,且tp00指示样条以stform形式给出。

样条的结位置,作为向量或作为多元数据的向量单元格数组返回。向量包含严格递增的元素,这些元素表示定义多项式片段的每个区间的开始和结束。

每个部分的多项式系数,作为矩阵或多元数据的数组返回。

描述样条的多项式片段数,作为标量或多元数据中每个变量片段数的向量返回。

描述样条的每个多项式片段的多项式函数的阶数,作为一个标量或一个包含多元数据中每个变量的阶数的向量返回。

目标函数的维度,作为标量返回。

限制

  • 曾经函数不适用于有理样条。要处理有理样条,请使用fntlr函数来代替。

  • 曾经函数仅以有限的方式对stforms起作用:如果类型为tp00,然后dorder可以(1,0)[0, 1]

算法

对于任一多项式形式的微分,曾经函数在分段多项式意义下求导。该函数对每个多项式分段分别求导,在求导过程中忽略多项式分段之间的跳跃不连续。

对于b形式,函数使用[动力;(X.10)]的微分公式。

对于形式,微分依赖于知道特定类型基函数的相关导数的公式。

版本历史

R2006a之前介绍过

另请参阅

|||