根据已知的 x 和答案找到方程式

Find equation based on known x and answers

基本上我有这样的东西

[always 8 numbers]
5-->10
2-->4
9-->18
7-->14

我知道四个 x 和这四个 x 的答案。我需要找到适合所有这些 x 及其答案的方程式。我知道可能有无限多的方程式,但如果可能的话,我想求解最短的方程式。

对于这个例子 x*2 或 x+x 最适合 当然像这样的 x*3-x 和无限数量的其他方程式也可以工作,但它们不是像 x*2

这样的最佳方程式

有解决类似问题的想法、理论或算法吗?

如果您的目标是将数据拟合为多项式函数,例如:

f(x) = a_0 + a_1*x + a_2*x^2 + ... + a_n*x^n 其中每个 a_i 是一个实数(或复数),

关于何时可以将所有这些点放在一条曲线上,有一些可用的理论。您可以做的是选择一个度数(x 的最高次方),然后写下一个方程组并求解该系统(或尝试求解)。比如度数是2,那么你的数据就变成:

10 = a_0 + a_1*5 + a_2*5^2

4 = a_0 + a_1*2 + a_2*2^2

等等

如果你能解决系统问题,那就太好了。如果没有,你需要更大的学位。可以通过矩阵乘法以多种语言解决(内置)系统。您可能想先说:我的数据能否全部符合 1 次多项式?如果是,完成。如果不是,它是否适合 2 次多项式?如果是,完成。如果不是,则为 3 等。不过要小心,因为通常您可能拥有无法将 "exactly" 拟合到多项式(或与此相关的任何函数)的数据。如果您只想要一个非常接近的低次多项式,那么您想研究多项式回归(这将为您提供最佳拟合多项式),请参阅:http://en.wikipedia.org/wiki/Polynomial_regression

使用您提供的号码:

5-->10
2-->4
9-->18
7-->14

您想找到 a、b、c 和 d 来解决由以下定义的系统:

ax^3 + bx^2 + cx + d = f(x)

因此,在您的情况下是:

125a + 25b + 5c + d = 10
8a + 4b + 2c + d = 4
729a + 81b + 9c + d = 18
343a + 49b + 7c + d = 14

如果你求解系统你会发现 (a,b,c,d) 必须是 (0, 0, 2, 0)。所以,最小多项式是2x。

前段时间我做了一个网站解决了这个问题:

http://juanlopes.net/actually42/#5%2010%202%204%209%2018%207%2014/true/true