计算多项式函数

时间:2013-08-28 18:15:36

标签: java polynomial-math

考虑整数序列,我如何找到对其进行建模的多项式函数? (即生成x = 1的第一项,x = 2的第二项等)

例如,让我们考虑这个序列:1,683,44287,838861。如何找到匹配的生成函数是y = 118008*x^3 - 686587*x^2 + (10^6)*x - 665807.

注意:代码必须达到十度。

1 个答案:

答案 0 :(得分:1)

这不是一个真正的java问题......这是一个基本的数学问题。如果你考虑[1,4,9,16,25],取它们之间的差异,你会得到[3,5,7,9]。再这样做,你得到[2,2,2]。

现在看[1,8,27,64,125] ...... [7,19,37,61]的差异。这些与[12,18,24]的差异再次出现差异[6,6]。

如果你为x ^ 4做了,那么你所拥有的第四组差异将是[24,24,24 ......]等。

换句话说,如果等式中的最高项是* x ^ n,那么在获得n次差异后得到的最终差异是* n !.

因此,从[1,683,44287,838861]开始,第一个差异是[682,43604,794574],第二个差异是[42922,750970],第三个差异是[708048]。所以除以3!或6,你得到118008 * x ^ 3的第一个词。

现在你回去,从原始序列中减去118008 * x ^ 3,并从[-118007,-943381,-3141929,-6713651]的新序列中找出x ^ 2项。你可以在这里放置一条捷径,这样你就不必一直回到起点,但这取决于你的想法。