Вывести корни квадратного уравнения питон

Reagent992 / 17 Корень зла.py

This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters

# Задача:
# Не все любят математику, а кто-то даже считает её настоящим злом во плоти, хотя от неё никуда не деться. К
# примеру, Python изначально разрабатывался только для решения математических задач, поэтому давайте используем его,
# чтобы найти корни квадратного уравнения.
#
# Формат ввода
# Вводится 3 вещественных числа a, b, c — коэффициенты уравнения вида:
# ax^2+bx+c=0
#
#
# Формат вывода
# Если у уравнения нет решений — следует вывести «No solution».
# Если корней конечное число — их нужно вывести через пробел в порядке возрастания с точностью до сотых.
# Если корней неограниченное число — следует вывести «Infinite solutions».
#
# Примечание
# Обратите внимание, что ограничения на значения коэффициентов отсутствуют.
#
# Пример 1
# Ввод
# 1
# -2
# 1
# Вывод
# 1.00
# Пример 2
# Ввод
# 3.5
# -2.4
# -7.3
# Вывод
# -1.14 1.83
# получаем вводные:
a = float ( input ())
b = float ( input ())
c = float ( input ())
# Квадратное уравнение имеет вид: ax² + bx + c = 0
# Стандартное решение через Дискриминант: D = b2 − 4ac
# если D < 0, корней нет;
# если D = 0, есть один корень;
# если D > 0, есть два различных корня.
# 0.9 Проверяем на
if a == 0 and b == 0 and c == 0 :
print ( ‘Infinite solutions’ )
elif a == 0 and b == 0 :
print ( ‘No solution’ )
else :
# 1. Проверяем уравнение на
if a == 0 :
x = — c / b
print ( «» . format ( round ( x , 2 )))
# Уравнение не квадратное
# 2. Решаем не полные квадратные уравнения
if b == 0 and c == 0 :
print ( «» . format ( round ( 0 , 2 )))
if a != 0 and b == 0 and c != 0 : # x² = — c/а
if (( — c ) / a ) < 0 :
print ( ‘No solution’ ) # нет решений
elif (( — c ) / a ) > 0 :
agg = abs ( c / a ) ** 0.5
ag = agg
ag2 = — agg
afk = min ( ag , ag2 )
afk2 = max ( ag , ag2 )
print ( round ( afk , 2 ), round ( afk2 , 2 ))
if a != 0 and b != 0 and c == 0 :
print ( «» . format ( 0 ), «» . format ( round (( — b / a ), 2 )))
# 3 решаем полное квадратное уравнение:
# 3.1 Преобразуем неприведенное уравнение в приведенное.
# в
if a > 1 :
b = b / a
c = c / a
a = a / a
# 3.2 решаем полное квадратное уравнение:
if a != 0 and b != 0 and c != 0 :
d = (( b ** 2 ) — ( 4 * a * c ))
if d < 0 :
print ( ‘No solution’ )
elif d == 0 :
ans1 = — b / 2 * a
print ( «» . format ( round ( ans1 , 2 )))
else :
x1 = ( — b + d ** 0.5 ) / ( 2 * a )
x2 = ( — b — d ** 0.5 ) / ( 2 * a )
prt1 = min ( x1 , x2 )
prt2 = max ( x1 , x2 )
if prt1 != prt2 :
print ( «» . format ( round ( prt1 , 2 )), «» . format ( round ( prt2 , 2 )))
else :
print ( «» . format ( round ( prt1 , 2 ))),

Источник

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

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

Функция 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, то квадратное уравнение превращается в линейное, которое решается иным способом. Оно всегда имеет один корень.

Источник

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

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

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

Возьмем пример решения квадратного уравнения 8x 2 + 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 and '.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() мы вычислили два решения и распечатали результат.

Второй метод

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

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

# 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 3. Она хорошо подойдет для начинающих изучать этот язык программирования.

Постановка задачи

Уравнение, которое будем решать, выглядит следующим образом: a·x²+b·x+c=0. Пользователю предлагается ввести значения a, b и с в терминале. После этого программа посчитает дискриминант. На его основе найдем решения уравнения – значения x, для которых будет выполняться равенство.

Вот пример работы программы, которая будет написана.

Программа

Для решения квадратных уравнений на Python 3 напишем код, приведенный ниже. Разберем некоторые моменты, которые мы использовали в этой простой программе:

  • print — эта функция выводит на экран информацию.
  • input — выводит информацию и предлагает пользователю ввести данные.
  • b**2 — это возведение в степень, в данном случае переменная b возводится в квадрат.
  • str — эта функция приводит данные к строковому виду.
  • if-elif-else — это условные операторы в языке Python. Исходя из значения discriminant мы определяем количество корней квадратного уравнения.
  • discriminant ** 0.5 — с помощью такого способа извлекаем квадратный корень. В Python есть несколько способов извлечения корней, например, с помощью функции sqrt из библиотеки math. Про способы извлечения корней в Python описано в отдельной статье.
print('Решаем уравнение a•x²+b•x+c=0') a = input('Введите значение a: ') b = input('Введите значение b: ') c = input('Введите значение c: ') a = float(a) b = float(b) c = float(c) discriminant = b**2 - 4*a*c print('Дискриминант = ' + str(discriminant)) if discriminant < 0: print('Корней нет') elif discriminant == 0: x = -b / (2 * a) print('x = ' + str(x)) else: x1 = (-b + discriminant ** 0.5) / (2 * a) x2 = (-b - discriminant ** 0.5) / (2 * a) print('x₁ = ' + str(x1)) print('x₂ = ' + str(x2))

Запустим программу и введём нужные коэффициенты.

Решаем уравнение a•x²+b•x+c=0 Введите значение a: -4 Введите значение b: -231 Введите значение c: 34 Дискриминант = 53905.0 x₁ = -57.89681291718352 x₂ = 0.1468129171835173

Все посчитано, найдены два корня, которые будут являться решением квадратного уравнения.

Дополнительно

Хотелось бы уделить внимание ещё одному моменту. Если дискриминант отрицательный, то действительных корней нет. Но будут комплексные корни. Если мы хотим их обрабатывать, то следует изменить конструкцию условных операторов следующим образом:

if discriminant == 0: x = -b / (2 * a) print('x = ' + str(x)) else: x1 = (-b + discriminant ** 0.5) / (2 * a) x2 = (-b - discriminant ** 0.5) / (2 * a) print('x₁ = ' + str(x1)) print('x₂ = ' + str(x2))

Тогда пример решения уравнения будет выглядеть следующим образом:

Решаем уравнение a•x²+b•x+c=0 Введите значение a: 4 Введите значение b: 1 Введите значение c: 2 Дискриминант = -31.0 x₁ = (-0.12499999999999996+0.6959705453537527j) x₂ = (-0.12500000000000006-0.6959705453537527j)

Как видим, получили два комплексных корня.

Этот простой код написанный на Python 3 можно для обучения программированию немного усложнить:

  • Предлагать запрос в конце программы «Решить ещё одно уравнение (y/n): ». И если пользователь введет «y», то заново запросить коэффициенты. Это нужно делать в цикле. Подробнее о циклах в Python можно прочитать здесь.
  • Сделать проверку корректности ввода. Ведь пользователь вместо числа может ввести какую-нибудь строку, которая не будет корректно обработана. Про проверку на число описано в отдельной статье.

Источник

Читайте также:  Html шаблоны соц сети
Оцените статью