比如说我有数据形成抛物线y = x ^ 2,我想读取给定y值的x值。我如何在MATLAB中进行此操作?
如果它是直线,我可以使用最佳拟合线的方程式来轻松计算,但是我不能用曲线做这个。如果我找不到解决方案,我将解决根源
提前致谢。
答案 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 array和Finding where plots may cross with octave / matlab。