计算直线和插值之间的交点

时间:2016-01-21 17:44:03

标签: python

我想计算直线和插值函数之间的交点。我可以绘制插值以及图中的线:

@Html.ActionLink("Register", "ActionName", "ControllerName")

Figure

但是,我没有找到计算红色功能和绿线之间的交叉点的方法。找到两者之间的交叉点的常用方法是什么?

2 个答案:

答案 0 :(得分:2)

interp1d在您的数据点之间进行样条插值。 据我所知,scipy中没有方法为你提供了这个插值的所有根域,但是因为它的样条插值可以解决这个问题。

您可以执行以下操作。

  1. 使用splev和friends重建每个子域上的样条多项式,因此您有样条系数==>多项式系数。
  2. 使用每个子域上的多项式,您可以将问题重新表述为每个子域上的多项式二阶(或者您选择插值的顺序)的交集,并使用标准的根查找器(或使用分析解决方案)。
  3. 检查根是否在子域内。如果是的话,你找到了一个交叉点。
  4. 因此,对于低样条顺序,这应该是直截了当的。

答案 1 :(得分:1)

谢谢你的回答!我将来会使用该解决方案。 最后我解决了它寻找接近插值线的值:

index=[]
for pos in range(0,len(new_x_array)-1):
    if (mediana > f(new_x_array[pos])) & (mediana < f(new_x_array[pos+1])):
        index.append(new_x_array[pos])
    if (mediana < f(new_x_array[pos])) & (mediana > f(new_x_array[pos+1])):
        index.append(new_x_array[pos])

索引数组的位置靠近该行。