Как найти дискриминант питон

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

Вычислить корни квадратного уравнения,
коэффициенты 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. Естественно, существует огромное количество сайтов для подсчёта дискриминанта. Но я предлагаю вам блеснуть знаниями перед товарищами и вашими учителями информатики и математики и написать исходный код, считающий дискриминант.
Внимательно смотрим на скриншот и читаем комментарии.

Код на Python для решения дискриминанта
Код на Python для решения дискриминанта

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

Вводим значение a,b,c такие, чтобы наш дискриминант был больше 0. В данном случае он получился 92 и будет найдено два корня
Вводим значение a,b,c такие, чтобы наш дискриминант был больше 0. В данном случае он получился 92 и будет найдено два корня
В повторном запуске программы мы специально вводим такие значения, чтобы дискриминант был равен 0. И у нас считается только один корень.
В повторном запуске программы мы специально вводим такие значения, чтобы дискриминант был равен 0. И у нас считается только один корень.
И в третьем запуске программы, мы пишем большие значения переменных a,c, чтобы дискриминант был меньше 0. В данном случае он равен -6116. Поэтому выводится сообщение "Корней нет".
И в третьем запуске программы, мы пишем большие значения переменных a,c, чтобы дискриминант был меньше 0. В данном случае он равен -6116. Поэтому выводится сообщение “Корней нет”.

Вот такая вот не сложная, но достаточно полезная программа по решению квадратного уравнения и нахождению корней дискриминанта на Python, версия языка 3.8.2.
Если информация была интересной для вас, то заходите на наш Ютуб-канал
ПиМ [ZveKa]. Там много всего интересного. До новых встреч на просторах Яндекс Дзена.

Квадратное уравнение в 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 вместе с вами, читаю, собираю и записываю информацию опытных программистов.

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

На чтение 2 мин Просмотров 643 Опубликовано 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

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

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