从一组预定义值创建(数学)函数

Create (mathematical) function from set of predefined values

我想创建一个 excel table 来帮助我估算分配给我的任务的实施时间。为此,我得出了 4 个类别,我在这些类别中分别对任务进行了 1 到 10 的评分。

它们是:系统的复杂性(简单的脚本或整个业务系统),需求状态(定义明确或非常软) ,关于系统的知识(我对系统和代码库了解多少)和实施计划(我知道该做什么或不知道该做什么'我有任何计划要做什么或从哪里开始。

在对这些类别中的每项任务进行评级后,我希望得到一个结果因素,说明该任务可能需要多长时间和多长时间,因为非常我可以告诉我的老板的粗略估计


我想做什么

我想创建一个函数,在其中定义输入,然后以数字形式获取结果,请参阅:

|  a  |  b  |  c  |  d  | Result |
|  1  |  1  |  1  |  1  |  160   |
|  5  |  5  |  5  |  5  |  80    |
|  10 |  10 |  10 |  10 |  2     |

我想创建一个函数,当给定 a, b, c, d 时,它会针对极端情况(最大值、最小值、平均值)产生上述结果,当然还有任何值 (float)之间。

我该怎么做呢?我想这是某种形式的多项式问题,但我如何才能真正创建产生这些结果的函数?

我经常有这样的任务,所以当我需要为所需的任意数量的参数和结果创建这样的函数时,如果有一种模式可以遵循会很酷。

我尝试为此使用 wolfram alphas interpolate polynomial 命令,但结果只是一堆非常大的分数...

如何正确创建此函数并获得合理的结果?


在撰写此编辑时,我意识到这可能更适合 programmers.SE - 如果这里没有人回答,我会把问题移到那里。

您没有足够的数据。考虑到所有四个 explanatory variables 的最简单公式是线性的:

x0 + x1*a + x2*b + x3*c + x4*d

如果为此制定一组方程式,则有三个方程式但有五个未知数,这意味着您没有唯一解。另一方面,您提供的数据点证明了分数和时间之间的关系并不是完全线性的。所以你可能不得不看一些更复杂的函数族,因此有更多的参数需要调整。虽然调整参数以匹配输入很容易,但这种选择是相当随意的,因此没有预测能力。

因此,虽然您的四个不同分数的系统在长期 运行 中可能很有用,但我目前不会使用它。我建议你收集更多的数据点,看看给定的任务实际花了你多长时间,只有当你有足够的数据点来适应它的所有参数时,才使用那个细粒度的模型。

同时,将所有四个数字合计为一个数字。例如。通过取他们的平均值。然后决定要选择的公式。例如。二次方:

182 - 22.9*a + 0.49*a*a

这很符合您的要求,而且不会太复杂或混乱。但是函数的选择,即多项式函数,仍然是相当随意的。因此,一旦您拥有更多数据,请重新考虑该选择。请注意,此多项式几乎是 Wolfram Alpha found for your data:

1642/9 - 344/15*a + 22/45*a*a

我只是将这些有理数转换为十进制表示法,我很早就运行解决了这个问题,因为所有这些在任何情况下都非常粗糙。

总的来说,这个问题在我看来更适合CrossValidated than to Programmers SE。但是不要打扰他们,除非你有足够的数据来实际拟合模型。