📜  js中的二次方程函数 - Javascript(1)

📅  最后修改于: 2023-12-03 14:43:35.830000             🧑  作者: Mango

JS中的二次方程函数

在JavaScript中,我们可以使用以下代码片段来实现一个二次方程函数:

function quadraticEquation(a, b, c) {
  let delta = Math.pow(b, 2) - 4 * a * c;
  if (delta < 0) {
    return "No real roots";
  } else if (delta === 0) {
    return -b / (2 * a);
  } else {
    let x1 = (-b + Math.sqrt(delta)) / (2 * a);
    let x2 = (-b - Math.sqrt(delta)) / (2 * a);
    return [x1, x2];
  }
}

这个函数的作用是求解二次方程 $ax^2 + bx + c = 0$ 的根。参数 abc 分别代表三个系数,返回值为一个数组,包含两个实数根。如果方程无实数根,则返回字符串 "No real roots"。

接下来我们对这些代码进行详细讲解。

什么是二次方程?

二次方程是形如 $ax^2 + bx + c = 0$ 的方程,其中 $a \ne 0$。它的通解为:

$$ x = \frac{-b \pm \sqrt{b^2 - 4ac}}{2a} $$

其中 $b^2 - 4ac$ 称为判别式,根据判别式的正负,可以将二次方程的解分为以下三类:

  • 当 $b^2 - 4ac > 0$ 时,方程有两个不相等的实数根;
  • 当 $b^2 - 4ac = 0$ 时,方程有且仅有一个实数根;
  • 当 $b^2 - 4ac < 0$ 时,方程无实数根,但有两个共轭复数根。

因此,在实践中,我们需要先对判别式进行判断,再根据不同的情况进行求解。

函数的实现

quadraticEquation 函数中,我们首先通过 Math.pow 函数计算出判别式 delta:

let delta = Math.pow(b, 2) - 4 * a * c;

然后,我们根据 delta 的值进行分支判断:

  • 当 delta 小于零时,返回字符串 "No real roots";
  • 当 delta 等于零时,返回 $-b/(2a)$;
  • 当 delta 大于零时,返回两个实数根 $x_1$ 和 $x_2$。

对于前两种情况,我们可以直接使用 return 语句将结果返回。对于第三种情况,我们使用以下代码计算出解:

let x1 = (-b + Math.sqrt(delta)) / (2 * a);
let x2 = (-b - Math.sqrt(delta)) / (2 * a);
return [x1, x2];

其中,Math.sqrt 函数用于计算平方根。

使用范例

以下是一个使用 quadraticEquation 函数的例子:

let a = 2, b = 3, c = 1;
let roots = quadraticEquation(a, b, c);
console.log("The roots of " + a + "x^2 + " + b + "x + " + c + " are: " + roots);

这个例子中,我们先定义了三个系数,然后使用 quadraticEquation 函数求解方程的根,并将结果打印出来。

如果输入的系数为 $a=2$、$b=3$、$c=1$,则输出的结果为:

The roots of 2x^2 + 3x + 1 are: [-0.5, -1]

这表明方程的两个根分别为 $x_1=-0.5$ 和 $x_2=-1$。

总结

二次方程是数学中的一个经典问题,在JavaScript中,我们可以使用上述代码片段来求解二次方程,其中,判别式的值决定了方程的解的个数和类型,需要进行仔细的分析和判断。