【发布时间】:2014-12-01 19:00:20
【问题描述】:
例如,我有形成抛物线曲线 y=x^2 的数据,我想读取给定 y 值的 x 值。如何在 MATLAB 中执行此操作?
如果它是一条直线,我可以使用最佳拟合线的方程轻松计算,但是我不能用曲线来做到这一点。如果我找不到解决方案,我会解决根源
提前致谢。
【问题讨论】:
-
那么为什么你不能对抛物线做同样的事情呢?无论如何,您的数据形成了一条抛物线曲线,因此非常适合....?
例如,我有形成抛物线曲线 y=x^2 的数据,我想读取给定 y 值的 x 值。如何在 MATLAB 中执行此操作?
如果它是一条直线,我可以使用最佳拟合线的方程轻松计算,但是我不能用曲线来做到这一点。如果我找不到解决方案,我会解决根源
提前致谢。
【问题讨论】:
如果所有数据都是数组(不是解析表达式),我通常会这样做以找到最小的绝对误差
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)
【讨论】:
假设您的两条曲线只是两个数据向量,我建议您使用来自 File Exchange 的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。
【讨论】: