如何提取倍频程/matlab插值的公式?

如何提取倍频程/matlab插值的公式?,matlab,octave,curve-fitting,data-fitting,model-fitting,Matlab,Octave,Curve Fitting,Data Fitting,Model Fitting,因此,我有几点: ## Some points x = [1 2 3 4 5 6 ]; y = [10 15 30 45 50 55]; 我可以为它们拟合一条曲线: x1 = linspace(1,6); # piecewise cubic hermite interpolating polynomial, respects monotonicity. pchipy1 = interp1(x,y,x1,"pchip"); 并绘制曲线: plot(x1,pc

因此,我有几点:

## Some points
x = [1  2  3  4  5  6 ];
y = [10 15 30 45 50 55];
我可以为它们拟合一条曲线:

x1 = linspace(1,6);

# piecewise cubic hermite interpolating polynomial, respects monotonicity.
pchipy1 = interp1(x,y,x1,"pchip");  
并绘制曲线:

plot(x1,pchipy1);
现在人们对我说:“天哪,这是一条很好的曲线,它的公式是什么?”

我没有答案

但我认为这只是一条样条曲线,由三次曲线组成,所以至少可以得到这些曲线的公式


有人知道怎么做吗?

公式是用MATLAB编写的:

f(x)=a*(x−x1)^3+b*(x−x1)^2+c*(x−x1)+d

仅,
interp1
,不会返回拟合系数。正如@Cris Luengo提到的,在引擎盖下调用的函数是。因此,如果您想要获得系数,您需要调用
pchip
,然后创建自己的1D插值

%vq=interp1(x,y,x1,“pchip”)=>
pp=pchip(x,y);
pchipy1=ppval(pp,x1);

这个公式并不是很复杂。

公式是用MATLAB编写的:

f(x)=a*(x−x1)^3+b*(x−x1)^2+c*(x−x1)+d

仅,
interp1
,不会返回拟合系数。正如@Cris Luengo提到的,在引擎盖下调用的函数是。因此,如果您想要获得系数,您需要调用
pchip
,然后创建自己的1D插值

%vq=interp1(x,y,x1,“pchip”)=>
pp=pchip(x,y);
pchipy1=ppval(pp,x1);

这个问题没有那么详细。

谢谢@Cris,这实际上是我问题的完整答案。我想我会根据这些细节来回答这个问题。除非你愿意?谢谢@Cris,这实际上是我问题的完整答案。我想我会根据这些细节来回答这个问题。除非你愿意?谢谢,你和克里斯解决了我的问题!这似乎是一个非常有用的问题,我想我会把细节打出来,用一个例子给出完整的答案。除非你或克里斯愿意做?在这种情况下,我会接受这个答案。@JohnLawrenceAspden刚刚检查了倍频程文档。他们对基本理论没有太多的阐述。我建议您参考MATLAB文档了解这些内容。他们几乎是因为文档而获得报酬的(“因为工程师不喜欢阅读博客帖子;))““因为工程师不喜欢阅读博客帖子”,或者更确切地说,因为他们明白软件只是一样有用(因此才有价值)CrisLuengo完全同意,在这一点上,这不是一个很好的倍频程“辩护”,但我发现,在大多数此类函数的“源”代码中,通常有大量信息(如方程、推导和学术参考)。pchip也是如此。@Tasos:我应该更多地查看来源。八度音阶是由知识渊博的人制作的,我相信我们都能从他们身上学到很多东西。但文档只是程序员不擅长做的事情之一,你真的需要付钱让人们来写文档!:)(我可以这么说,因为我也不擅长写文档。)谢谢,你和克里斯解决了我的问题!这似乎是一个非常有用的问题,我想我会把细节打出来,用一个例子给出完整的答案。除非你或克里斯愿意做?在这种情况下,我会接受这个答案。@JohnLawrenceAspden刚刚检查了倍频程文档。他们对基本理论没有太多的阐述。我建议您参考MATLAB文档了解这些内容。他们几乎是因为文档而获得报酬的(“因为工程师不喜欢阅读博客帖子;))““因为工程师不喜欢阅读博客帖子”,或者更确切地说,因为他们明白软件只是一样有用(因此才有价值)CrisLuengo完全同意,在这一点上,这不是一个很好的倍频程“辩护”,但我发现,在大多数此类函数的“源”代码中,通常有大量信息(如方程、推导和学术参考)。pchip也是如此。@Tasos:我应该更多地查看来源。八度音阶是由知识渊博的人制作的,我相信我们都能从他们身上学到很多东西。但文档只是程序员不擅长做的事情之一,你真的需要付钱让人们来写文档!:)(我可以这么说,因为我也不擅长写文档。)