首页 > 解决方案 > 如何沿着一组值计算逻辑曲线?

问题描述

我正在尝试采用具有任意最小和最大可能值的浮点值,并将其转换为线性比例,以便在条形指示器上表示。问题是,我不能只在最小值和最大值之间徘徊,因为最大值总是会大大高于最小值。我有一个任意值的数组,我想充当最小值和最大值之间的中间点。现在我只需要通过这些点计算出一条逻辑上的最佳拟合曲线。每个值总是大于上一个值,并且值的增加速度越快越快,但是没有简单的公式来计算这个加速度。

以下是可以使用的值的示例:

6.0、13.5、30.0、75.0、375.0

其中 6 是最小值,375 是最大值。如果 x 正是这些值之一,我想要一个简单的值,具体取决于有多少总值,即 0、0.25、0.5、0.75、1。问题是计算中间值。

我将如何实现这一目标?如果已经问过这样的问题,我深表歉意,因为这感觉像是一个常见问题,尽管我不知道要搜索什么。如果之前已经回答过这个问题,请指出我正确的方向。

标签: c#mathcurve-fitting

解决方案


根据要求重新发布我的评论作为答案。

如果一条曲线可能是 y(x) = k^(ax+b),取两边的对数,你就有一个线性关系。正如所指出的那样,这是数学而不是编程。

我会选择 k = 2、e 或 10 以便于实施;a & b 你从数据中计算出来。


推荐阅读