关于在给定可变数据点的情况下如何找到曲线方程的理论

问题描述 投票:1回答:3

我最近开始从事一个项目。我遇到的问题之一是将不断变化的加速度转换为速度。通过传感器提供不同时间点的加速度。如果获得这些数据点的方程式,则该方程式上某个时间(x)的导数将是速度。

我知道如何在计算机上执行此操作,但是如何开始计算等式?我四处搜寻,但没有找到任何可以通过给定点形成方程的现有程序。过去,我创建了一个神经网络算法来构成一个方程式,但是运行起来要花费非常长的时间。

[如果有人可以给我链接一个程序或解释这样做的过程,那就太好了。

很抱歉,如果该论坛使用错误。我会发表数学文章,但是需要编程背景才能了解计算机可以快速完成的工作范围。

algorithm math theory
3个回答
2
投票

开始时是评论,但最终太大了。

只是确保您熟悉术语...

Differentiation接受一个函数f(t)并吐出一个新函数f'(t),该函数告诉您f(t)随时间的变化(即f'(t)给出f(t)在时间[[t处的斜率)。这将使您从位移变为速度,或者从速度变为加速度。

Integreation接受一个函数f(t)

并吐出一个新函数F(t),该函数从头开始测量函数f(t)下的面积直到给定点t为止的时间。起初并不明显,积分实际上是微分的[[reverse,这一事实称为The Fundamental Theorem of Calculus。因此,集成使您从加速变为速度,或者从速度变为位移。您无需了解微积分的规则即可进行数值积分。数值积分函数的最简单(也是最幼稚的)方法是通过将面积划分为时间点之间的小片段并求和矩形的面积来近似面积。此近似和称为Reimann sum

<< img src =“ https://image.soinside.com/eyJ1cmwiOiAiaHR0cHM6Ly9pLnN0YWNrLmltZ3VyLmNvbS9SYk9Jci5naWYifQ==” alt =“在此处输入图像描述”>

如您所见,这往往会使功能的某些部分真正超调和下冲。

梯形规则

是一种更准确但仍然非常简单的方法,该方法也可以使用一系列切片来近似函数,除了切片的顶部是函数值之间的直线而不是常数值。

<< img src =“ https://image.soinside.com/eyJ1cmwiOiAiaHR0cHM6Ly9pLnN0YWNrLmltZ3VyLmNvbS9GSW83aS5naWYifQ==” alt =“在此处输入图像描述”>

[更复杂,但更好的近似方法是辛普森规则,该函数通过时间点之间的抛物线近似函数。

enter image description here

(来源:tutorvista.com

您可以将这些方法中的每一种视为对积分的更好近似,因为它们各自使用有关函数的更多信息。第一种方法每个区域仅使用一个数据点(一条恒定的平面线),第二种方法每个区域使用两个数据点(一条直线),第三种方法每个区域使用三个数据点(抛物线)。

您可以阅读这些方法herethis pdf的第一页中的数学知识。

2
投票
通常,找到一条精确地穿过给定点的曲线是个坏主意。在几乎任何应用的数学上下文中,您都必须接受输入中几乎没有噪声的情况,并且精确穿过这些点的曲线可能对噪声非常敏感。这会产生垃圾输出。找到一条精确地穿过一组点的曲线,要求overfitting得到一个记忆而不是理解数据的函数,并且不能泛化。

例如,取点(0,0),(1,1),(2,4),(3,9),(4,16),(5,25),(6,36)。这是y = x ^ 2的七个点,这很好。 x = -1处的x ^ 2值为1。现在如果将(3,9)替换为(2.9,9.1),会发生什么?有一个六阶多项式通过所有7个点,

4.66329x - 8.87063x^2 + 7.2281x^3 - 2.35108x^4 + 0.349747x^5 - 0.0194304x^6. 在x = -1处的此值是-23.4823,距离1很远。虽然曲线在0和2之间看起来不错,但在其他示例中,您可以看到数据点之间的大振荡。

一旦接受了您想要的近似值,而不是一条精确地穿过这些点的曲线,您就会遇到regression问题。回归有很多类型。通常,您选择一组函数以及一种衡量函数对数据的近似程度的方法。如果使用一组简单的功能(如行(linear regression)),则会找到最合适的功能。如果使用更复杂的函数系列,则应使用regularization来惩罚过于复杂的函数,例如具有大系数的高次多项式来存储数据。如果使用简单族或正则化,则当您添加或保留一些数据点时,该功能往往不会发生太大变化,这表明这是数据中有意义的趋势。 

2
投票
“

SO:

<< img src =“ https://image.soinside.com/eyJ1cmwiOiAiaHR0cHM6Ly9pLnN0YWNrLmltZ3VyLmNvbS9icHliSS5naWYifQ==” alt =“在此处输入图像描述”>

但是无论如何将函数拟合到加速度计数据中,您实际上仍将对基础加速度函数进行分段插值:

“

每个集成的错误条款将添加到何处!

通常a few seconds之后,您会看到非常不准确的结果。

© www.soinside.com 2019 - 2024. All rights reserved.