我有三组数据,例如:
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 项为零这一事实使公式变得更加简单,您也许可以利用这一点。但如果这只是巧合而不是一般规则,那么您需要完整的公式。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)