Здравствуйте, дорогие друзья. Сегодня мы напишем простенький алгоритм на языке программирования Python . Естественно, существует огромное количество сайтов для подсчёта дискриминанта. Но я предлагаю вам блеснуть знаниями перед товарищами и вашими учителями информатики и математики и написать исходный код, считающий дискриминант.
Внимательно смотрим на скриншот и читаем комментарии.
Код на Python для решения дискриминанта
Далее сохраняем наш исходный код и запускаем написанную программу по нажатию клавиши F5 .
Вводим значение a,b,c такие, чтобы наш дискриминант был больше 0. В данном случае он получился 92 и будет найдено два корня
В повторном запуске программы мы специально вводим такие значения, чтобы дискриминант был равен 0. И у нас считается только один корень.
И в третьем запуске программы, мы пишем большие значения переменных a,c, чтобы дискриминант был меньше 0. В данном случае он равен -6116. Поэтому выводится сообщение «Корней нет».
Как решить квадратное уравнение с помощью Python
Вот такая вот не сложная, но достаточно полезная программа по решению квадратного уравнения и нахождению корней дискриминанта на Python , версия языка 3.8.2 .
Если информация была интересной для вас, то заходите на наш Ютуб-канал ПиМ [ZveKa] . Там много всего интересного. До новых встреч на просторах Яндекс Дзена.
Источник: dzen.ru
Как написать квадратное уравнение в python
Обратим внимание, что для данной программы коэффициент a не должен быть равен нулю. Иначе в первой ветке условного оператора будет происходить попытка деления на 0.
Если a = 0 , то квадратное уравнение превращается в линейное, которое решается иным способом. Оно всегда имеет один корень.
Квадратное уравнение
Программа, позволяющая находить корни квадратного уравнения, – это один из примеров простых программ, которые можно написать на 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 для Начинающих // Пайтон для новачків!
Все посчитано, найдены два корня, которые будут являться решением квадратного уравнения.
Дополнительно
Хотелось бы уделить внимание ещё одному моменту. Если дискриминант отрицательный, то действительных корней нет. Но будут комплексные корни. Если мы хотим их обрабатывать, то следует изменить конструкцию условных операторов следующим образом:
Тогда пример решения уравнения будет выглядеть следующим образом:
Как видим, получили два комплексных корня.
Этот простой код написанный на Python 3 можно для обучения программированию немного усложнить:
- Предлагать запрос в конце программы «Решить ещё одно уравнение (y/n): ». И если пользователь введет «y», то заново запросить коэффициенты. Это нужно делать в цикле. Подробнее о циклах в Python можно прочитать здесь.
- Сделать проверку корректности ввода. Ведь пользователь вместо числа может ввести какую-нибудь строку, которая не будет корректно обработана. Про проверку на число описано в отдельной статье.
Введение в 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
Источник: al-shell.ru
Численные методы: решение квадратного уравнения на Python
Квадратное уравнение легко решается аналитически, через дискриминант. Алгоритм решения легко можно запрограммировать на Python. Есть еще один способ решения уравнения — это использование численных методов.
Алгоритм решения уравнения численными методами подойдет для решения любого уравнения, не только квадратного. Давайте распишем сначала алгоритм решения на словах, а затем напишем программу.
Алгоритм решения квадратного уравнения
Допустим нужно решить квадратное уравнение
2 * x**2 + 3 * x — 5 = 0
Решаем следующим образом. Сначала используем алгоритм перебора. Затем используем алгоритм половинного деления.
Алгоритм перебора для нахождения отрезка неопределенности
- Определим отрезок внутри которого ожидаем найти корни уравнения. Например от -100 до 100
- Определим шаг с которым мы пройдемся по всему отрезку. Например 0,5.
- Пройтись в цикле по всему отрезку от -100 до 100 с шагом 0,5. Для каждого участка (например -100, -99,5) определить Y на концах участка.
- Если значения Y разных знаков, значит на этом участке есть один корень (точка где Y становится = 0). Если значения Y одного знака, то пропускаем этот участок. Таким образом находим все участки, где Y меняет знак. Такой участок назовем отрезком неопределенности
- Для каждого найденного участка применяем метод половинного деления.
Алгоритм половинного деления
- Участок, где Y меняет знак делим пополам
- Для середины участка определяем знак Y
- Появляются 2 участка: слева от середины и справа. Выбираем тот, где значения Y на концах разного знака. Далее работаем с ним: запоминаем этот участок и переходим к шагу 1.
Повторяем этот алгоритм пока размер учатка не станет меньше чем точность с которой нам нужно определить X. Например мы можем заранее задать точность 0,001
Вот пример выполнения первого алгоритма, который находит отрезок неопределенности:
a = float(input(«а = «)) b = float(input(«b = «)) c = float(input(«c = «)) shag = 0.005 p1 = -10 p2 = 10 x = p1 toch = 0.0001 while x<p2: y1 = a * x**2 + b * x + c x = x + shag y2 = a * x**2 + b * x + c if (y1>0 and y2<0) or (y1<0 and y2>0): print(«Отрезок неопределенности от » + str(x-shag) + » до » + str(x))
Вот полный текст программы, где для отрезка неопределенности находим корень уравнения:
a = float(input(«а = «)) b = float(input(«b = «)) c = float(input(«c = «)) shag = 0.005 p1 = -10 p2 = 10 x = p1 toch = 0.0001 while x0 and y2<0) or (y1<0 and y2>0): print(«Отрезок неопределенности от » + str(x-shag) + » до » + str(x)) x1=x-shag x2=x delta = x2-x1 while delta > toch: x0 = x1+delta/2 y0=a * x0**2 + b * x0 + c y1=a * x1**2 + b * x1 + c if (y10) or (y1>0 and y0<0): x1 = x1 x2 = x0 else: x1 = x0 x2 = x2 delta = x2-x1 print(«Результат x = » + str(x1))