大家好
我正在尝试对下面在 MATLAB 中给出的数据进行分段三次 Hermite 插值,然后我想得到带有 x 轴的多项式所覆盖的区域。我想,我误解了 pchip 命令返回的系数的含义,但不确定。有谁知道可能是什么问题?
x = [5.8808 6.5137 7.1828 7.8953];
y = [31.2472 33.9977 36.7661 39.3567];
pp = pchip(x,y)
如果我看到看到 pp,它会给 pp 作为
form: 'pp'
breaks: [5.8808 6.5137 7.1828 7.8953]
coefs: [3x4 double]
pieces: 3
order: 4
dim: 1
和 pp.coefs 是
-0.0112 -0.1529 4.4472 31.2472
-0.3613 0.0884 4.2401 33.9977
-0.0422 -0.3028 3.8731 36.7661
我认为这些是代表三个区间的多项式
[5.8808:6.5137],
[6.5137:7.1828],
[7.1828:7.8953]
但是当我使用这些多项式找到与 x 值相对应的 y 值时,它会给出错误的值。
它为第二个多项式给出负 y 值。甚至第三多项式似乎也不满足这些点。
我使用这些命令来获取值
例如:-(对于第二个多项式)
xs = linspace(6.5137, 7.1828, 200);
y = polyval(pp.coefs(2,:),xs);
plot(xs,y)
我想找到该图所覆盖的曲线下的区域,这就是我试图找到多项式的原因。有没有其他方法可以做到这一点,或者如果有人可以在我使用的命令中找到问题,请告诉我。
谢谢
波米克·卢特拉