所以基本上我有这样的东西
[always 8 numbers]
5-->10
2-->4
9-->18
7-->14
我知道四个x和那四个x的答案。我需要找到方程式,以便适合所有这些x及其答案。我知道有无数的方程式可能,但如果可能,我想解决最短的方程式。
对于这个例子 x * 2或x + x最适合 当然像这样的x * 3-x和无限多个其他方程也有效,但它们不是最优的,如x * 2
解决类似问题的任何想法,理论或算法?
答案 0 :(得分:0)
如果您的目标是使数据适合多项式函数,例如:
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等等,但是要小心,因为一般情况下,您可能拥有的数据不能“精确”地适合多项式(或任何函数)。如果您只想要一个非常接近的低次多项式,那么您需要查看多项式回归(这将为您提供最佳拟合多项式),请参阅:http://en.wikipedia.org/wiki/Polynomial_regression
答案 1 :(得分:0)
使用您提供的数字:
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