首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python中数据点曲线的弧长

Python中数据点曲线的弧长
EN

Stack Overflow用户
提问于 2022-05-26 05:02:03
回答 1查看 641关注 0票数 0

我正在进行机器人模拟,并试图计算机器人沿着计划的轨道距离目标的距离。轨迹曲线是为了避免障碍物,它是由一个坐标列表给出的。要找到进展,我需要找到从当前位置到目标的弧长。我熟悉函数的弧长方程:

我计划使用的方法是用NumPy的polynomial.polyfit从数据点创建轨迹函数的多项式近似,然后找到它的导数,乘以1,取平方根,最后积分。然而,多项式的平方根并不总是存在的,所以这种方法并不总是有效的。

有什么更好的方法来解决这个问题吗?我对数值积分很熟悉,但不确定它是否/如何应用于这个问题。

编辑:弄清楚了如何在数字上做到这一点,这样做要快得多。使用numpy.grade/numpy.diff计算数值导数,将该导数中的每个元素插入sqrt(1 + (dy/dx)^2),然后使用numpy.trapz/sciy.Integrate.simson计算积分。

EN

回答 1

Stack Overflow用户

发布于 2022-05-26 08:26:26

你的机器人将如何从一个点移动到另一个点?

如果是一条直线,那就足够了。

np.sum(np.sqrt(np.diff(x)**2 + np.diff(y)**2))

如果没有,你应该先弄清楚你的机器人会走哪条路。有了这些方程,你就可以解析地积分,或者曲线上的取样点。对于光滑路径,大小上的误差往往是O(1/n^2),其中n是您在插值中使用的点数。

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

https://stackoverflow.com/questions/72386899

复制
相关文章

相似问题

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