Java程序查找二次方程的根


在本文中,我们将学习如何使用Java查找二次方程的根。二次方程的根由以下公式确定

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

这里我们将输入二次方程𝑎 𝑥 2 + 𝑏 𝑥 + 𝑐 = 0的系数𝑎、𝑏和𝑐的值。程序将根据判别式( 𝑏 2 − 4 𝑎 𝑐 )的值确定根的性质。如果判别式大于零,则有两个不同的根;如果等于零,则正好有一个根。

问题陈述

编写一个Java程序来查找二次方程的根。

输入

Enter the value of a ::
15
Enter the value of b ::
68
Enter the value of c ::
3

输出

Roots are :: -0.044555558333472335 and -4.488777774999861

计算二次方程根的步骤

以下是计算二次方程根的步骤:

  • 首先从java.util包中导入Scanner类
  • 定义包含main方法的类,并声明两个根firstRoot和secondRoot的变量来存储结果。
  • 实例化一个Scanner对象以读取用户输入的值,并提示用户输入二次方程的系数𝑎、𝑏和𝑐,并将这些值存储起来。
  • 计算判别式:根据系数计算判别式,这有助于确定根的性质。
  • 检查判别式:如果判别式为正:计算并显示两个不同的实根。
  • 如果判别式为零:确定并显示一个实根,表示它是一个重复根。
  • 如果判别式为负:计算实部和虚部以指示复根的存在,然后相应地显示它们。
  • 最后,关闭扫描器以释放资源。

Java程序查找二次方程的根

以下是一个在Java编程中查找二次方程根的示例:

import java.util.Scanner;

public class RootsOfQuadraticEquation {
    public static void main(String args[]) {
        double secondRoot = 0, firstRoot = 0;
        Scanner sc = new Scanner(System.in);
        
        System.out.println("Enter the value of a ::");
        double a = sc.nextDouble();

        System.out.println("Enter the value of b ::");
        double b = sc.nextDouble();

        System.out.println("Enter the value of c ::");
        double c = sc.nextDouble();

        // Calculate the determinant
        double determinant = (b * b) - (4 * a * c);

        // Check the value of the determinant
        if (determinant > 0) {
            double sqrt = Math.sqrt(determinant);
            firstRoot = (-b + sqrt) / (2 * a);
            secondRoot = (-b - sqrt) / (2 * a);
            System.out.println("Roots are :: " + firstRoot + " and " + secondRoot);
        } else if (determinant == 0) {
            firstRoot = (-b) / (2 * a);
            System.out.println("Root is :: " + firstRoot);
        } else {
            // If the determinant is negative, calculate complex roots
            double realPart = -b / (2 * a);
            double imaginaryPart = Math.sqrt(-determinant) / (2 * a);
            System.out.println("Roots are complex: " + realPart + " + " + imaginaryPart + "i and " + realPart + " - " + imaginaryPart + "i");
        }

        // Close the scanner
        sc.close();
    }
}

输出

Enter the value of a ::
15
Enter the value of b ::
68
Enter the value of c ::
3
Roots are :: -0.044555558333472335 and -4.488777774999861

代码解释

在程序中,我们将获取用户输入方程𝑎𝑥2+𝑏𝑥+𝑐=0的系数𝑎、𝑏和𝑐。然后,它使用公式𝑏2−4𝑎𝑐计算判别式。根据判别式的值,程序确定方程是否有两个不同的根、一个根或没有实根。如果判别式大于零,则程序使用二次公式计算并显示两个实根。如果判别式等于零,则计算并打印单个根。如果判别式为负,则告知用户没有实根。

更新于: 2024年10月21日

13K+ 次浏览

开启你的职业生涯

通过完成课程获得认证

开始学习
广告