主要内容

构建和使用b形式样条函数

建设b的形式

通常,样条是由一些信息,如函数值和/或导数值,或一些常微分方程的近似解。但也可以组成一个从头花键,通过提供其结序列及其系数序列命令spmak

例如,如果您输入

sp = spmak(1:10,三);

你提供统一的结序列1:10和系数序列。因为有10节,6系数,订单必须4(= 10 - 6),即,你会得到一个三次样条。命令

fnbrk (sp)

打印出的组成部分b形式的三次样条,如下:

节(1:n + k) 1 2 3 4 5 6 7 8 9 10系数(d, n) 3 4 5 6 7 8 k阶数n系数6 4维d目标1

此外,fnbrk可用于分别供给每一个部分。

但关键的曲线拟合工具箱™花键功能是不应该有任何需要你查找这些细节。你简单地使用sp作为命令参数评估、分化整合,转换,或者情节描述中包含的花键sp

使用b形式样条函数

以下命令可用于花键工作。有spmakfnbrk组成一个花键,再次把它分开。使用fn2fm从b形式转换到ppform。你可以评估,区分、集成、最小化,找到0,情节,提炼,或者选择性地推断花键的帮助下fnval,曾经,fndir,fnint,fnmin,fnzeros,fnplt,fnrfn,fnxtr

有五个命令生成结序列:

  • augknt提供边界结并控制室内结的多重性

  • brk2knt提供一个结序列与指定的多样性

  • aptknt提供一个结序列样条空间的秩序,适用于在给定数据插值站点

  • optknt提供一个最优结序列插值在给定网站

  • newknt结序列也许更适合函数近似

此外,还有:

  • aveknt平均值(供应某些结Greville网站)作为插值推荐网站

  • chbpnt提供这些网站

  • knt2brkknt2mlt为了获取优惠和/或他们的多样性从给定结序列

显示一个花键曲线给出二维系数序列和一个统一的结序列,使用spcrv

您也可以编写自己的样条施工命令,在这种情况下,您将需要知道以下。样条的构造通常需要满足一些插值或逼近条件搭配矩阵,即,matrix that, in each row, contains the sequence of numbersDrBj,k(τ),即,rτ的导数jb样条,j,对于一些r和一些网站τ。提供了这样一个矩阵spcol。一个可选的参数允许这个矩阵是由spcol在一个节省空间的spline-almost-block-diagonal-form或MATLAB®稀疏矩阵。它可以喂slvblk,命令与almost-block-diagonal系数矩阵求解线性系统。如果你有兴趣看看spcolslvblk使用这个工具箱,有看的命令吗spapi,spap2,spaps

此外,还有为构建例程立方样条函数。csapicsape提供三次样条在结interpolant给定数据,分别使用not-a-knot和各种条件,另一端。参数三次样条曲线提供了通过给定的点cscvn。立方平滑样条构造在csaps

例子:b形式样条逼近一个圈

作为另一个简单的例子,

点= .95 * [0 1 0 1;1 0 1 0];sp = spmak(4:8,点分);

提供了一个平面,四次,样条曲线的中间部分是一个很好的近似一个圆,情节在下一页显示。它是由后续的生成

情节(点(1:),点(2:),“x”),抓住fnplt (sp,[0, 4]),轴相等的正方形,推迟

插入额外的控制点 ( ± 0.95 , ± 0.95 ) / 1.9 将视觉完美的圆。

这里有更多的细节。的样条Σ曲线生成的形式8j= 1Bj,5一个(:,j),- - - - - -4:8统一的结序列,其控制点一个(:,j)序列α(0),(-α,0)、(0,-α),(α,0)、(0,α),(-α,0)、(0,-α),(α,0)α= 0.95。只有0和4之间的曲线部分参数值实际上是策划。

,去感受如何接近圆形的这部分曲线,计算其无符号曲率。曲率κ(t在曲线点)γ(t)= (x (t),y (t))的空间曲线γ可以计算公式

κ = | x y y x | ( x 2 + y 2 ) 3 / 2

中,x, x, y, y”曲线的一阶和二阶导数对使用的参数(t)。把平面曲线的空间曲线(x,y)平面,因此获得的最大和最小曲率在21点如下:

t = linspace (0、4、21); zt型= 0(大小(t));dsp =曾经(sp);dspt = fnval (dsp, t);ddspt = fnval(曾经(dsp), t);kappa = abs (dspt (1:)。* ddspt (2:) -dspt (2:)。* ddspt (: 1))。/…(和(dspt。^ 2))。^ (3/2);(最小(k),最大(κ)]ans = 1.6747 - 1.8611

因此,尽管曲率并不是常数,它是接近1 /半径的圆,从下一个计算:如你所见

1 /规范(fnval (sp, 0)) ans = 1.7864

一个圆样条逼近;控制点是显著的x

相关的话题