定义类UQEquation,代表一元二次方程,求解一元二次方程的实数解。Java代码运行
时间: 2024-12-23 19:18:41 浏览: 5
实数一元二次方程求解算法-java代码
在Java中,我们可以定义一个名为`UQEquation`的类来表示一元二次方程,它通常包含三个属性:系数a、b和c。解决一元二次方程的解,即找出满足ax^2 + bx + c = 0的x值,需要计算判别式Δ = b^2 - 4ac,然后根据判别式的正负情况分别处理。以下是基本的类定义和求解方法:
```java
public class UQEquation {
private double a;
private double b;
private double c;
// 构造函数
public UQEquation(double a, double b, double c) {
this.a = a;
this.b = b;
this.c = c;
}
// 计算判别式
private double discriminant() {
return Math.pow(b, 2) - 4 * a * c;
}
// 求解一元二次方程
public double[] solve() {
double delta = discriminant();
if (delta > 0) { // 有两个实根
double x1 = (-b + Math.sqrt(delta)) / (2 * a);
double x2 = (-b - Math.sqrt(delta)) / (2 * a);
return new double[]{x1, x2};
} else if (delta == 0) { // 只有一个实根
double x = -b / (2 * a);
return new double[]{x};
} else { // 无实根(复根)
double realPart = -b / (2 * a);
double imaginaryPart = Math.sqrt(-delta) / (2 * a);
return new double[]{realPart, imaginaryPart};
}
}
}
// 示例使用
public static void main(String[] args) {
UQEquation equation = new UQEquation(1, -5, 6);
double[] solutions = equation.solve();
System.out.println("方程 " + equation.toString() + " 的解为:" + Arrays.toString(solutions));
}
```
在这个例子中,我们首先检查判别式是否大于零,等于零,还是小于零,然后基于这个结果返回对应的实数解。注意,`toString()`方法可以用于显示方程的字符串形式,如"a*x^2 + b*x + c"。
阅读全文