我想找到一系列值的截距,因为我发现斜率有任何方法可以找到斜率的截距值或任何其他方式找到截距, 这是我的代码:
double[] x_values = { 120,180,240 };
double[] y_values = { l1,l2,l3};
if (x_values.length == y_values.length)
{
for (int i = 0; i < (x_values.length - 1); i++) {
double y_2 = y_values[i + 1];
double y_1 = y_values[i];
double delta_y = y_2 - y_1;
double x_2 = x_values[i + 1];
double x_1 = x_values[i];
double delta_x = x_2 - x_1;
slope += delta_y / delta_x;
}
}
double slope_val= slope / (x_values.length-1);
答案 0 :(得分:1)
基本上,一条线可以由两点来定义。因此,如果您要找到一条线的斜率,您可以使用两个点来计算它。
如果你有两个以上的点,那么你可以使用更复杂的外推方法。有两个原因:一,如果你的点不是精确的共线性,那么你的算法基本上只是取连续点对之间的斜率的平均值。二,即使你的点是共线的,算术中可能会有一些数值问题导致它几乎默认为第一种情况。但是,如果你是第二种情况,那么你拥有的东西可能很好,你不需要过度复杂化。
直接回到您的问题,您将找到连续点之间的平均斜率。要查找截距,您需要将该斜率插入y=mx + b
并使用您给定的一个点来查找等式的b
部分。之后,通过分别设置y=0
或x=0
并解决,您将设置为找到x轴截距或y轴截距。