Как найти корни квадратного уравнения python

Найти корни квадратного уравнения

Вычислить корни квадратного уравнения,
коэффициенты a, b, c которого вводятся с клавиатуры.

Решение задачи на языке программирования Python

Квадратное уравнение имеет вид

ax2 + bx + c = 0

При его решении сначала вычисляют дискриминант по формуле

D = b2 - 4ac

Если D > 0, то квадратное уравнение имеет два корня:

 ,   

Если D = 0, то 1 корень:

И если D < 0, то делают вывод, что корней нет.

Таким образом, программа для нахождения корней квадратного уравнения должна иметь три ветви условного оператора.

Функция float преобразует переданный ей аргумент в вещественное число.

import math
 
print("Введите коэффициенты для уравнения")
print("ax^2 + bx + c = 0:")
a = float(input("a = "))
b = float(input("b = "))
c = float(input("c = "))
 
discr = b ** 2 - 4 * a * c
print("Дискриминант D = %.2f" % discr)
 
if discr > 0:
    x1 = (-b + math.sqrt(discr)) / (2 * a)
    x2 = (-b - math.sqrt(discr)) / (2 * a)
    print("x1 = %.2f nx2 = %.2f" % (x1, x2))
elif discr == 0:
    x = -b / (2 * a)
    print("x = %.2f" % x)
else:
    print("Корней нет")

Примеры выполнения кода:

Введите коэффициенты для уравнения
ax^2 + bx + c = 0:
a = 2
b = 4
c = 2
Дискриминант D = 0.00
x = -1.00
Введите коэффициенты для уравнения
ax^2 + bx + c = 0:
a = 3.2
b = -7.8
c = 1
Дискриминант D = 48.04
x1 = 2.30 
x2 = 0.14
Введите коэффициенты для уравнения
ax^2 + bx + c = 0:
a = 8
b = 4
c = 2
Дискриминант D = -48.00
Корней нет

Обратите внимание, что для данной программы коэффициент a не должен быть равен нулю. Иначе в теле условного оператора будет происходить попытка деления на 0, что приведет к аварийному завершению программы.

Если a = 0, то квадратное уравнение превращается в линейное, которое решается иным способом. Оно всегда имеет один корень.

Больше задач в PDF

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

Квадратное уравнение образовано от латинского термина «quadrates», что означает «квадрат». Это специальный тип уравнения, имеющий форму:

ах2+bх+с=0

Здесь «x» неизвестное, которое вы должны найти, «a», «b», «c» задает числа, такие что «a» не равно 0. Если a = 0, то уравнение становится линейным, а не квадратным. В уравнении a, b и c называются коэффициентами.

Возьмем пример решения квадратного уравнения 8x2 + 16x + 8 = 0.

См. этот пример:

 
# import complex math module 
import cmath 
a = float(input('Enter a: ')) 
b = float(input('Enter b: ')) 
c = float(input('Enter c: ')) 
 
# calculate the discriminant 
d =(b**2) -(4*a*c) 
 
# find two solutions 
sol1 =(-b-cmath.sqrt(d))/(2*a) 
sol2 =(-b+cmath.sqrt(d))/(2*a) 
print('The solution are {0} and {1}'.format(sol1,sol2))  

Выход:

Enter a: 8 
Enter b: 5 
Enter c: 9 
The solution are(-0.3125-1.0135796712641785j) and(-0.3125+1.0135796712641785j) 

Объяснение:

В первой строке мы импортировали модуль cmath и определили три переменные с именами a, b и c, которые получают ввод от пользователя. Затем вычисляем дискриминант по формуле. С помощью метода cmath.sqrt() мы вычислили два решения и распечатали результат.

Второй метод

Мы можем получить решение квадратного уравнения, используя прямую формулу. Давайте разберем следующий пример.

Вышеприведенная формула состоит из следующих случаев.

  • Если b2 < 4ac, то корни комплексные (не вещественные). Например – x2 + x + 1, корни -0,5 + i1,73205 и +0,5 – i1,73205.
  • Если b2 == 4ac, то оба корня одинаковы. Например – x2 + x + 1, корни равны -0,5 + i1,73205 и +0,5 – i1,73205.
  • Если b2 > 4ac, то корни действительны и различны. Например – х2 – 7 х – 12, корни 3 и 4.

Пример:

 
# Python program to find roots of quadratic equation 
import math 
 
 
# function for finding roots 
def findRoots(a, b, c): 
 
    dis_form = b * b - 4 * a * c 
    sqrt_val = math.sqrt(abs(dis_form)) 
 
 
    if dis_form > 0: 
        print(" real and different roots ") 
        print((-b + sqrt_val) /(2 * a)) 
        print((-b - sqrt_val) /(2 * a)) 
 
    elif dis_form == 0: 
        print(" real and same roots") 
        print(-b /(2 * a)) 
 
 
    else: 
        print("Complex Roots") 
        print(- b /(2 * a), " + i", sqrt_val) 
        print(- b /(2 * a), " - i", sqrt_val) 
 
 
a = int(input('Enter a:')) 
b = int(input('Enter b:')) 
c = int(input('Enter c:')) 
 
# If a is 0, then incorrect equation 
if a == 0: 
    print("Input correct quadratic equation") 
 
else: 
    findRoots(a, b, c) 

Выход:

Enter a:7 
Enter b:5 
Enter c:2 
Complex Roots 
-0.35714285714285715  + i 5.5677643628300215 
-0.35714285714285715  - i 5.5677643628300215 

Объяснение:

В приведенном выше коде мы импортировали математический модуль и определили формулу для вычисления дискриминанта. Затем мы определили функцию findRoots, которая принимает три целых значения в качестве аргументов. Затем мы проверили корни с помощью оператора if-elif-else.

Изучаю Python вместе с вами, читаю, собираю и записываю информацию опытных программистов.

Improve Article

Save Article

Like Article

  • Read
  • Discuss
  • Improve Article

    Save Article

    Like Article

    Given a quadratic equation the task is solve the equation or find out the roots of the equation. Standard form of quadratic equation is –

    ax2 + bx + c = 0
    where,
    a, b, and c are coefficient and real numbers and also a ≠ 0.
    If a is equal to 0 that equation is not valid quadratic equation.

    Examples:

    Input :a = 1, b = 2, c = 1 
    Output : 
    Roots are real and same
    -1.0
    
    Input :a = 2, b = 2, c = 1
    Output :
    Roots are complex
    -0.5  + i 2.0
    -0.5  - i 2.0
    
    Input :a = 1, b = 10, c = -24 
    Output : 
    Roots are real and different
    2.0
    -12.0

    Method 1: Using the direct formula Using the below quadratic formula we can find the root of the quadratic equation. x=frac{-bpm sqrt{b^2-4ac}}{2a}  There are following important cases.

    If b*b < 4*a*c, then roots are complex
    (not real).
    For example roots of x2 + x + 1, roots are
    -0.5 + i1.73205 and -0.5 - i1.73205
    
    If b*b == 4*a*c, then roots are real 
    and both roots are same.
    For example, roots of x2 - 2x + 1 are 1 and 1
    
    If b*b > 4*a*c, then roots are real 
    and different.
    For example, roots of x2 - 7x - 12 are 3 and 4

    Python3

    import math

    def equationroots( a, b, c):

        dis = b * b - 4 * a * c

        sqrt_val = math.sqrt(abs(dis))

        if dis > 0:

            print(" real and different roots ")

            print((-b + sqrt_val)/(2 * a))

            print((-b - sqrt_val)/(2 * a))

        elif dis == 0:

            print(" real and same roots")

            print(-b / (2 * a))

        else:

            print("Complex Roots")

            print(- b / (2 * a), " + i", sqrt_val)

            print(- b / (2 * a), " - i", sqrt_val)

    a = 1

    b = 10

    c = -24

    if a == 0:

            print("Input correct quadratic equation")

    else:

        equationroots(a, b, c)

    Output:

    real and different roots
    2.0
    -12.0

    Method 2: Using the complex math module First, we have to calculate the discriminant and then find two solution of quadratic equation using cmath module. 

    Python3

    import cmath

    a = 1

    b = 4

    c = 2

    dis = (b**2) - (4 * a*c)

    ans1 = (-b-cmath.sqrt(dis))/(2 * a)

    ans2 = (-b + cmath.sqrt(dis))/(2 * a)

    print('The roots are')

    print(ans1)

    print(ans2)

    Output:

    The roots are
    (-3.414213562373095+0j)
    (-0.5857864376269049+0j)

    Last Updated :
    16 Mar, 2023

    Like Article

    Save Article

    Перейти к содержанию

    На чтение 2 мин Просмотров 591 Опубликовано 28.02.2023

    Содержание

    1. Введение
    2. Решение квадратных уравнений в Python
    3. Заключение

    Введение

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

    Решение квадратных уравнений в Python

    Для написания кода нам понадобится метод sqrt() из модуля math, который возвращает квадратный корень числа. Импортируем его:

    Теперь дадим пользователю возможность ввести коэффициенты a, b и c:

    from math import sqrt
    
    a = float(input('a = '))
    b = float(input('b = '))
    c = float(input('c = '))

    Вычислим дискриминант по формуле:

    from math import sqrt
    
    a = float(input('a = '))
    b = float(input('b = '))
    c = float(input('c = '))
    
    d = b**2 - 4 * a * c

    Перейдём к нахождению корней. Зададим условие, что если дискриминант больше нуля, то x1 и x2 будут высчитаны по формуле:

    x1, x2 = frac{-bpmsqrt{D}}{2a}
    from math import sqrt
    
    a = float(input('a = '))
    b = float(input('b = '))
    c = float(input('c = '))
    
    d = b**2 - 4 * a * c
    
    if d > 0:
        x1 = (-b + sqrt(d) / (2 * a))
        x2 = (-b - sqrt(d) / (2 * a))
        print(f'x1 = {x1:.2f}; x2 = {x2:.2f}')

    Если же дискриминант равен нулю, то будет всего один корень по формуле:

    from math import sqrt
    
    a = float(input('a = '))
    b = float(input('b = '))
    c = float(input('c = '))
    
    d = b**2 - 4 * a * c
    
    if d > 0:
        x1 = (-b + sqrt(d) / (2 * a))
        x2 = (-b - sqrt(d) / (2 * a))
        print(f'x1 = {x1:.2f}; x2 = {x2:.2f}')
    elif d == 0:
        x1 = -b / (2 * a)
        print(f'x1 = {x1:.2f}')

    Если же дискриминант оказался отрицательным, это означает что корней нет:

    from math import sqrt
    
    a = float(input('a = '))
    b = float(input('b = '))
    c = float(input('c = '))
    
    d = b**2 - 4 * a * c
    
    if d > 0:
        x1 = (-b + sqrt(d) / (2 * a))
        x2 = (-b - sqrt(d) / (2 * a))
        print(f'x1 = {x1:.2f}; x2 = {x2:.2f}')
    elif d == 0:
        x1 = -b / (2 * a)
        print(f'x1 = {x1:.2f}')
    else:
        print('Нет корней')

    Заключение

    В ходе статьи мы с Вами написали небольшую программку на языке программирования Python, которая умеет решать квадратные уравнения. Надеюсь Вам понравилась статья, желаю удачи и успехов! 🙂

    Admin

    Квадратные уравнения являются одним из наиболее распространенных типов уравнений, которые встречаются в математике и науке. Решение квадратных уравнений на Python может быть полезно в различных областях, таких как научные исследования, инженерные расчеты, финансовая аналитика и многих других.

    В данной статье мы рассмотрим несколько примеров решения квадратных уравнений на Python с подробными объяснениями.

    Решение квадратного уравнения с использованием дискриминанта на Python

    main.py

    from math import sqrt
    
    def solve_quadratic_equation(a, b, c):
        """
        Решает квадратное уравнение ax^2 + bx + c = 0
    
        :param a: коэффициент при x^2
        :param b: коэффициент при x
        :param c: свободный член
        :return: корни уравнения
        """
        discriminant = b**2 - 4*a*c
        if discriminant > 0:
            x1 = (-b + sqrt(discriminant)) / (2*a)
            x2 = (-b - sqrt(discriminant)) / (2*a)
            return x1, x2
        elif discriminant == 0:
            x1 = -b / (2*a)
            return x1
        else:
            return None
    
    # Задаем коэффициенты уравнения
    a = 1
    b = -3
    c = 2
    
    # Решение уравнения и вывод результатов
    result = solve_quadratic_equation(a, b, c)
    if result is None:
        print("Уравнение не имеет действительных корней")
    elif isinstance(result, tuple):
        print(f"Корни уравнения: x1 = {result[0]}, x2 = {result[1]}")
    else:
        print(f"Корень уравнения: x = {result}")
        
    # Корни уравнения: x1 = 2.0, x2 = 1.0
    

    Данный код представляет функцию solve_quadratic_equation, которая решает квадратное уравнение вида ax^2 + bx + c = 0, где a, b и c – коэффициенты уравнения. Функция использует импортированную из модуля math функцию sqrt для вычисления квадратного корня.

    Функция solve_quadratic_equation принимает три аргумента – коэффициенты a, b и c уравнения, и возвращает корни уравнения в виде кортежа (tuple) или одиночного значения, в зависимости от количества корней.

    Решение системы квадратных уравнений в Python

    main.py

    import math
    
    def solve_quadratic_equation(a, b, c):
        """
        Решает квадратное уравнение ax^2 + bx + c = 0
    
        :param a: коэффициент при x^2
        :param b: коэффициент при x
        :param c: свободный член
        :return: корни уравнения
        """
        discriminant = b**2 - 4*a*c
        if discriminant > 0:
            x1 = (-b + math.sqrt(discriminant)) / (2*a)
            x2 = (-b - math.sqrt(discriminant)) / (2*a)
            return x1, x2
        elif discriminant == 0:
            x1 = -b / (2*a)
            return x1
        else:
            return None
    
    def solve_system_of_equations(eq1, eq2):
        """
        Решает систему из двух квадратных уравнений
    
        :param eq1: кортеж с коэффициентами первого уравнения (a, b, c)
        :param eq2: кортеж с коэффициентами второго уравнения (a, b, c)
        :return: корни системы уравнений
        """
        a1, b1, c1 = eq1
        a2, b2, c2 = eq2
    
        # Решение первого уравнения
        x1 = solve_quadratic_equation(a1, b1, c1)
        if x1 is None:
            return None
    
        # Решение второго уравнения
        x2 = solve_quadratic_equation(a2, b2, c2)
        if x2 is None:
            return None
    
        return x1, x2
    
    # Задаем систему уравнений
    eq1 = (1, -3, 2)
    eq2 = (2, 5, -3)
    
    # Решение системы уравнений и вывод результатов
    result = solve_system_of_equations(eq1, eq2)
    if result is None:
        print("Система уравнений не имеет действительных корней")
    else:
        x1, x2 = result
        print(f"Корни системы уравнений: x1 = {x1}, x2 = {x2}")
        
    # Корни системы уравнений: x1 = (2.0, 1.0), x2 = (0.5, -3.0)
    

    Данный код решает систему из двух квадратных уравнений и выводит результаты.

    Функция solve_quadratic_equation(a, b, c) решает квадратное уравнение вида ax^2 + bx + c = 0, где a, b и c – это коэффициенты уравнения. Она использует дискриминант (discriminant), который вычисляется как разность квадрата коэффициента при x (b) и произведения {"4 * a * c"}. Затем, в зависимости от значения дискриминанта, функция возвращает корни уравнения или None, если уравнение не имеет действительных корней.

    Решение квадратного уравнения с использованием библиотеки numpy для работы с массивами и матрицами

    main.py

    import numpy as np
    
    def solve_quadratic_equation(a, b, c):
        """
        Решает квадратное уравнение ax^2 + bx + c = 0
    
        :param a: коэффициент при x^2
        :param b: коэффициент при x
        :param c: свободный член
        :return: корни уравнения
        """
        discriminant = b**2 - 4*a*c
        if discriminant > 0:
            x1 = (-b + np.sqrt(discriminant)) / (2*a)
            x2 = (-b - np.sqrt(discriminant)) / (2*a)
            return x1, x2
        elif discriminant == 0:
            x1 = -b / (2*a)
            return x1
        else:
            return None
    
    # Задаем коэффициенты уравнения
    a = 1
    b = -3
    c = 2
    
    # Решение уравнения и вывод результатов
    result = solve_quadratic_equation(a, b, c)
    if result is None:
        print("Уравнение не имеет действительных корней")
    elif isinstance(result, tuple):
        print(f"Корни уравнения: x1 = {result[0]}, x2 = {result[1]}")
    else:
        print(f"Корень уравнения: x = {result}")
        
    # Корни уравнения: x1 = 2.0, x2 = 1.0
    

    Данный код представляет функцию solve_quadratic_equation(a, b, c), которая решает квадратное уравнение вида ax^2 + bx + c = 0, где a, b и c – это коэффициенты уравнения, передаваемые в качестве аргументов в функцию.
    Функция использует библиотеку NumPy, импортированную как np, для выполнения математических операций, таких как извлечение квадратного корня.

    Заключение

    Решение квадратных уравнений на Python может быть полезным навыком при работе с математическими и научными расчетами.

    В данной статье мы рассмотрели три примера решения квадратных уравнений на Python.

    Добавить комментарий