Matlab:曲线的相交点

时间:2014-12-01 10:27:46

标签: matlab curve intersect

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

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

提前致谢。

2 个答案:

答案 0 :(得分:2)

如果所有数据都是数组(不是解析表达式),我通常会发现最小的绝对错误

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)

答案 1 :(得分:1)

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