跳到主要内容

JavaScript 程序:解二次方程

要理解这个示例,你应该掌握以下JavaScript编程主题的知识:

当已知二次方程的系数时,此程序计算方程的根。

二次方程的标准形式是:

ax2 + bx + c = 0,其中
a、b 和 c 是实数且
a ≠ 0

为了找到这样方程的根,我们使用公式,

(root1, root2) = (-b ± √b2-4ac)/2

b2-4ac 被称为二次方程的判别式。它说明了根的性质。

  1. 如果判别式大于 0,根是实数不同
  2. 如果判别式等于 0,根是实数相等
  3. 如果判别式小于 0,根是复数不同

二次方程根的性质

示例:一个二次方程的根

// 程序求解二次方程的根
let root1, root2;

// 从用户那里获取输入
let a = prompt("请输入第一个数字: ");
let b = prompt("请输入第二个数字: ");
let c = prompt("请输入第三个数字: ");

// 计算判别式
let discriminant = b * b - 4 * a * c;

// 判断实数和不同根的条件
if (discriminant > 0) {
root1 = (-b + Math.sqrt(discriminant)) / (2 * a);
root2 = (-b - Math.sqrt(discriminant)) / (2 * a);

// 结果
console.log(`二次方程的根是 ${root1}${root2}`);
}

// 判断实数和相等根的条件
else if (discriminant == 0) {
root1 = root2 = -b / (2 * a);

// 结果
console.log(`二次方程的根是 ${root1}${root2}`);
}

// 如果根不是实数
else {
let realPart = (-b / (2 * a)).toFixed(2);
let imagPart = (Math.sqrt(-discriminant) / (2 * a)).toFixed(2);

// 结果
console.log(
`二次方程的根是 ${realPart} + ${imagPart}i 和 ${realPart} - ${imagPart}i`,
);
}

输出 1

请输入第一个数字: 1
请输入第二个数字: 6
请输入第三个数字: 5
二次方程的根是 -1 和 -5

上面的输入值满足第一个 if 条件。在这里,判别式将大于 0,并执行相应的代码。

输出 2

请输入第一个数字: 1
请输入第二个数字: -6
请输入第三个数字: 9
二次方程的根是 3 和 3

上面的输入值满足 else if 条件。在这里,判别式将等于 0,并执行相应的代码。

输出 3

请输入第一个数字: 1
请输入第二个数字: -3
请输入第三个数字: 10
二次方程的根是 1.50 + 2.78i 和 1.50 - 2.78i

在上面的输出中,判别式将小于 0,并执行相应的代码。

在上述程序中,使用了 Math.sqrt() 方法来计算一个数的平方根。你可以看到程序中也使用了 toFixed(2)。这个方法将小数四舍五入到两位小数。

上述程序使用了 if...else 语句。如果您想了解更多关于 if...else 语句的信息,请访问 JavaScript if...else 语句