В этой статье мы рассмотрим алгоритм решения квадратного уравнение на Java.

Что такое квадратное уравнение

Квадратно уравнение – это уравнение вида:

(1)   \begin{equation*}ax^2 + bx + c = 0\end{equation*}

Для вычисления значения x мы сначала вычислим дискриминант по формуле:

(2)   \begin{equation*}D = b^2 - 4ac\end{equation*}

Далее, если значение дискриминанта больше нуля, вычислим корни уравнения по формулам:

(3)   \begin{equation*}x_1 = \frac{-b+\sqrt D}{2a},\quad x_2 = \frac{-b-\sqrt D}{2a}\end{equation*}

Иначе, если дискриминант равен нулю, единственное значение x вычислим по формуле:

(4)   \begin{equation*}x = \frac{-b}{2a}\end{equation*}

Иначе, если дискриминант меньше нуля, данное уравнение не имеет решения.

Реализация алгоритма решения квадратного уравнения

Вначале вычитаем исходные данные a, b и c:

Scanner scanner = new Scanner(System.in);

System.out.print("Введите значение a: ");
double a = scanner.nextDouble();

System.out.print("Введите значение b: ");
double b = scanner.nextDouble();

System.out.print("Введите значение c: ");
double c = scanner.nextDouble();

Затем вычислим дискриминант:

double d = b * b - 4 * a * c;

На основании значения дискриминанта вычислим корни уравнения, если таковые имеются:

if (d > 0) {
    double x1 = (-b - Math.sqrt(d)) / (2 * a);
    double x2 = (-b + Math.sqrt(d)) / (2 * a);
    System.out.println("Корни уравнения: x1 = " + x1 + ", x2 = " + x2);
} else if (d == 0) {
    double x;
    x = -b / (2 * a);
    System.out.println("Уравнение имеет единственный корень: x = " + x);
} else {
    System.out.println("Уравнение не имеет действительных корней");
}

Проверка

Теперь проверим программу в действии. Для следующих входных данных программа должна выдать такой результат:

(5)   \begin{equation*}a = 2, b = -7, c = 3 \rightarrow x_1 = 0.5, x_2 = 3\end{equation*}

Результат работы программы:

Исходный код

Полный исходный код программы:

import java.util.Scanner;

public class QuadraticEquation {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);

        System.out.print("Введите значение a: ");
        double a = scanner.nextDouble();

        System.out.print("Введите значение b: ");
        double b = scanner.nextDouble();

        System.out.print("Введите значение c: ");
        double c = scanner.nextDouble();

        double d = b * b - 4 * a * c;

        if (d > 0) {
            double x1 = (-b - Math.sqrt(d)) / (2 * a);
            double x2 = (-b + Math.sqrt(d)) / (2 * a);
            System.out.println("Корни уравнения: x1 = " + x1 + ", x2 = " + x2);
        } else if (d == 0) {
            double x;
            x = -b / (2 * a);
            System.out.println("Уравнение имеет единственный корень: x = " + x);
        } else {
            System.out.println("Уравнение не имеет действительных корней");
        }
    }
}

Заключение

Мы реализовали программу для решения квадратного уравнения. Вводные данные считываются с помощью Scanner.

Решение квадратного уравнения