【问题标题】:Matlab: Getting the Coefficients of Piecewise Cubic Hermite Interpolating PolynomialMatlab:获得分段三次 Hermite 插值多项式的系数
【发布时间】:2017-09-10 14:28:13
【问题描述】:

我想为一些数据拟合曲线。我使用 PCHIP 插值是因为得到了最好的结果。此外,我想用ppval-function 获得 6 个区间的系数。但是会弹出这样的错误:

Error using unmkpp (line 18)
The input array does not seem to describe a pp function.

Error in ppval (line 62)
[b,c,l,k,dd]=unmkpp(pp);

Error in SA (line 8)
v = ppval(p,xdata)

这是我的代码:

clear all
xdata = [0; 3.5; 6.8; 7.6; 8.2; 30; 34.2];
ydata = [0; 50; 400000; 2000000; 25000000; 100000000;100000000]
xq1 = 0:0.01:35;

p = pchip(xdata,ydata, xq1);
s = spline(xdata,ydata,xq1);
v = ppval(p,xdata)
plot(xdata,ydata,'o',xq1,p,'-',xq1,s,'-.');
legend('Datenpunkte','pchip','spline','Location','SouthEast');

你能帮帮我吗?

最好的问候 多米尼克

【问题讨论】:

    标签: matlab curve-fitting coefficients


    【解决方案1】:

    pchip有两种工作模式:

    • 计算分段多项式系数:pp = pchip(x,y)

      返回用于ppval的分段多项式结构

    • 在指定点插值:p = pchip(x,y,xq):

      p = ppval(pchip(x,y),xq)相同

      返回与查询对应的插值向量 p xq中的点

    所以,您使用的是第二种模式,不适合与ppval 一起使用。

    【讨论】:

      猜你喜欢
      • 2013-06-13
      • 1970-01-01
      • 2016-08-07
      • 2020-01-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-03-09
      • 1970-01-01
      相关资源
      最近更新 更多