文档帮助中心文档
样条
pchip
makima
三次样条数据插值
s =花键(x, y, xq)
页=花键(x, y)
例子
年代=样条(x,y,xq)返回插值向量年代对应于中的查询点xq.的值年代是由三次样条插值确定的x和y.
年代=样条(x,y,xq)
年代
x
y
xq
页=样条(x,y)返回分段多项式结构,以供ppval以及样条函数unmkpp.
页=样条(x,y)
页
ppval
unmkpp
全部折叠
使用样条在不均匀间隔的采样点上插值正弦曲线。
X = [0 1 2.5 3.6 5 7 8.1 10];y = sin (x);xx = 0: .25:10;yy =花键(x, y, xx);情节(x, y,“哦”、xx和yy)
当端点斜率已知时,使用钳位或完整样条插值。为此,您可以指定值向量 y 用两个额外的元素,一个在开始,一个在结束,来定义端点的斜率。
创建一个数据向量 y 另一个向量 x -数据的坐标。
x = 4:4,Y = [0 .15 1.12 2.36 2.36 1.46 .49 .06 0];
使用插值数据样条把结果画出来。用两个额外的值指定第二个输入y [0 0]来表示端点的斜率都为零。使用ppval在插值区间内的101个点上评估样条的拟合。
y [0 0]
c =样条(x,[0 y 0]);xx = linspace (4101);情节(x, y,“哦”,xx,ppval(cs,xx),“- - -”);
通过推断数据集来预测人口增长。
创建两个向量以表示1900至1990年的人口普查年份(t)以及相应的美国百万人口(p).
t
p
t = 1900:10:1990;P = [75.995 91.972 105.711 123.203 131.669...150.697 179.323 203.212 226.505 249.633];
用三次样条推算和预测2000年的人口。
样条(t, p, 2000)
ans=270.6060
用5个数据点绘制一个圆y(:, 2),…,y (:, 6)用o标记。矩阵y比所包含的多两列x.因此,样条使用y (: 1)和y(:,结束)endslopes。圆开始和结束于点(1,0),所以这个点绘制了两次。
y(:, 2),…,y (:, 6)
y (: 1)
y(:,结束)
x =π* (0:.5:2);Y = [0 1 0 -1 0 1 0;1 0 1 0 1 0 1];页=花键(x, y);Yy = ppval(pp, linspace(0,2*pi,101));情节(yy (1:), yy (2:)“-b”y (2:5), y (2, 2:5)”或“)轴平等的
使用样条在更细的网格上采样函数。
为0到1之间的一些值生成正弦和余弦曲线。使用样条插值在一个更细的网格上采样函数。
x = 0: .25:1;Y = (sin (x);cos (x)];xx = 0: .1:1;YY =花键(x, Y, xx);情节(x, Y (1:)“哦”, xx和YY (1:)“- - -”)举行在图(x,Y(2,:),“哦”,xx,YY(2,:),“:”)举行从
比较由生成的插值结果样条,pchip,makima对于两个不同的数据集。这些函数都执行不同形式的分段三次埃尔米特插值。每个函数计算插值函数斜率的方式都不同,当底层数据有平坦区域或波动区域时,会导致不同的行为。
比较连接平坦区域的样本数据的插值结果。创建向量x这些点上的函数值y、查询点xq.使用样条,pchip,makima.在查询点绘制插值函数值以进行比较。
x =三3;Y = [-1 -1 - 0 1 1 1];xq1 = 3: .01:3;p = pchip (x, y, xq1);s =花键(x, y, xq1);m = makima (x, y, xq1);情节(x, y,“哦”xq1, p,“- - -”xq1年代,“-”。xq1, m,“——”)传说(采样点的,“pchip”,“样条曲线”,“makima”,“位置”,“东南”)
在这种情况下,pchip和makima有相似的行为,他们避免过冲,并能准确地连接平坦区域。
使用振荡样本函数进行第二次比较。
x=0:15;y=besselj(1,x);xq2=0:0.01:15;p=pchip(x,y,xq2);s=spline(x,y,xq2);m=makima(x,y,xq2);plot(x,y,“哦”xq2, p,“- - -”xq2年代,“-”。xq2, m,“——”)传说(采样点的,“pchip”,“样条曲线”,“makima”)
当基础函数是振荡的,样条和makima捕捉点之间的移动比pchip,它在局部极值附近急剧变平。
x-坐标,指定为向量。向量x指定数据所在的点y是给定的。的元素x必须是唯一的。
数据类型:单|双
单
双
函数值在x-坐标,指定为数字向量、矩阵或数组。x和y通常都是一样的长度,但是y也可以比其他元素多两个元素x指定endslopes。
如果y是一个矩阵或数组,则最后一维中的值,y(::,…,j),作为要匹配的值x.在这种情况下,最后一个维度y长度必须和x或者正好有两个元素。
y(::,…,j)
三次样条的端斜率遵循以下规则:
如果x和y为相同大小的向量,则使用非结端点条件。
如果x或y是一个标量,然后将其展开为与另一个相同的长度,并使用非结端点条件。
如果y一个向量是否包含两个以上的值x条目,那么样条中的第一个和最后一个值y作为三次样条的端点。例如,如果y是一个向量,那么:
y (2: end-1)给出中每个点的函数值x
y (2: end-1)
y (1)给出位于的间隔开始处的坡度分钟(x)
y (1)
分钟(x)
y(结束)给出区间末尾处的斜率最大值(x)
y(结束)
最大值(x)
类似地,如果y是矩阵还是N维数组大小(y, N)等于长度(x) + 2,那么:
N
大小(y, N)
长度(x) + 2
y(:,…,:,j+1)给出中每个点的函数值x为j = 1:长度(x)
y(:,…,:,j+1)
j = 1:长度(x)
y(:,:,…:,1)给出区间开始处的斜率分钟(x)
y(:,:,…:,1)
y (:,:,...:, 结束)给出区间末尾处的斜率最大值(x)
y (:,:,...:, 结束)
查询点,指定为标量、向量、矩阵或数组。在xq是吗x-坐标的插值函数值yq计算样条.
yq
查询点上的插值值,以标量、向量、矩阵或数组的形式返回。
的大小年代是否与尺寸有关y和xq:
如果y是向量吗年代有相同的尺寸xq.
如果y是一个大小的数组纽约=大小(y),则适用以下条件:
纽约=大小(y)
如果xq是标量还是向量大小(年代)返回[Ny(1:end-1)长度(xq)].
大小(年代)
[Ny(1:end-1)长度(xq)]
如果xq是一个数组吗大小(年代)返回纽约(1:end-1)大小(xq)].
纽约(1:end-1)大小(xq)]
分段多项式,作为结构返回。在the中使用这个结构ppval函数在一个或多个查询点计算分段多项式。结构有这些字段。
形式
“页”为分段多项式
“页”
休息时间
向量的长度L + 1严格递增的元素表示每个的开始和结束l时间间隔
L + 1
l
系数
l-借-k每一行的矩阵coefs(i,:)包含一个阶的局部系数k上的多项式我th间隔,[中断(i),中断(i+1)]
k
coefs(i,:)
我
[中断(i),中断(i+1)]
块
数量的碎片,l
订单
多项式的阶数
昏暗的
维度的目标
因为多项式系数系数是每个区间的局部系数,你必须减去对应的结区间的下端点才能使用传统多项式方程中的系数。换句话说,对于系数(a, b, c, d)的时间间隔(x1, x2),对应的多项式是
(a, b, c, d)
(x1, x2)
f ( x ) = 一个 ( x − x 1 ) 3. + b ( x − x 1 ) 2 + c ( x − x 1 ) + d .
也可以使用interp1使用命令执行xq interp1 (x, y,样条).而样条对输入矩阵的行执行插值,interp1对输入矩阵的列进行插值。
interp1
xq interp1 (x, y,样条)
一个三对角线线性系统(可能有几个右边)被解决所需的信息,以描述构成插值样条的各种三次多项式的系数。样条使用的功能ppval,mkpp,unmkpp.这些例程形成了一组用于处理分段多项式的函数。有关更多高级特性的访问,请参见interp1或曲线拟合工具箱™样条函数。
mkpp
[1]德布尔,卡尔。样条的实用指南斯普林格·维拉格,纽约:1978年。
使用说明和限制:
输入x必须严格递增。
代码生成不会删除y条目南值。
南
中无限端点的代码生成不会报告错误y.
如果您为页=花键(x, y)语法,则不能输入页到ppval在MATLAB函数®.创建一个MATLAB页结构从页由代码生成器创建的结构:
在代码生成中,使用unmkpp将分段多项式细节返回到MATLAB。
在MATLAB中,使用mkpp创建页结构。
如果你提供xq,如果y具有可变大小且不是可变长度的向量,那么生成的代码中输出的向量方向可能与MATLAB中的方向不匹配。
背景资料
ThreadPool
这个函数完全支持基于线程的环境。万博1manbetx有关更多信息,请参见在线程环境中运行MATLAB函数.
输入参数y必须non-sparse。
有关更多信息,请参见在GPU上运行MATLAB函数(并行计算工具箱).
interp1|pchip|makima|ppval
您有这个示例的修改版本。您想打开这个示例与您的编辑吗?
你点击一个链接对应于这个MATLAB命令:
通过在MATLAB命令窗口中输入命令来运行命令。Web浏览器不支持MATLAB命令。万博1manbetx
选择一个网站,在那里获得翻译的内容,并看到当地的活动和优惠。根据您的位置,我们建议您选择:.
你也可以从以下列表中选择一个网站:
选择中国网站(中文或英文)以获得最佳网站性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。
与当地办事处联系