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

标签 algorithm math theory

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

我知道如何在计算机上执行此操作,但我如何开始计算方程式?我四处搜索,但我没有找到任何现有的程序可以在给定一组点的情况下形成一个方程。过去,我创建了一个神经网络算法来形成一个方程,但它需要很长时间才能运行。

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

对不起,如果这是在错误的论坛。我会投数学,但需要编程背景才能了解计算机可以快速完成的可能性范围。

最佳答案

这开始是一条评论,但最终变得太大了。

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

微分采用函数f(t) 并生成一个新函数f'(t) 告诉您如何 f(t) 随时间变化(即 f'(t) 给出 f(t) 在时间 t 的斜率).这使您从位移到速度或从速度到加速度。

Integreation 采用函数 f(t) 并吐出一个新函数 F(t) 测量函数下的面积 < em>f(t) 从时间开始到给定点 t。起初并不明显的是,集成实际上是差异化的逆转,这一事实称为 The Fundamental Theorem of Calculus .因此,集成会将您从加速度转换为速度,或将速度转换为位移。

您无需了解微积分规则即可进行数值积分。对函数进行数值积分的最简单(也是最幼稚)的方法就是通过在时间点之间将其分成小片并对矩形面积求和来近似面积。这个近似和称为 Reimann 和

enter image description here

如您所见,这往往会真正超过和低于函数的某些部分。一种更准确但仍然非常简单的方法是梯形法则,它也用一系列切片来逼近函数,除了切片的顶部是函数值之间的直线而不是常数值。

enter image description here

Simpson 规则更复杂,但近似效果更好,它用时间点之间的抛物线近似函数。

enter image description here
(来源:tutorvista.com)

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

您可以阅读这些方法背后的数学原理 here或者在 this pdf 的第一页.

关于algorithm - 关于如何在给定可变数量的数据点的情况下找到曲线方程的理论,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28006256/

相关文章:

algorithm - 用遗传算法挑选育种者

javascript - 按小数位格式化数字

sql - 加密数据库查询

java - 通过 libGDX 中的控制杆(触摸板)旋转播放器

algorithm - 3D对称搜索算法

c - 后缀表达式求值 : how much stack memory is required?

python - CPython 中的字符串 'in' 运算符

algorithm - 什么是 DFS-Forest 组件?

java - 什么情况下归并排序比选择排序快

flash - 随机数 绝对值 1 或 -1