求解二次方程
目录
- JavaScript求解二次方程
- 计算步骤
- 程序代码
JavaScript求解二次方程
在JavaScript中,你可以使用内置的 Math.sqrt 函数来求解二次方程(即一元二次方程)。一元二次方程的标准形式为 at² + bt + c = 0。为了求解这个方程,你需要计算判别式(Discriminant),即 b^2 - 4ac。根据判别式的值,你可以确定方程的根的性质:
- 如果判别式大于0,则方程有两个不同的实数根。
- 如果判别式等于0,则方程有一个实数根(即重根)。
- 如果判别式小于0,则方程没有实数根,但有两个复数根。
计算步骤
计算判别式:D = b^2 - 4ac
根据判别式的值计算根:
- 如果 D > 0,使用公式 t1 = (-b + sqrt(D)) / (2a) 和 t2 = (-b - sqrt(D)) / (2a)
- 如果 D = 0,使用公式 t = -b / (2a)
- 如果 D < 0,方程没有实数根
程序代码
/*** 求解二次方程* @param {number} a * @param {number} b * @param {number} c * @returns {number[]} 根*/solveQuadraticEquation(a, b, c) {// 判别式const discriminant = b * b - 4 * a * c;// 存储解的数组const solutions = [];// 处理特殊情况:a为0时不是二次方程if (a === 0) {// 此时是一次方程 b*t + c = 0if (b !== 0) {solutions.push(-c / b);}// 当b也为0时,若c也为0则有无穷多解,否则无解return solutions;}// 二次方程情况if (discriminant > 0) {// 两个不同的实根const sqrtD = Math.sqrt(discriminant);solutions.push((-b + sqrtD) / (2 * a));solutions.push((-b - sqrtD) / (2 * a));} else if (discriminant === 0) {// 一个实根(重根)solutions.push(-b / (2 * a));} else {// 当判别式小于0时,没有实根,返回空数组return [];}return solutions;}