【问题标题】:Matlab : Intersect point of curvesMatlab:曲线的交点
【发布时间】:2014-12-01 19:00:20
【问题描述】:

例如,我有形成抛物线曲线 y=x^2 的数据,我想读取给定 y 值的 x 值。如何在 MATLAB 中执行此操作?

如果它是一条直线,我可以使用最佳拟合线的方程轻松计算,但是我不能用曲线来做到这一点。如果我找不到解决方案,我会解决根源

提前致谢。

【问题讨论】:

  • 那么为什么你不能对抛物线做同样的事情呢?无论如何,您的数据形成了一条抛物线曲线,因此非常适合....?

标签: matlab curve intersect


【解决方案1】:

如果所有数据都是数组(不是解析表达式),我通常会这样做以找到最小的绝对误差

x=some_array;
[~,ind]=min(abs(x.^2-y0))

这里y0是一个给定的y值

如果你的数据用函数表示,可以使用fsolve

function y = myfun(x)
    y=x^2-y0

[x,fval] = fsolve(@myfun,x0,options)

对于符号计算,可以使用solve

syms x
solve(x^2 - y0)

【讨论】:

    【解决方案2】:

    假设您的两条曲线只是两个数据向量,我建议您使用来自 File Exchange 的Fast and Robust Curve Intersections。另请参阅这两个类似的问题:how to find intersection points when lines are created from an arrayFinding where plots may cross with octave / matlab

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-01-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多