Modelica立体Hermite插值

时间:2016-08-19 15:09:29

标签: modelica

我对Modelica标准库(Modelica.Fluid.Utilities.cubicHermite)中的CubicHermite函数有疑问。

我对该功能有以下输入。 输入Real x“Abscissa value”;

  input Real x1 "Lower abscissa value";
  input Real x2 "Upper abscissa value";
  input Real y1 "Lower ordinate value";
  input Real y2 "Upper ordinate value";
  input Real y1d "Lower gradient";
  input Real y2d "Upper gradient";
  output Real y "Interpolated ordinate value";

我有点困惑,如何计算y1d和y2d值?

1 个答案:

答案 0 :(得分:2)

据我所知,你问的是如何计算导数y1d(y1点的导数)和y2d(y2点的导数)。然而,简短的答案是你想要的(例如,简单的斜率:(y(i+1)-y(i))/(x(i+1)-x(i)))。只要确保你的选择适合这种情况。

虽然可能会更有帮助,但我建议您查看建筑物库here中CubicHermite功能的实施情况。

计算导数是函数调用" splineDerivatives"可以在Github上找到代码here

splineDerivatives似乎也有一个有用的例子,即考虑数据集边缘和数据集内的衍生物。

更新

我找到了一个Mathworks pdf here,它描述了他们使用立方Hermite样条和他们使用的两种方法叫做#34; pchip" (第3.4节)和" spline" (第3.5节)。