【问题标题】:How to fit a parabola to data in MATLAB by giving the center point?如何通过给出中心点将抛物线拟合到 MATLAB 中的数据?
【发布时间】:2015-05-19 08:23:41
【问题描述】:

我有一组数据,在绘制 x 与 y 时,将给出figure 中的绘图。我想为这些数据拟合抛物线,我尝试在 MATLAB 中使用曲线拟合工具。唯一的问题是我得到了here 所示的答案。我知道抛物线的中心或峰值应该在什么坐标。但是当我使用自定义方程选项时,我得到错误“这个表达式没有系数或非标量系数”。我是新来的。有没有办法指定中心并正确拟合?中心点是 (352,595)。谢谢。

【问题讨论】:

  • 但这不是抛物线!好吧,它只是以x=a*y^2+b 的方式,而不是标准的!尝试交换您的 X/Y 坐标
  • 这确实有效,谢谢!但是我无法在这里安装抛物线?通过指定中心,就像在问题中一样?

标签: matlab curve-fitting best-fit-curve


【解决方案1】:

你用黑色手绘的东西不是抛物线。它不遵循y=a*x^2+b 等式,因此您无法适应它。它实际上遵循 y=±sqrt(a*x)+b 。我不确定你是否可以为这个方程拟合一个函数(实际上它们是 2 个方程)。

按照 cmets 中的建议,您可以做的是交换 X/Y 坐标并以这种方式拟合数据。然后,您可以对结果抛物线进行数值插值并再次交换坐标以使其保持原始形式。

但是,请注意,如果您这样做,每个 X 将有 2 个解决方案,而其中很多也没有解决方案。

【讨论】:

  • 我正在关注的论文给出了要在此处制定的抛物线方程。它的形式为 x-xcenter=a(y-ycenter)^2 。我所期待的是一条适合我的数据图的 C 形抛物线。但如果不指定 xcenter 和 ycenter 值,它就不会发生。交换轴确实有效,但如果我不必这样做会更好。
  • @SuryaRajan 如果交换轴,则可以拟合抛物线,因为方程是 x-xcenter=a(y-ycenter)^2 y-ycenter=±sqrt(a*x-xcenter) 转换为 x-xcenter=a(y-ycenter)^2
猜你喜欢
  • 1970-01-01
  • 2018-02-20
  • 1970-01-01
  • 2011-05-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-04-30
  • 2023-03-25
相关资源
最近更新 更多