请编写函数solve-quadratic(a,b,c)求解一元二次方程ax²+bx+c
时间: 2024-11-29 12:32:41 浏览: 6
一元二次方程_VS2019_一元二次方程_源码
要编写一个Java函数`solveQuadratic`来求解一元二次方程`ax² + bx + c = 0`,我们可以使用数学库`java.lang.Math`中的`sqrt`方法。以下是函数的实现:
```java
public static double[] solveQuadratic(double a, double b, double c) {
// 计算判别式
double discriminant = Math.pow(b, 2) - (4 * a * c);
// 判别式的几种情况
if (discriminant > 0) { // 有两个不同的实根
double root1 = (-b + Math.sqrt(discriminant)) / (2 * a);
double root2 = (-b - Math.sqrt(discriminant)) / (2 * a);
return new double[]{root1, root2};
} else if (discriminant == 0) { // 有一个重根
double root = -b / (2 * a);
return new double[]{root, root};
} else { // 无实根(复数根)
double realPart = -b / (2 * a);
double imaginaryPart = Math.sqrt(-discriminant) / (2 * a);
return new double[]{realPart, imaginaryPart};
}
}
```
这个函数会返回一个double数组,包含两个解(如果有两个不同的实根)或单个解(如果有重复的根或无实根)。请注意,对于复数根,`Math.sqrt`函数会返回虚部,因为判别式为负时。
阅读全文