/** 求一元二次方程 y = ax^2+bx+c 的根 */
function getResult(a, b, c, tolerance = 0.0001) {
let xArr = []
let result = Math.pow(b, 2) - 4 * a * c
if (result > 0) {
xArr.push((-b + Math.sqrt(result)) / (2 * a))
xArr.push((-b - Math.sqrt(result)) / (2 * a))
} else if (Math.abs(result) < tolerence) { // 取近似为0
xArr.push(-b / (2 * a))
}
return xArr
}
一元二次方程 y = ax^2 + bx + c 的算术根一般有两个,即
x = (-b +/- sqrt(b^2+4ac))/2a;
转化成代码实现如上所示
得出一个根的数组。