Как найти квадратное уравнение в пайтоне

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

Программа, позволяющая находить корни квадратного уравнения, – это один из примеров простых программ, которые можно написать на 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 описано в отдельной статье.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Введение в Python

Поиск

Новое на сайте

Графический калькулятор квадратных уравнений на Python и Tkinter

Рассмотрим пример создания графического интерфейса (GUI) на Python. В качестве “жертвы” напишем простенькую программу – решатель квадратных уравнений. Наше задание мы разобъем на несколько частей.

Часть первая: функция решения квадратного уравнения.

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

Есть несколько способов решить квадратное уравнение, мы выберем решение через дискриминант.

Используя эту формулу мы можем вывести решение. Если дискриминант больше или равен нулю, то корни уравнения высчитываются по формуле:

Если же дискриминант меньше нуля, то уравнение не имеет решений.

Превратим данные формулы в код:

Чтобы все работало не забудьте импортировать функцию sqrt из модуля math.

Поскольку мы будем выводить результат в специально созданном виджете – мы сразу же вставляем полученный ответ в отформатированную строку и возвращаем ее.

Теперь пора переходить к созданию графической оболочки для нашего приложения.

Часть вторая: создаем GUI для программы

Для простоты будем создавать GUI встроенными средствами Python, поэтому импортируем все из библиотеки Tkinter:

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

Далее создаем само окно и размещаем на нем необходимые виджеты:

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

Отлично, программа работает. Осталось объяснить Python как связать эти две части.

Часть третья: объединяем все воедино

Задача перед нами стоит следующая – написать функцию, которая будет брать числа из полей для ввода, передавать их функции решения квадратного уравнения и выводить результат в поле для вывода. Конечно, все это можно реализовать в одной функции, но лучше разделить на несколько:

Функция вставки информации:

Функция inserter предельно проста: очищает поле для ввода и вставляет туда переданный ей аргумент value.

Напишем функцию обработки введенной информации. Назовем ее handler:

В зависимости от данных введенных в поля для ввода передает функции inserter либо результат решения уравнения, либо сообщение о неверно введенных данных.

Чтобы все работало, следует изменить строку создания виджета Button следующим образом:

Теперь можно спокойно пользоваться нашей программой:

Дискриминант больше нуля Дискриминант равен нулю
Дискриминант меньше нуля. Решений нет Введены не все аргументы

Часть четвертая: необязательная

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

Таким образом мы очищаем виджет, вызвавший данную функцию. Чтобы все работало, добавьте следующие строки после создания виджетов, но до размещения. Например, после строки a = Entry(. , но до строки a.grid(.

Готово. Программа работает, Вы великолепны!

Исходный код калькулятора квадратных уравнений с GUI на GitHub

[spoiler title=”источники:”]

http://younglinux.info/python/task/quadratic

http://pythonicway.com/component/content/article?id=14:python-tkinter-quadratic-equations

[/spoiler]

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

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

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

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

  • Программа

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

Программа, позволяющая находить корни квадратного уравнения, – это один из примеров простых программ, которые можно написать на 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 можно прочитать здесь.
  • Сделать проверку корректности ввода. Ведь пользователь вместо числа может ввести какую-нибудь строку, которая не будет корректно обработана. Про проверку на число описано в отдельной статье.

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

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

Placeholder

Placeholder

Решение квадратного уравнения с использованием дискриминанта на 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, если уравнение не имеет действительных корней.

Placeholder

Решение квадратного уравнения с использованием библиотеки 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.

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