是否可以从结果中找到一组数字的公式?

计算科学 算法 数据集 块分解
2021-12-21 04:37:58

我有这两组数,我也有结果。是否可以计算它们之间的关系,以便我可以弄清楚结果是如何生成的?

例如我有:

A组=4 6 12 25 39 41 B组=3 7 14 26 47 48

结果是:2 24 29 31 32 49

是否有可能为此找出一个公式?如上所述,一种算法将这两个集合转换为一个结果集。基本上我想打破算法。

1个回答

因此,如果我理解正确,那么您要的是:

  • 给定值作为输入和输出,有没有办法识别ai,biri=f(ai,bi)f(a,b)

答案当然是“是”,而且做起来也不是特别难。事实上,有无数种解决方案。想想,例如,如果你只有一个输入参数,并且给你一个和值的序列。然后找到一个可以例如通过查看多项式来完成,即您试图找到一个多项式使得对于这些是个方程,您可以通过求解线性系统来获得它们。Nxiyi=f(xi)fN1f(x)=α0+α1x+α2x2++αN1xN1yi=f(xi)i=1NNN

当然,如果您正在查看次多项式,那么将有无限多个多项式满足这些方程及其系数。这表明解决方案不是唯一的。NNN+1

在 2d 中(输入)情况并不那么简单,因为不太清楚您需要在方向分别取多少个系数。但是,例如,如果您在每个方向上取个系数,即那么你可以保证找到满足所有数据点的系数。系数中有无数个可以产生解,但是您可以例如采用线性系统的最小二乘解。同样,找到某种解决方案并不是特别困难。a,babNf(a,b)=i=0N1j=0N1αijaibjN2

如果您有很多数据点,则多项式插值不是一种稳定的方法。对于这种情况有更好的方法,但上面的想法表明,如果你在你正在寻找的函数类中留有足够的余地,那么找到任何解决方案并不是非常困难的。

当然,如此确定的是否与最初创建数据的函数有关,这是一个完全不同的问题。这不是一个只看三个数字序列就可以回答的问题。您将需要额外的信息,例如可用于确定预测的内容是否与额外输出匹配的额外数据点。如果它不匹配,那么您就知道您使用了错误的功能,并且必须是无数其他可能性之一;如果匹配,那么您所知道的就是您的函数正确地预测了这一点,但它并没有告诉您有关其他潜在点的任何信息。f(a,b)f(a,b)