Javascript 如何计算图形曲线的所有梯度

Javascript 如何计算图形曲线的所有梯度,javascript,math,graph,Javascript,Math,Graph,我还没有看到确切的答案。我正在生成财务图表数据。数据点可以生成曲线、直线、尖点等 我正在尝试开发一种算法,通过该算法,我可以根据曲线图的梯度确定上升趋势、横向趋势和下降趋势。例如,如果三组连续数据点之间的梯度值相似,则趋势一致 很明显,我可以用y2-y1/x2-x1计算坡度/坡度的百分比,但y轴仅为分钟/小时/天,x值可能很大或很小,因此需要进行某种归一化,以保持各种图形的坡度介于0到100和0到-100之间(例如,向下坡度),其中0表示水平渐变 我觉得我需要根据之前类似的梯度计算和重新计算梯度

我还没有看到确切的答案。我正在生成财务图表数据。数据点可以生成曲线、直线、尖点等

我正在尝试开发一种算法,通过该算法,我可以根据曲线图的梯度确定上升趋势、横向趋势和下降趋势。例如,如果三组连续数据点之间的梯度值相似,则趋势一致

很明显,我可以用y2-y1/x2-x1计算坡度/坡度的百分比,但y轴仅为分钟/小时/天,x值可能很大或很小,因此需要进行某种归一化,以保持各种图形的坡度介于0到100和0到-100之间(例如,向下坡度),其中0表示水平渐变

我觉得我需要根据之前类似的梯度计算和重新计算梯度,并且需要做大量的计算来确定一个一致的类似上升趋势,比如说,10个数据点

当然这个问题已经解决了,或者有一种快速的近似方法可以让我至少可以确定具有相似梯度的数据点

哦,还有,我用JavaScript做所有这些,但我使用的是Decimal.js,它看起来非常准确,所以我知道我的数据点是有效的

提前谢谢!
Ged

您想要完成的是从一组点开始的简单操作。积分越多越好。若你们只想要两个点之间的梯度,那个么实际上是delta X上的delta Y:y2-y1/x2-x1。这会给你一个斜率,比如$USD/min的变化。这通常是一个很好的指标

但是如果你想标准化它,你可以转换成度数,比如tany2-y1/x2-x1,然后标准化为0-90度


100/90*tany2-y1/x2-x1

谢谢。我已经好几年没有学过导数、积分之类的东西了,所以我必须复习一下我大学一年级的一些数学:我认为我不能使用简单的delta的原因是因为x轴有点随意。每个时间间隔的值基本上为1个基本时间单位,除非我转换为秒、分钟、小时等。按比例,无论我是否进行转换,无论我使用秒、分钟、小时、大象等,我都应该得到相同的梯度值。这有意义吗?哦,是的,正常化效果很好,谢谢!我应该回到好的ol SOHCAHTOA。嗯,这个问题主要是关于编程的。Javascript和任何编程语言中的浮点数学都是不可靠的,所以我想问一下除了使用十进制之外,最好的做法和可能的已有库。我觉得这很明显,因为我在一个编程论坛上发布了它。