首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >计算曲线间距离

计算曲线间距离
EN

Stack Overflow用户
提问于 2013-03-03 15:00:57
回答 2查看 10.1K关注 0票数 1

我需要计算到曲线之间的距离。

这些都是一般的曲线,可能不是函数--也就是说,x的一些值可以映射到多个值。

编辑

  • 这些曲线给出了X,Y对的列表,逻辑曲线是以给定的顺序穿过所有点的线。一个典型的数据集将包含大约1000个点。
  • 如前所述,曲线可能不是函数,但通常类似于函数。

这个问题是如何防止使用interp1或曲线拟合工具箱的(在Matlab中)

距离测量--我在考虑曲线之间区域的面积--但是任何合理的选择都可以。

编辑曲线的示例说明,以及我想要计算的面积

首选Matlab解决方案,但其他语言也不错。

EN

回答 2

Stack Overflow用户

发布于 2013-03-03 15:19:38

如果您有类型为y = f(x)的函数,并且它们是在同一个域上定义的,那么查找“距离”的一个常见方法是使用L2规范,如这里所解释的norm#p-norm。这只是函数平方差的绝对值的积分。如果你有参数曲线,那么你就不能直接采用这种方法。如果L2规范不足以满足您的需求,那么您将需要对“距离”的含义提供一个更具体的定义。如果你不清楚你需要什么,试着看看不同类型的数学规范,看看是否有任何常用的规范是你所需要的(即L1规范,统一规范)。上面的wikepedia链接是一个很好的起点。如果L2足够好,那么你需要一种方法来计算你所拥有的积分--有很多数值集成技术,我建议谷歌是你的朋友(或者一本好的数值分析教材)。

如果你有参数型曲线,那么这是非常重要的。使用曲线之间的“区域”不是一个好主意,因为没有明确的方法来定义这个区域,而且在一般情况下,你可能会有一个自交曲线,这会变得更加复杂。如果你的曲线是以同样的方式被参数化的,你可以尝试一些非常粗糙的测量,你可以在参数范围内的等距值上计算每条曲线上的点,然后计算每条曲线之间的距离的长度,和,并把平均值作为“接近”的概念。也就是说,将您的参数范围划分为一个集合{u_0,.,u_n},并为每个i计算curve1(u_i)和curve2(u_i),以生成一组n配对点。然后把每对点之间的欧几里德距离和起来。

这是非常粗糙的,虽然,如果参数化是不同的,那么它将不会有多大的用处。

票数 2
EN

Stack Overflow用户

发布于 2013-03-03 15:08:33

你需要定义曲线之间的距离是什么意思。如果它是两个一般曲线之间最接近的方法,那么解决这个问题就变得相当困难。

如果“曲线”甚至不能表示为x的单值函数,那么它就变得更加复杂。

仅仅告诉我们你需要定义“某种距离”,这是一种过于宽泛的表述,不可能成为这里的主题,它说你还没有想出你想要解决的问题。

如果你愿意告诉我们的是,这些曲线是两个完全一般的参数曲线,它们可能是封闭的,或者它们甚至不存在于同一区域,那么这个问题就变得完全不合适,以至于不可能回答。在这种情况下,两条曲线之间的面积是多少?

如果曲线是在相同的支撑下定义的,那么减去它们,差的绝对值或平方的积分就足够了。但你已经告诉我们,这些“曲线”可能是多值的。在这种情况下,基本上是不可能做你的要求。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15186984

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档