griddedInterpolant
的文档指出pchip
方法“至少需要4个(网格)点”。但是,当我使用2点矢量运行它时,它是这样的:
>> F = griddedInterpolant([0,1],[1,2],'pchip')
F =
griddedInterpolant with properties:
GridVectors: {[0 1]}
Values: [1 2]
Method: 'pchip'
ExtrapolationMethod: 'pchip'
请注意,该方法仍为pchip
。
这非常令人困惑。为什么不引发错误?
答案 0 :(得分:1)
我猜当前的行为是TMW的一种设计选择,它通过允许大多数用户“摆脱”某些可能会使用低阶多项式解决的边缘情况,从而为大多数用户省去了麻烦。至于文档-这可能是疏忽。
看看下面的例子:
if($shipment){
foreach($shipment as $shiptmentList){
foreach($shiptmentList as $key => $shiporder){
foreach($shiporder as $key => $itemcharge){
foreach($itemcharge as $key=> $eachcharge){
var_dump($eachcharge[0]['Amount']);
}
}
}
}
}
此程序运行正常,并产生:
...,如我们所见,它退化为线性曲线。这实际上不是问题,因为它似乎是从保形分段多项式中尊重requirements的。
的确,如果您希望它是 cubic (三次方)(即3次方),它需要4个数据点(但实际上并不是“逐段”的,因为它只有1个)。