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