| MATLAB Function Reference | ![]() |
Syntax
yi = pchip(x,y,xi) pp = pchip(x,y)
Description
yi = pchip(x,y,xi)
會傳回一個向量 yi ,其包含了對應至 xi 的元素(藉由對向量 x 與 y作分段的三次內插法)。若 y 是一個矩陣,則會以 y 的每一行來作內插再傳回一個向量值,且 yi 為 length(xi)-by-size(y,2)。
pp = pchip(x,y)
會傳回一個分段的多項式結構可供 ppval 使用。 x 可以是一個列或行向量。 y 可以是一個列或行向量(長度與 x 相同,或是一個具有 length(x) 行的矩陣)。
在每個子區間內都是不同的三次式,
。
就是內插資料的值,即
。
為連續的。
為分段線性的。
可能不是連續的,有可能在
點不連續。
保留了資料的型態與單調性(monotonicity)。
也是單調的。
也同樣具有極值。spline 較為平滑,即
是連續性的。spline 會較為準確。pchip 不會有過界的情形以及會有較少的震盪。pchip 較容易去設定。Examples
x = -3:3;
y = [-1 -1 -1 0 1 1 1];
t = -3:.01:3;
p = pchip(x,y,t);
s = spline(x,y,t);
plot(x,y,'o',t,p,'-',t,s,'-.')
legend({'data','pchip','spline'})
See Also
References
[1] Fritsch, F. N. and R. E. Carlson, "Monotone Piecewise Cubic Interpolation," SIAM J. Numerical Analysis, Vol. 17, 1980, pp.238-246.
[2] Kahaner, David, Cleve Moler, Stephen Nash, Numerical Methods and Software, Prentice Hall, 1988.
| pcg | pcode | ![]() |