我有三组数据,例如:
x y 4 0 6 60 8 0
有谁知道任何(有效的)Java代码可以将a,b和c的值还给我(系数)?
我假设您想要这种形式的公式:
y = a * x^2 + b*x + c
如果只有三个点,则可以使用以下公式描述遍历所有三个点的二次曲线:
y = ((x-x2) * (x-x3)) / ((x1-x2) * (x1-x3)) * y1 + ((x-x1) * (x-x3)) / ((x2-x1) * (x2-x3)) * y2 + ((x-x1) * (x-x2)) / ((x3-x1) * (x3-x2)) * y3
在您的示例中:
x1 = 4, y1 = 0, x2 = 6, y2 = 60, x3 = 8, y3 = 0
要获得根据x1,x2,x3,y1,y2和y3表示的系数a,b,c,您只需要将公式相乘然后收集项。这并不困难,并且运行速度非常快,但是键入的代码很多。寻找已经为您完成此操作的软件包可能会更好,但是如果您想自己进行操作,这是你怎么做的。
在您的示例中y项中的两个为零的事实使公式更加简单,您也许可以利用这一点。但是,如果这只是一个巧合,而不是一般规则,那么您需要完整的公式。