我在Java中有List<Summary>
个对象,其中每个Summary
对象包含2个字段 - 数量和天数
将该数据绘制在图表上,其中x轴是天,y轴是数量
我在图表上的参考点和所有进一步的计算都基于y0和y1
让我们假设我的数据集如下
Y X
100 (y0) 0
90 (y1) 1
80 2
75 5
73 7
48 9
60 10
45 12
2个简单的规则 - 1 - 选择最接近的值 2 - 如果恰好在两者之间选择更高的值
假设我想找出X为50%的Y1 =(50 * 90)/ 100 = 45,这让我得到8天
同样地,假设我想找出X的80%Y1 =(80 * 90)/ 100 = 72.由于我们在Y轴上没有完全匹配,我们选择了关闭,即73所以这让我产生了7天(这里应用了规则1)
同样地,假设我想找出X为60%的Y1 =(60 * 90)/ 100 = 54.因为我们在Y轴上没有完全匹配,因为54正好在在48和60的中间,这使我得到10(应用规则2)
在java中实现这一目标的最佳方法是什么?有什么建议吗?
答案 0 :(得分:0)
我认为你正在寻找最低的residual sum of squares。这将适合一系列或多或少在一行中的点。
我会通过这些步骤解决这个问题。
y = mx + b
。 x是你的日子,y是你的数量。 m是线的斜率(你的是负数,实际上是-4.124),b是截距(你的接近100,实际上是95.086)。