曲线拟合具有给定斜率的三个点

时间:2017-11-16 15:55:31

标签: matlab math

这可能是数学问题而不是Matlab。尽管如此,这是我的问题。

enter image description here

所以,我有一个由绿色曲线表示的数据集。它通常是线性的,但有时它可能会有轻微的曲率。然后,我还有两点:红色和蓝色。红色远远不够。它的幅度比绿色圆圈的X值大30~100,并且它总是在X轴上。蓝色圆圈始终位于Y轴上。

我需要一条适合红色,蓝色和绿色圆圈的曲线,但还有两个限制:

  1. 蓝色曲线不能为负
  2. 蓝色曲线与绿色曲线相交,我希望它们的斜率相同(平滑过渡)
  3. 红点不必在Y轴上,但渐近于零,在红色圆圈处非常接近于零。

    我尝试了不同的反函数,如指数,多项式,1 /等等,但没有斜率约束,最终结果往往在绿点处有一个尖点,这会导致整体分析出现问题其中使用了这种曲线拟合函数。

    可以这样做吗?

2 个答案:

答案 0 :(得分:0)

如果您只需要大致匹配斜率并且可以访问绿色曲线的数据点(而不仅仅是绿色点),则可以在拟合函数中使用绿色曲线的多个点以及蓝色和红点。这应该产生一条穿过所有点的曲线,并且几乎与绿点的斜率相匹配。

显然,如果你需要用数学精度匹配斜率,你需要设置另一个约束方程,就像duffymo建议的那样。

答案 1 :(得分:0)

我正在接受

的回答

https://math.stackexchange.com/questions/2523269/three-point-curve-fit-with-a-specificed-slope-at-one-point][1]

这使用了它通过三个点的事实,并且在一个点上,它的斜率是已知的。通过四个方程和一般的无理/指数函数,我能够创建一个合理的曲线拟合。