slope js实现
计算斜率(Slope)的 JavaScript 实现
在数学和数据分析中,斜率表示两点之间直线的倾斜程度。以下是几种常见的 JavaScript 实现方法:
两点间斜率计算
给定两点 (x1, y1) 和 (x2, y2),斜率公式为: $$ m = \frac{y2 - y1}{x2 - x1} $$
function calculateSlope(x1, y1, x2, y2) {
if (x1 === x2) {
return Infinity; // 垂直线,斜率为无穷大
}
return (y2 - y1) / (x2 - x1);
}
数组数据集的斜率计算
对于一组数据点,可以使用最小二乘法计算最佳拟合直线的斜率:
function linearRegressionSlope(points) {
let sumX = 0, sumY = 0, sumXY = 0, sumXX = 0;
const n = points.length;
for (const point of points) {
sumX += point.x;
sumY += point.y;
sumXY += point.x * point.y;
sumXX += point.x * point.x;
}
const numerator = n * sumXY - sumX * sumY;
const denominator = n * sumXX - sumX * sumX;
return denominator !== 0 ? numerator / denominator : Infinity;
}
使用场景示例
// 两点间斜率
const slope = calculateSlope(1, 2, 3, 4);
console.log(slope); // 输出 1
// 数据集斜率
const dataPoints = [
{x: 1, y: 2},
{x: 2, y: 3},
{x: 3, y: 4}
];
const regressionSlope = linearRegressionSlope(dataPoints);
console.log(regressionSlope); // 输出接近1
注意事项
- 处理垂直线情况时返回 Infinity
- 浮点数计算可能存在精度问题
- 对于大数据集考虑性能优化
这些实现可以用于数据分析、图表绘制或任何需要计算斜率的应用场景。







