在Mathematica中找到两个ListPlot的交叉点

时间:2012-10-15 05:39:25

标签: wolfram-mathematica

我有两组离散数据,我用Mathematica中的ListPlot绘制为两种不同的颜色(红色和蓝色)。我想找到这两者之间的交点(相应的连续曲线),即如图所示的A点和B点。

enter image description here

我尝试了'FindCluster'方法并跳跃以获取数据的子集形成行,但这种方法效果不佳。

现在我总是使用'​​GetCoordinate'属性直接从图中获取数字。有办法自动更准确地做到这一点会很好。

1 个答案:

答案 0 :(得分:0)

我不确定在你的情况下这是否方便,但我有时会让Mathematica插入点列表然后解决交集:

   findGuesses[pointsTable1_, pointsTable2_] := 
     Block[{interpolatingPolyF1, interpolatingPolyF2},
      interpolatingPolyF1 = 
       Function[{x}, Evaluate[InterpolatingPolynomial[pointsTable1, x]]];
      interpolatingPolyF2 = 
       Function[{x}, Evaluate[InterpolatingPolynomial[pointsTable2, x]]];
      (*Print[Plot[{interpolatingPolyF1[x],interpolatingPolyF2[x]},{x,0,2}]];*)
      {x, y} /. 
       NSolve[{y == interpolatingPolyF1[x], 
         y == interpolatingPolyF2[x]}, {x, y}, Reals]
      ]