java语言 解一元三次方程
时间: 2023-07-28 18:10:28 浏览: 56
下面是Java语言解一元三次方程的示例代码:
```java
import java.util.Scanner;
public class CubicEquationSolver {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入一元三次方程的系数:");
System.out.print("a = ");
double a = scanner.nextDouble();
System.out.print("b = ");
double b = scanner.nextDouble();
System.out.print("c = ");
double c = scanner.nextDouble();
System.out.print("d = ");
double d = scanner.nextDouble();
double delta = b * b * b - 4 * a * c * d;
double x1, x2, x3;
if (delta > 0) {
double A = Math.pow((-b + Math.sqrt(delta)) / (2 * a), 1.0 / 3.0);
double B = Math.pow((-b - Math.sqrt(delta)) / (2 * a), 1.0 / 3.0);
x1 = A + B;
x2 = (-1.0 / 2.0) * (A + B) + (Math.sqrt(3) / 2) * (A - B) * Math.sqrt(-1);
x3 = (-1.0 / 2.0) * (A + B) - (Math.sqrt(3) / 2) * (A - B) * Math.sqrt(-1);
System.out.println("方程有三个实根:");
System.out.println("x1 = " + x1);
System.out.println("x2 = " + x2);
System.out.println("x3 = " + x3);
} else if (delta == 0) {
double k = (-b) / (2 * a);
x1 = 2 * k;
x2 = -k;
System.out.println("方程有一个实根和一个重根:");
System.out.println("x1 = " + x1);
System.out.println("x2 = " + x2);
} else {
double p = (-b) / (3 * a);
double q = Math.sqrt(-delta) / (3 * a);
x1 = 2 * q * Math.cos(Math.acos(p / q) / 3) - (b / (3 * a));
x2 = 2 * q * Math.cos(Math.acos(p / q) / 3 + 2 * Math.PI / 3) - (b / (3 * a));
x3 = 2 * q * Math.cos(Math.acos(p / q) / 3 - 2 * Math.PI / 3) - (b / (3 * a));
System.out.println("方程有一个实根和两个共轭复根:");
System.out.println("x1 = " + x1);
System.out.println("x2 = " + x2);
System.out.println("x3 = " + x3);
}
scanner.close();
}
}
```
在上述代码中,我们通过Scanner类获取用户输入的一元三次方程的系数,然后根据判别式的值来计算方程的根,并输出结果。需要注意的是,对于复数解的计算,我们可以通过Java中的Math.sqrt()和Math.acos()等函数来实现。
相关推荐
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)