主要内容

makima

修改Akima分段立方埃尔米特插值

描述

例子

yq= makima (x,y,xq)执行修改Akima插值使用的值y在采样点x找到插入值yq查询点xq

例子

= makima (x,y)返回一个分段多项式结构使用ppval和样条实用程序unmkpp

例子

全部折叠

使用makima插入一个余弦曲线在不均匀间隔的采样点。

x = 1 8.1 2.5 3.6 - 5 7 10 [0];y = cos (x);xq = 0: .25:10;yq = makima (x, y, xq);情节(x, y,“o”xq yq,“——”)

图包含一个坐标轴对象。坐标轴对象包含2线类型的对象。

与Akima振荡函数算法局部极值附近曲线趋于平缓。为了弥补这个压扁,您可以添加更多的采样点附近的局部极值。

增加采样点附近 x = 6 5 x = 9 和改建插值。

x = [0 1 8.1 2.5 6.5 3.6 - 5 7 9 10];y = cos (x);xq = 0: .25:10;yq = makima (x, y, xq);情节(x, y,“o”xq yq,“——”)

图包含一个坐标轴对象。坐标轴对象包含2线类型的对象。

产生的插值结果进行比较样条,pchip,makima为两个不同的数据集。这些函数都执行不同形式的分段三次埃尔米特插值。每个函数在如何计算不同的斜坡interpolant,导致不同的行为当底层数据平地或起伏不定。

比较样本数据插值结果连接平坦的地区。创建向量x值,在这些点函数值y和查询点xq。计算查询点插入使用样条,pchip,makima。图查询点的插值函数值的比较。

x =三3;y = (1 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,“o”xq1, p,“- - -”xq1年代,“-”。xq1, m,“——”)传说(采样点的,“pchip”,样条的,“makima”,“位置”,“东南”)

图包含一个坐标轴对象。坐标轴对象包含4线类型的对象。这些对象表示样本点,pchip,花键,makima。

在这种情况下,pchipmakima有类似的行为,避免过激的,能够准确地连接平坦的地区。

使用一个振荡样本函数执行第二个比较。

x = 0:15;y = besselj (1, x);xq2 = 0:0.01:15;p = pchip (x, y, xq2);s =花键(x, y, xq2);m = makima (x, y, xq2);情节(x, y,“o”xq2, p,“- - -”xq2年代,“-”。xq2, m,“——”)传说(采样点的,“pchip”,样条的,“makima”)

图包含一个坐标轴对象。坐标轴对象包含4线类型的对象。这些对象表示样本点,pchip,花键,makima。

当底层函数振荡,样条makima捕捉点比之间的运动pchip,这是积极的局部极值附近被夷为平地。

为采样点创建向量x在这些点和价值观y。使用makima构建一个分段多项式结构数据。

x = 5;y = [1 1 1 0 0 1 1 2 2 2 2];页= makima (x, y)
页=结构体字段:形式:“pp”优惠:[5 4 3 2 1 0 1 2 3 4 5]系数:[10 x4双]部分:10:4昏暗的:1

订单的结构包含10多项式的信息4跨数据。pp.coefs(我,:)包含有效的多项式的系数定义的区域断点((我)(i + 1)休息)

使用结构ppval评价插值在几个查询点,然后画出结果。三个或三个以上常数分地区,Akima算法与一条直线连接的点。

xq = 5:0.2:5;m = ppval (pp、xq);情节(x, y,“o”xq, m,“-”。)ylim ([-0.2 - 2.2])

图包含一个坐标轴对象。坐标轴对象包含2线类型的对象。

输入参数

全部折叠

采样点,指定为一个向量。向量x指定的点数据y是给定的。的元素x必须是唯一的。

数据类型:|

在采样点函数值,指定为一个数值向量,矩阵,或数组。xy必须具有相同的长度。

如果y是一个矩阵或数组,那么在过去的维度的值,y (::,…, j)作为匹配的值x。在这种情况下,最后一个尺寸y必须是相同的长度吗x

数据类型:|

查询点,指定为一个标量,矢量、矩阵,或数组。中指定的点xqx坐标插值函数值yq计算makima

数据类型:|

输出参数

全部折叠

插值在查询点,作为一个标量,返回向量,矩阵,或数组。的大小yq的大小有关吗yxq:

  • 如果y是一个矢量,然后呢yq一样的尺寸吗xq

  • 如果y是一个数组的尺寸吗纽约=大小(y),那么这些条件应用:

    • 如果xq是一个标量或矢量,然后呢大小(yq)返回纽约(1:end-1)长度(xq)]

    • 如果xq是一个数组,然后呢大小(yq)返回纽约(1:end-1)大小(xq)]

分段多项式,作为一个结构返回。使用这种结构ppval函数来评估在一个或多个查询点插值多项式。这些字段的结构。

描述
形式

“页”分段多项式

休息时间

向量的长度L + 1随着严格增加元素代表的开始和结束l时间间隔

系数

l——- - - - - -k矩阵的每一行系数(我,:)包含订单的当地系数k多项式的th间隔,[休息(我),优惠(i + 1)

数量的碎片,l

订单

多项式的阶

昏暗的

维度的目标

由于多项式系数系数是当地的系数为每个区间,必须减去相应的结间隔下端点使用传统的多项式方程的系数。换句话说,系数(a, b, c, d)的时间间隔(x1, x2),相应的多项式

f ( x ) = 一个 ( x x 1 ) 3 + b ( x x 1 ) 2 + c ( x x 1 ) + d

更多关于

全部折叠

修改Akima插值

Akima算法一维插值中描述[1][2]与连续生产,执行三次插值多项式分段一阶衍生品(C1)。该算法避免了过度的局部波动。

如果 δ = v + 1 v x + 1 x 斜率是间隔吗 ( x x + 1 ) ,然后导数的值 d 在样本点 x 是附近的山坡上的加权平均:

d = w 1 w 1 + w 2 δ 1 + w 2 w 1 + w 2 δ

Akima原始公式的权重:

w 1 = | δ + 1 δ | , w 2 = | δ 1 δ 2 |

原Akima算法给双方点,同等重量均匀划分一个波动。

当两个平面区域不同的斜坡上相遇时,修改了原Akima算法给出了更重的一边斜率接近零。这一修改为主到接近水平的一面,更直观,避免过度。特别是,当有三个或更多的连续共线点,该算法将它们与一条直线,从而避免过度。

修改Akima算法中使用的重量是:

w 1 = | δ + 1 δ | + | δ + 1 + δ | 2 , w 2 = | δ 1 δ 2 | + | δ 1 + δ 2 | 2

相比样条算法,Akima算法产生更少的起伏和更适合应对快速变化平坦地区之间。相比pchip算法,Akima算法没有积极地夷为平地,因此仍然能够处理振动数据。

引用

[1]Akima,藤原浩。“一个新的插值和平滑的曲线拟合的方法基于本地程序。”杂志的ACM (JACM),17.4,1970年,页589 - 602。

[2]Akima,藤原浩。“二元插值的方法和基于局部表面光滑拟合程序。”ACM的通信17.1,1974年,页18 - 20。

扩展功能

版本历史

介绍了R2019b