Алгоритм нахождения действительных корней квадратного уравнения

Один из методов решения квадратных уравнений

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

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

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

procedure SqRoot(Editi,Edit2,Edit3:tEdit;Label2:tLabel);
var
a,b,c:real;
d:real;
xl,x2:real;
begin
<Ввод исходных данных>a:=StrToFloat(Editl.text);
b:=StrToFloat(Edit2.text);
с:=StrToFloat(Edj.t3.text);
< Вычисление дискриминанта >d:=Sqr(b)-4*a*c;
if d=0 then begin
Label2.color:=clRed;
Label2.font.color:=clRed;
Label2.caption:=’Дискриминант меньше нуля.’+#13+
‘Уравнение не имеет корней.’ end else
begin

х1:=(-b+Sqrt(d))/(2*a);
x2:=(-b-Sqrt(d))/(2*а);

Label2.font.color:=clBlack;
Label 2.caption=’Корни уравнения:’ +#13+’xl=1+FloatToStr(xl)
+#13+’x2=’+FloatToStr(x2);
end;
end.

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

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

Решение квадратных уравнений средствами Visual Basic

Задача: Дано квадратное уравнение общего вида: ax 2 +bx+c=0. Ввести в память компьютера числовые коэффициенты: a, b, c, выполнить необходимый анализ введенной информации согласно известному из курса средней школы алгоритму решения квадратного уравнения: найти дискриминант d=b 2 -4ac и, проанализировав его знак, найти все действительные корни, если знак дискриминанта положительный, или сообщить о том, что действительных корней нет, если знак дискриминанта отрицательный.

Начать составление проекта решения данной задачи необходимо с ответа на вопрос: что нужно поместить на форму Form1?

Поместим на форму две кнопки: CommandButton1 и CommandButton2.

Для этого нужно воспользоваться Панелью элементов (объектов) управления General, которая расположена в левой части основного окна компилятора Visual Basic.

Первая кнопка CommandButton1 предназначается для начала работы программы согласно следующему алгоритму:

  1. ввод коэффициентов исходного уравнения a, b, c;
  2. расчет дискриминанта d=b 2 — 4ac;
  3. анализ знака дискриминанта, вычисление корней уравнения и вывод их на форму, если знак дискриминанта d>0 (положительный);
  4. вывод сообщения: «Решений нет», если знак дискриминанта d 2 -5x+6=0.

Далее рассмотрим процесс решения второго квадратного уравнения: 10x 2 +5x+200=0.

В окне InputBox вводим значение первого коэффициента уравнения a=10.

Ввод первого коэффициента a завершается нажатием кнопки Ok.

Аналогично в окне InputBox вводим значение второго коэффициента уравнения b=5.

Ввод второго коэффициента b так же завершается нажатием соответствующей кнопки Ok.

Наконец, в окне InputBox вводим значение третьего коэффициента нового уравнения c=200.

Ввод третьего коэффициента c так же завершается нажатием соответствующей кнопки Ok.

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

И, наконец, рассмотрим процесс решения третьего квадратного уравнения: x 2 -8x+16=0.

Это уравнение имеет двукратный корень, так как его дискриминант d=0. Как и в двух предыдущих случаях, вводим коэффициенты квадратного уравнения. Первым вводим коэффициент a=1.

Далее вводим второй коэффициент уравнения b= –8.

Третий коэффициент уравнения c=16 вводим в последнюю очередь.

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

Программа для решения квадратных уравнений на C++

Довольно часто в пособиях по программированию встречаются задания по нахождению решений каких-нибудь математических уравнений. Задача нахождения корней квадратного уравнения — это довольно тривиальная задача, как и многие другие задачи. Решается она очень просто при помощи листа бумаги и ручки, но решение можно автоматизировать посредством написания прикладной программы и её использования. В этой статье мы напишем такую программу.

Алгоритм решения квадратного уравнения

Многие знают, что уравнение вида ax 2 + bx + c = 0 , где a не равно 0, называют квадратным уравнением.

Существуют различные способы решения квадратных уравнений, но мы рассмотрим решение через дискриминант.

Обозначается дискриминант буквой D . Из школьного курса знаем, что D = b 2 — 4ac .

Существует несколько условий:

  • Если D > 0, то решение имеет 2 различных вещественных корня.
  • Если D = 0, то оба вещественных корня равны.
  • Если D для ввода\вывода в консоли, #include для работы с математическими функциями и область using namespace std;

Просим пользователя ввести значения переменных и сохраняем каждое значение

Проверяем условие, если дискриминант больше или равен 0, то находим корни и выводим

в противном случае выводим сообщение

На этом всё, осталось скомпилировать, запустить и проверить. Запускаем и вводим данные, чтобы D был меньше 0

В этом случае D = 3*3 — 4*2*3 = -15, а это меньше 0, значит ответ программа дала верный.

Ответы тоже верны. Программа работает правильно.

Ниже представлен весь листинг программы для нахождения корней квадратного уравнения на C++

Для вас это может быть интересно:

Программа для решения квадратных уравнений на C++ : 24 комментария

Программировать так сложно…

  1. Nicknixer Автор записи 15.10.2016

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

Доброго времени суток! Помогите пожалуйста написать программу, которая считает сколько символов в ряде двумерного массива. То есть , например массив 5 на 5, сколько символов в 1 ряде, сколько во 2 и т.д.

Ответил вам по электронной почте

Критику принимаете? 🙂
Программа дырявая как сито.

Если число очень маленькое, но положительное, например 10^(-20) — у вас будет переполнение или типо того. Оператор > проверяет знак числа (это отдельный бит), а оператор == для дробных чисел не имеет смысла, т.к. в младших разрядах числа обычно находится какой-нибудь мусор, который при таком сравнении дает false.

x = ( -1*b + sqrt(b*b — 4*a*c) ) / (2 * a);
x = ( -1*b — sqrt(b*b — 4*a*c) ) / (2 * a);

Тут есть три вопроса:
1) зачем два раза вычислять одно и тоже (я про корень)
2) что делать если мне корни надо как-то использовать, а не просто вывести (тут есть проблема, ведь у меня то один корень — то два). Чтобы лучше понять в чем проблема — попробуйте вынести вычисление корней в отдельную функцию. У вас то вообще, если корень один — то их выведется все равно два, одинаковых.
3) в переменной «a» может быть ноль (или близкое к нулю число) — при этом мы получим деление на ноль (а точнее, переполнение).

Но это ведь еще не все. Что будет если и «a» и «b» равны нулю? — тебе надо рассмотреть два варианта — если c = 0 (условно, близко к нулю), то корней бесконечно много. А если c != 0, то корней нет.

Вообще, эта задача — прекрасный пример для юнит-тестирования и демонстрации принципов разработки через тестирование. Именно его я рассматривал в своей статье по теме тестирования: Юнит-тестирование. Пример. Boost Unit Test. Дело в том, что тут куча вариантов сделать ошибку, при этом их понимание приходит не сразу, т.е. школьник решая задачу напишет по формуле которой учили (ну и вот как у вас). А потом надо разбираться и смотреть как программа может сломаться, при этом разрабатывать тесты.

  1. Николай Сергейчук Автор записи 09.02.2017

Принимаем 🙂
Согласен с вами во всём! Программу можно реализовать намного лучше, используя различные проверки и валидацию входных данных.
Однако, статья рассчитана на аудиторию, которая только начинает познавать программирование или делает лабораторную. 🙂 Чтобы людям легче было понять, реализация данной программы упрощена до невозможности. И, возможно, несправедливо было с моей стороны не предупредить их о возможных ошибках в работе программы, которые могут вскрыться позже, если подать на вход определенные значения.
Кстати, у вас интересная статья по тестированию!

Николай, доброго времени суток! Можете помочь с написанием програмки в с++? 1-1/2!+1/3!-1/4!+1/5! и так до 1/100! ? Чтобы при заднии в строке номера члена последовательности выдавал сумму до него по такой вот формуле? Буду очень благодарен!

Пожалуйста подскажите как ввести экран правильный ответ дискриминанта

Помогите решить в Dev C++
Sqrt x^2+1+sqrt|x|,x0

Здравствуйте, можете помочь с решением биквадратного и триквадратного уравнения?

#include
using namespace std;
int main()
<
/*Решение квадратных уравнений*/
setlocale(0, «»);
cout a;
cout <> b;
cout <> c;
D = pow(b, 2) — 4 * a * c;
cout

ну и? если даже тупо скопировать код и вставить его в cpp.sh , ничего не работает. поебота какая то этот с++

Уважаемая, Лена! Я, надеюсь, вы знаете, что код программы, написанной на языке программирования C++ нельзя тупо вставить в блокнот и сохранить под названием «cpp.sh»? Если не знали, то я, видимо, открыл для вас Америку!

помогите решить. заданы 3 перемены a.b.c записать вы радение на С
< 7a/b+2a, если a=b,
Х= < -34, если a>b,
< 3a/(2b-100), если a>b и а не равно != с

iconcerts где забыл
#include

Я ради интереса написал программу нахождения корней квадратного уравнения на С++, с выводом корней как в десятичном виде, так и в виде простой дроби (причём уже сокращённой), потому что выводя корни в десятичном виде программа их одновременно сокращает и округляет и 1/3 превращается в 0.333333 хотя на самом деле 0.333333 (3), то есть для проверки правильно ли нашёл корни ваш ребёнок, вы с получите что-то типа: X1= 0.285714; X2=0.214286, а на самом деле это будет X1=2/7; X2=3/14, кроме того, если корень из дискриминанта не получается целым числом, вы уже получите двойную неточность: сначала при извлечении корня программа отсечёт значение до 4-6 цифр после запятой с округлением, а затем сделает то же самое при делении числителя на знаменатель. Я и здесь сделал вывод корней в двух значениях: в десятичном и в виде выражения X1= (-b + sqrt(D))/(2*a); X2= (-b — sqrt(D))/(2*a), то есть выводится примерно вот так X1=-5+sqrt(21)/2; X2=-5-sqrt(21)/2 с одновременным разложением дискриминанта под корнем на множители, вынесением этих множителей из-под корня, если они выносятся нацело, их перемножением и дальнейшим сокращением. Вот, например, имеем a=3, b=15, c=3, при решении получаем D=189 программа выдаёт десятичные корни X1= -0.208712 и X2= -4.79129, а в виде выражения имеем: X1= -5+sqrt(21)/2, то есть первоначально получаем: X1= -15+sqrt(189)/6, -> 189=21*9 -> -15+3sqrt(21)/6 далее идёт сокращение на 3 и итог -5+sqrt(21)/2

День добрый.
Недавно начал изучать C++. Решил попробовать написать решение квадратного уравнения именно через оператор вида «условие ? выполняется : не выполняется». Т.е. если условие выполняется, то имеем два решения (даже если d = 0, то тоже должно быть два решения x1 = x2), если d a;
std::cout <> b;
std::cout <> c;
d = pow(b, 2) — 4 * a*c;
d >= 0 ? xfst = ((-b + sqrt(d)) / double(2 * a)) , xscd = ((-b — sqrt(d)) / double(2 * a)) : std::cout

  1. Николай Сергейчук Автор записи 12.02.2020

if (d >= 0) <
xfst = ((-b + sqrt(d)) / double(2 * a));
xscd = ((-b — sqrt(d)) / double(2 * a));
std::cout

Создать программу для решения квадратного уравнения.
У меня не получаеться, но и копифейсом я не хочу заниматься.
Прошу помогите. Заранее спасибо.

Здравствуйте! Как решить эту задачу? Приведенный пример сверху не подходит .

Давайте напишем действительно полезную программу! Вы наверняка уже устали считать дискриминант для квадратных уравнений? Давайте автоматизируем этот процесс.

На вход программы подаются три целых числа — коэффициенты уравнения ax^2 + bx + c = 0ax
2
+bx+c=0

Гарантируется, что a \neq 0a

=0.

Выведите через пробел корни уравнения в порядке убывания и округленные «вниз». Если уравнение имеет корень кратности 2 — выведите одно число. Если у уравнения нет действительных корней — выведите «NO»

Для извлечения корней используйте функцию sqrt. Она содержится в библиотеке сmath ( она уже импортирована в коде ). Для округления воспользуйтесь функцией floor ( из той же библиотеки ).

1 0 -4
Sample Output 1:

2 -2
Sample Input 2:

1 2 2
Sample Output 2:

Пожалуйста подскажите как ввести экран ответ дискриминанта

Пожалуйста подскажите как ввести на екран ответь дискриминанта

Подскажите как правильно решить?
Обчислити z = (x1 + y1) / (x2 + y2), де х1, х2 — коренi рiвняння 2х^2 + x — 4 =0.
y1, y2 — коренi рiвняння ay^2 + 2y — 1 = 0. Усi коренi дiйснi.

using namespace std;

int main() <
double a = 2, b, c = -4;
int x1, x2;
double a1, b1 = 2, c1 = -1;
int y1, y2;
float z;

if((b*b — 4*a*c) >= 0 ) <
x1 = ( -1*b + sqrt(b*b — 4*a*c)) / (2 * a);
cout a1;

if((b1*b1 — 4*a1*c1) >= 0) <
y1 = ( -1*b1 + sqrt(b1*b1 — 4*a1*c1)) / (2 * a1);
cout = 0, y1 >= 0, y2 >= 0) <
z = (x1 + y1)/(x2 +y2);
cout

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

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.

Решение квадратных уравнений: формула корней, примеры

В продолжение темы «Решение уравнений» материал данной статьи познакомит вас с квадратными уравнениями.

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

Квадратное уравнение, его виды

Квадратное уравнение – это уравнение, записанное как a · x 2 + b · x + c = 0 , где x – переменная, a , b и c – некоторые числа, при этом a не есть нуль.

Зачастую квадратные уравнения также носят название уравнений второй степени, поскольку по сути квадратное уравнение есть алгебраическое уравнение второй степени.

Приведем пример для иллюстрации заданного определения: 9 · x 2 + 16 · x + 2 = 0 ; 7 , 5 · x 2 + 3 , 1 · x + 0 , 11 = 0 и т.п. – это квадратные уравнения.

Числа a , b и c – это коэффициенты квадратного уравнения a · x 2 + b · x + c = 0 , при этом коэффициент a носит название первого, или старшего, или коэффициента при x 2 , b – второго коэффициента, или коэффициента при x , а c называют свободным членом.

К примеру, в квадратном уравнении 6 · x 2 − 2 · x − 11 = 0 старший коэффициент равен 6 , второй коэффициент есть − 2 , а свободный член равен − 11 . Обратим внимание на тот факт, что, когда коэффициенты b и/или c являются отрицательными, то используется краткая форма записи вида 6 · x 2 − 2 · x − 11 = 0 , а не 6 · x 2 + ( − 2 ) · x + ( − 11 ) = 0 .

Уточним также такой аспект: если коэффициенты a и/или b равны 1 или − 1 , то явного участия в записи квадратного уравнения они могут не принимать, что объясняется особенностями записи указанных числовых коэффициентов. К примеру, в квадратном уравнении y 2 − y + 7 = 0 старший коэффициент равен 1 , а второй коэффициент есть − 1 .

Приведенные и неприведенные квадратные уравнения

По значению первого коэффициента квадратные уравнения подразделяют на приведенные и неприведенные.

Приведенное квадратное уравнение – это квадратное уравнение, где старший коэффициент равен 1 . При иных значениях старшего коэффициента квадратное уравнение является неприведенным.

Приведем примеры: квадратные уравнения x 2 − 4 · x + 3 = 0 , x 2 − x − 4 5 = 0 являются приведенными, в каждом из которых старший коэффициент равен 1 .

9 · x 2 − x − 2 = 0 — неприведенное квадратное уравнение, где первый коэффициент отличен от 1 .

Любое неприведенное квадратное уравнение возможно преобразовать в приведенное уравнение, если разделить обе его части на первый коэффициент (равносильное преобразование). Преобразованное уравнение будет иметь такие же корни, как и заданное неприведенное уравнение или так же не иметь корней вовсе.

Рассмотрение конкретного примера позволит нам наглядно продемонстрировать выполнение перехода от неприведенного квадратного уравнения к приведенному.

Задано уравнение 6 · x 2 + 18 · x − 7 = 0 . Необходимо преобразовать исходное уравнение в приведенную форму.

Решение

Cогласно указанной выше схеме разделим обе части исходного уравнения на старший коэффициент 6 . Тогда получим: ( 6 · x 2 + 18 · x − 7 ) : 3 = 0 : 3 , и это то же самое, что: ( 6 · x 2 ) : 3 + ( 18 · x ) : 3 − 7 : 3 = 0 и далее: ( 6 : 6 ) · x 2 + ( 18 : 6 ) · x − 7 : 6 = 0 . Отсюда: x 2 + 3 · x — 1 1 6 = 0 . Таким образом, получено уравнение, равносильное заданному.

Ответ: x 2 + 3 · x — 1 1 6 = 0 .

Полные и неполные квадратные уравнения

Обратимся к определению квадратного уравнения. В нем мы уточнили, что a ≠ 0 . Подобное условие необходимо, чтобы уравнение a · x 2 + b · x + c = 0 было именно квадратным, поскольку при a = 0 оно по сути преобразуется в линейное уравнение b · x + c = 0 .

В случае же, когда коэффициенты b и c равны нулю (что возможно, как по отдельности, так и совместно), квадратное уравнение носит название неполного.

Неполное квадратное уравнение – такое квадратное уравнение a · x 2 + b · x + c = 0 , где хотя бы один из коэффициентов b и c (или оба) равен нулю.

Полное квадратное уравнение – квадратное уравнение, в котором все числовые коэффициенты не равны нулю.

Порассуждаем, почему типам квадратных уравнений даны именно такие названия.

При b = 0 квадратное уравнение примет вид a · x 2 + 0 · x + c = 0 , что то же самое, что a · x 2 + c = 0 . При c = 0 квадратное уравнение записано как a · x 2 + b · x + 0 = 0 , что равносильно a · x 2 + b · x = 0 . При b = 0 и c = 0 уравнение примет вид a · x 2 = 0 . Уравнения, которые мы получили, отличны от полного квадратного уравнения тем, что в их левых частях не содержится либо слагаемого с переменной x , либо свободного члена, либо обоих сразу. Собственно, этот факт и задал название такому типу уравнений – неполное.

Например, x 2 + 3 · x + 4 = 0 и − 7 · x 2 − 2 · x + 1 , 3 = 0 – это полные квадратные уравнения; x 2 = 0 , − 5 · x 2 = 0 ; 11 · x 2 + 2 = 0 , − x 2 − 6 · x = 0 – неполные квадратные уравнения.

Решение неполных квадратных уравнений

Заданное выше определение дает возможность выделить следующие виды неполных квадратных уравнений:

  • a · x 2 = 0 , такому уравнению соответствуют коэффициенты b = 0 и c = 0 ;
  • a · x 2 + c = 0 при b = 0 ;
  • a · x 2 + b · x = 0 при c = 0 .

Рассмотрим последовательно решение каждого вида неполного квадратного уравнения.

Решение уравнения a·x 2 =0

Как уже было указано выше, такому уравнению отвечают коэффициенты b и c , равные нулю. Уравнение a · x 2 = 0 возможно преобразовать в равносильное ему уравнение x 2 = 0 , которое мы получим, поделив обе части исходного уравнения на число a , не равное нулю. Очевидный факт, что корень уравнения x 2 = 0 это нуль, поскольку 0 2 = 0 . Иных корней это уравнение не имеет, что объяснимо свойствами степени: для любого числа p , не равного нулю, верно неравенство p 2 > 0 , из чего следует, что при p ≠ 0 равенство p 2 = 0 никогда не будет достигнуто.

Таким образом, для неполного квадратного уравнение a · x 2 = 0 существует единственный корень x = 0 .

Для примера решим неполное квадратное уравнение − 3 · x 2 = 0 . Ему равносильно уравнение x 2 = 0 , его единственным корнем является x = 0 , тогда и исходное уравнение имеет единственный корень — нуль.

Кратко решение оформляется так:

− 3 · x 2 = 0 , x 2 = 0 , x = 0 .

Решение уравнения a · x 2 + c = 0

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

  • переносим c в правую часть, что дает уравнение a · x 2 = − c ;
  • делим обе части уравнения на a , получаем в итоге x = — c a .

Наши преобразования являются равносильными, соответственно полученное уравнение также равносильно исходному, и этот факт дает возможность делать вывод о корнях уравнения. От того, каковы значения a и c зависит значение выражения — c a : оно может иметь знак минус (допустим, если a = 1 и c = 2 , тогда — c a = — 2 1 = — 2 ) или знак плюс (например, если a = − 2 и c = 6 , то — c a = — 6 — 2 = 3 ); оно не равно нулю, поскольку c ≠ 0 . Подробнее остановимся на ситуациях, когда — c a 0 и — c a > 0 .

В случае, когда — c a 0 , уравнение x 2 = — c a не будет иметь корней. Утверждая это, мы опираемся на то, что квадратом любого числа является число неотрицательное. Из сказанного следует, что при — c a 0 ни для какого числа p равенство p 2 = — c a не может быть верным.

Все иначе, когда — c a > 0 : вспомним о квадратном корне, и станет очевидно, что корнем уравнения x 2 = — c a будет число — c a , поскольку — c a 2 = — c a . Нетрудно понять, что число — — c a — также корень уравнения x 2 = — c a : действительно, — — c a 2 = — c a .

Прочих корней уравнение не будет иметь. Мы можем это продемонстрировать, используя метод от противного. Для начала зададим обозначения найденных выше корней как x 1 и − x 1 . Выскажем предположение, что уравнение x 2 = — c a имеет также корень x 2 , который отличается от корней x 1 и − x 1 . Мы знаем, что, подставив в уравнение вместо x его корни, преобразуем уравнение в справедливое числовое равенство.

Для x 1 и − x 1 запишем: x 1 2 = — c a , а для x 2 — x 2 2 = — c a . Опираясь на свойства числовых равенств, почленно вычтем одно верное равенство из другого, что даст нам: x 1 2 − x 2 2 = 0 . Используем свойства действий с числами, чтобы переписать последнее равенство как ( x 1 − x 2 ) · ( x 1 + x 2 ) = 0 . Известно, что произведение двух чисел есть нуль тогда и только тогда, когда хотя бы одно из чисел является нулем. Из сказанного следует, что x 1 − x 2 = 0 и/или x 1 + x 2 = 0 , что то же самое, x 2 = x 1 и/или x 2 = − x 1 . Возникло очевидное противоречие, ведь вначале было условлено, что корень уравнения x 2 отличается от x 1 и − x 1 . Так, мы доказали, что уравнение не имеет иных корней, кроме x = — c a и x = — — c a .

Резюмируем все рассуждения выше.

Неполное квадратное уравнение a · x 2 + c = 0 равносильно уравнению x 2 = — c a , которое:

  • не будет иметь корней при — c a 0 ;
  • будет иметь два корня x = — c a и x = — — c a при — c a > 0 .

Приведем примеры решения уравнений a · x 2 + c = 0 .

Задано квадратное уравнение 9 · x 2 + 7 = 0 . Необходимо найти его решение.

Решение

Перенесем свободный член в правую часть уравнения, тогда уравнение примет вид 9 · x 2 = − 7 .
Разделим обе части полученного уравнения на 9 , придем к x 2 = — 7 9 . В правой части мы видим число со знаком минус, что означает: у заданного уравнения нет корней. Тогда и исходное неполное квадратное уравнение 9 · x 2 + 7 = 0 не будет иметь корней.

Ответ: уравнение 9 · x 2 + 7 = 0 не имеет корней.

Необходимо решить уравнение − x 2 + 36 = 0 .

Решение

Перенесем 36 в правую часть: − x 2 = − 36 .
Разделим обе части на − 1 , получим x 2 = 36 . В правой части — положительное число, отсюда можно сделать вывод, что x = 36 или x = — 36 .
Извлечем корень и запишем окончательный итог: неполное квадратное уравнение − x 2 + 36 = 0 имеет два корня x = 6 или x = − 6 .

Ответ: x = 6 или x = − 6 .

Решение уравнения a·x 2 +b·x=0

Разберем третий вид неполных квадратных уравнений, когда c = 0 . Чтобы найти решение неполного квадратного уравнения a · x 2 + b · x = 0 , воспользуемся методом разложения на множители. Разложим на множители многочлен, который находится в левой части уравнения, вынеся за скобки общий множитель x . Этот шаг даст возможность преобразовать исходное неполное квадратное уравнение в равносильное ему x · ( a · x + b ) = 0 . А это уравнение, в свою очередь, равносильно совокупности уравнений x = 0 и a · x + b = 0 . Уравнение a · x + b = 0 линейное, и корень его: x = − b a .

Таким образом, неполное квадратное уравнение a · x 2 + b · x = 0 будет иметь два корня x = 0 и x = − b a .

Закрепим материал примером.

Необходимо найти решение уравнения 2 3 · x 2 — 2 2 7 · x = 0 .

Решение

Вынесем x за скобки и получим уравнение x · 2 3 · x — 2 2 7 = 0 . Это уравнение равносильно уравнениям x = 0 и 2 3 · x — 2 2 7 = 0 . Теперь следует решить полученное линейное уравнение: 2 3 · x = 2 2 7 , x = 2 2 7 2 3 .

Далее осуществим деление смешанного числа на обыкновенную дробь и определяем, что x = 3 3 7 . Таким образом, корни исходного уравнения это: x = 0 и x = 3 3 7 .

Кратко решение уравнения запишем так:

2 3 · x 2 — 2 2 7 · x = 0 x · 2 3 · x — 2 2 7 = 0

x = 0 или 2 3 · x — 2 2 7 = 0

x = 0 или x = 3 3 7

Ответ: x = 0 , x = 3 3 7 .

Дискриминант, формула корней квадратного уравнения

Для нахождения решения квадратных уравнений существует формула корней:

x = — b ± D 2 · a , где D = b 2 − 4 · a · c – так называемый дискриминант квадратного уравнения.

Запись x = — b ± D 2 · a по сути означает, что x 1 = — b + D 2 · a , x 2 = — b — D 2 · a .

Нелишним будет понимать, как была выведена указанная формула и каким образом ее применять.

Вывод формулы корней квадратного уравнения

Пускай перед нами стоит задача решить квадратное уравнение a · x 2 + b · x + c = 0 . Осуществим ряд равносильных преобразований:

  • разделим обе части уравнения на число a, отличное от нуля, получим приведенное квадратное уравнение: x 2 + b a · x + c a = 0 ;
  • выделим полный квадрат в левой части получившегося уравнения:
    x 2 + b a · x + c a = x 2 + 2 · b 2 · a · x + b 2 · a 2 — b 2 · a 2 + c a = = x + b 2 · a 2 — b 2 · a 2 + c a
    После этого уравнения примет вид: x + b 2 · a 2 — b 2 · a 2 + c a = 0 ;
  • теперь возможно сделать перенос двух последних слагаемых в правую часть, сменив знак на противоположный, после чего получаем: x + b 2 · a 2 = b 2 · a 2 — c a ;
  • наконец, преобразуем выражение, записанное в правой части последнего равенства:
    b 2 · a 2 — c a = b 2 4 · a 2 — c a = b 2 4 · a 2 — 4 · a · c 4 · a 2 = b 2 — 4 · a · c 4 · a 2 .

Таким образом, мы пришли к уравнению x + b 2 · a 2 = b 2 — 4 · a · c 4 · a 2 , равносильному исходному уравнению a · x 2 + b · x + c = 0 .

Решение подобных уравнений мы разбирали в предыдущих пунктах (решение неполных квадратных уравнений). Уже полученный опыт дает возможность сделать вывод касательно корней уравнения x + b 2 · a 2 = b 2 — 4 · a · c 4 · a 2 :

  • при b 2 — 4 · a · c 4 · a 2 0 уравнение не имеет действительных решений;
  • при b 2 — 4 · a · c 4 · a 2 = 0 уравнение имеет вид x + b 2 · a 2 = 0 , тогда x + b 2 · a = 0 .

Отсюда очевиден единственный корень x = — b 2 · a ;

  • при b 2 — 4 · a · c 4 · a 2 > 0 верным будет: x + b 2 · a = b 2 — 4 · a · c 4 · a 2 или x = b 2 · a — b 2 — 4 · a · c 4 · a 2 , что то же самое, что x + — b 2 · a = b 2 — 4 · a · c 4 · a 2 или x = — b 2 · a — b 2 — 4 · a · c 4 · a 2 , т.е. уравнение имеет два корня.

Возможно сделать вывод, что наличие или отсутствие корней уравнения x + b 2 · a 2 = b 2 — 4 · a · c 4 · a 2 (а значит и исходного уравнения) зависит от знака выражения b 2 — 4 · a · c 4 · a 2 , записанного в правой части. А знак этого выражения задается знаком числителя, (знаменатель 4 · a 2 всегда будет положителен), то есть, знаком выражения b 2 − 4 · a · c . Этому выражению b 2 − 4 · a · c дано название — дискриминант квадратного уравнения и определена в качестве его обозначения буква D . Здесь можно записать суть дискриминанта – по его значению и знаку делают вывод, будет ли квадратное уравнение иметь действительные корни, и, если будет, то каково количество корней — один или два.

Вернемся к уравнению x + b 2 · a 2 = b 2 — 4 · a · c 4 · a 2 . Перепишем его, используя обозначение дискриминанта: x + b 2 · a 2 = D 4 · a 2 .

Вновь сформулируем выводы:

  • при D 0 уравнение не имеет действительных корней;
  • при D = 0 уравнение имеет единственный корень x = — b 2 · a ;
  • при D > 0 уравнение имеет два корня: x = — b 2 · a + D 4 · a 2 или x = — b 2 · a — D 4 · a 2 . Эти корни на основе свойства радикалов возможно записать в виде: x = — b 2 · a + D 2 · a или — b 2 · a — D 2 · a . А, когда раскроем модули и приведем дроби к общему знаменателю, получим: x = — b + D 2 · a , x = — b — D 2 · a .

Так, результатом наших рассуждений стало выведение формулы корней квадратного уравнения:

x = — b + D 2 · a , x = — b — D 2 · a , дискриминант D вычисляется по формуле D = b 2 − 4 · a · c .

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

Алгоритм решения квадратных уравнений по формулам корней

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

В основной же массе случаев обычно подразумевается поиск не комплексных, а действительных корней квадратного уравнения. Тогда оптимально перед тем, как использовать формулы корней квадратного уравнения, сначала определить дискриминант и удостовериться, что он не является отрицательным (в ином случае сделаем вывод, что у уравнения нет действительных корней), а после приступить к вычислению значения корней.

Рассуждения выше дают возможность сформулировать алгоритм решения квадратного уравнения.

Чтобы решить квадратное уравнение a · x 2 + b · x + c = 0 , необходимо:

  • по формуле D = b 2 − 4 · a · c найти значение дискриминанта;
  • при D 0 сделать вывод об отсутствии у квадратного уравнения действительных корней;
  • при D = 0 найти единственный корень уравнения по формуле x = — b 2 · a ;
  • при D > 0 определить два действительных корня квадратного уравнения по формуле x = — b ± D 2 · a .

Отметим, что, когда дискриминант есть нуль, можно использовать формулу x = — b ± D 2 · a , она даст тот же результат, что и формула x = — b 2 · a .

Примеры решения квадратных уравнений

Приведем решение примеров при различных значениях дискриминанта.

Необходимо найти корни уравнения x 2 + 2 · x − 6 = 0 .

Решение

Запишем числовые коэффициенты квадратного уравнения: a = 1 , b = 2 и c = − 6 . Далее действуем по алгоритму, т.е. приступим к вычислению дискриминанта, для чего подставим коэффициенты a , b и c в формулу дискриминанта: D = b 2 − 4 · a · c = 2 2 − 4 · 1 · ( − 6 ) = 4 + 24 = 28 .

Итак, мы получили D > 0 , а это означает, что исходное уравнение будет иметь два действительных корня.
Для их нахождения используем формулу корня x = — b ± D 2 · a и, подставив соответствующие значения, получим: x = — 2 ± 28 2 · 1 . Упростим полученное выражение, вынеся множитель за знак корня с последующим сокращением дроби:

x = — 2 + 2 · 7 2 или x = — 2 — 2 · 7 2

x = — 1 + 7 или x = — 1 — 7

Ответ: x = — 1 + 7 ​​​​​​, x = — 1 — 7 .

Необходимо решить квадратное уравнение − 4 · x 2 + 28 · x − 49 = 0 .

Решение

Определим дискриминант: D = 28 2 − 4 · ( − 4 ) · ( − 49 ) = 784 − 784 = 0 . При таком значении дискриминанта исходное уравнение будет иметь лишь один корень, определяемый по формуле x = — b 2 · a .

x = — 28 2 · ( — 4 ) x = 3 , 5

Ответ: x = 3 , 5 .

Необходимо решить уравнение 5 · y 2 + 6 · y + 2 = 0

Решение

Числовые коэффициенты этого уравнения будут: a = 5 , b = 6 и c = 2 . Используем эти значения для нахождения дискриминанта: D = b 2 − 4 · a · c = 6 2 − 4 · 5 · 2 = 36 − 40 = − 4 . Вычисленный дискриминант отрицателен, таким образом, исходное квадратное уравнение не имеет действительных корней.

В случае, когда стоит задача указать комплексные корни, применим формулу корней, выполняя действия с комплексными числами:

x = — 6 + 2 · i 10 или x = — 6 — 2 · i 10 ,

x = — 3 5 + 1 5 · i или x = — 3 5 — 1 5 · i .

Ответ: действительные корни отсутствуют; комплексные корни следующие: — 3 5 + 1 5 · i , — 3 5 — 1 5 · i .

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

Формула корней для четных вторых коэффициентов

Формула корней x = — b ± D 2 · a ( D = b 2 − 4 · a · c ) дает возможность получить еще одну формулу, более компактную, позволяющую находить решения квадратных уравнений с четным коэффициентом при x (либо с коэффициентом вида 2 · n , к примеру, 2 · 3 или 14 · ln 5 = 2 · 7 · ln 5 ). Покажем, как выводится эта формула.

Пусть перед нами стоит задача найти решение квадратного уравнения a · x 2 + 2 · n · x + c = 0 . Действуем по алгоритму: определяем дискриминант D = ( 2 · n ) 2 − 4 · a · c = 4 · n 2 − 4 · a · c = 4 · ( n 2 − a · c ) , а затем используем формулу корней:

x = — 2 · n ± D 2 · a , x = — 2 · n ± 4 · n 2 — a · c 2 · a , x = — 2 · n ± 2 n 2 — a · c 2 · a , x = — n ± n 2 — a · c a .

Пусть выражение n 2 − a · c будет обозначено как D 1 (иногда его обозначают D ‘ ). Тогда формула корней рассматриваемого квадратного уравнения со вторым коэффициентом 2 · n примет вид:

x = — n ± D 1 a , где D 1 = n 2 − a · c .

Легко увидеть, что что D = 4 · D 1 , или D 1 = D 4 . Иначе говоря, D 1 – это четверть дискриминанта. Очевидно, что знак D 1 такой же, как знак D , а значит знак D 1 также может служить индикатором наличия или отсутствия корней квадратного уравнения.

Таким образом, чтобы найти решение квадратного уравнения со вторым коэффициентом 2 · n , необходимо:

  • найти D 1 = n 2 − a · c ;
  • при D 1 0 сделать вывод, что действительных корней нет;
  • при D 1 = 0 определить единственный корень уравнения по формуле x = — n a ;
  • при D 1 > 0 определить два действительных корня по формуле x = — n ± D 1 a .

Необходимо решить квадратное уравнение 5 · x 2 − 6 · x − 32 = 0 .

Решение

Второй коэффициент заданного уравнения можем представить как 2 · ( − 3 ) . Тогда перепишем заданное квадратное уравнение как 5 · x 2 + 2 · ( − 3 ) · x − 32 = 0 , где a = 5 , n = − 3 и c = − 32 .

Вычислим четвертую часть дискриминанта: D 1 = n 2 − a · c = ( − 3 ) 2 − 5 · ( − 32 ) = 9 + 160 = 169 . Полученное значение положительно, это означает, что уравнение имеет два действительных корня. Определим их по соответствующей формуле корней:

x = — n ± D 1 a , x = — — 3 ± 169 5 , x = 3 ± 13 5 ,

x = 3 + 13 5 или x = 3 — 13 5

x = 3 1 5 или x = — 2

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

Ответ: x = 3 1 5 или x = — 2 .

Упрощение вида квадратных уравнений

Иногда существует возможность оптимизировать вид исходного уравнения, что позволит упростить процесс вычисления корней.

К примеру, квадратное уравнение 12 · x 2 − 4 · x − 7 = 0 явно удобнее для решения, чем 1200 · x 2 − 400 · x − 700 = 0 .

Чаще упрощение вида квадратного уравнения производится действиями умножения или деления его обеих частей на некое число. К примеру, выше мы показали упрощенную запись уравнения 1200 · x 2 − 400 · x − 700 = 0 , полученную делением обеих его частей на 100 .

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

Как пример используем квадратное уравнение 12 · x 2 − 42 · x + 48 = 0 . Определим НОД абсолютных величин его коэффициентов: НОД ( 12 , 42 , 48 ) = НОД(НОД ( 12 , 42 ) , 48 ) = НОД ( 6 , 48 ) = 6 . Произведем деление обеих частей исходного квадратного уравнения на 6 и получим равносильное ему квадратное уравнение 2 · x 2 − 7 · x + 8 = 0 .

Умножением обеих частей квадратного уравнения обычно избавляются от дробных коэффициентов. При этом умножают на наименьшее общее кратное знаменателей его коэффициентов. К примеру, если каждую часть квадратного уравнения 1 6 · x 2 + 2 3 · x — 3 = 0 перемножить с НОК ( 6 , 3 , 1 ) = 6 , то оно станет записано в более простом виде x 2 + 4 · x − 18 = 0 .

Напоследок отметим, что почти всегда избавляются от минуса при первом коэффициенте квадратного уравнения, изменяя знаки каждого члена уравнения, что достигается путем умножения (или деления) обеих частей на − 1 . К примеру, от квадратного уравнения − 2 · x 2 − 3 · x + 7 = 0 можно перейти к упрощенной его версии 2 · x 2 + 3 · x − 7 = 0 .

Связь между корнями и коэффициентами

Уже известная нам формула корней квадратных уравнений x = — b ± D 2 · a выражает корни уравнения через его числовые коэффициенты. Опираясь на данную формулу, мы имеем возможность задать другие зависимости между корнями и коэффициентами.

Самыми известными и применимыми являются формулы теоремы Виета:

x 1 + x 2 = — b a и x 2 = c a .

В частности, для приведенного квадратного уравнения сумма корней есть второй коэффициент с противоположным знаком, а произведение корней равно свободному члену. К примеру, по виду квадратного уравнения 3 · x 2 − 7 · x + 22 = 0 возможно сразу определить, что сумма его корней равна 7 3 , а произведение корней — 22 3 .

Также можно найти ряд прочих связей между корнями и коэффициентами квадратного уравнения. Например, сумма квадратов корней квадратного уравнения может быть выражена через коэффициенты:

x 1 2 + x 2 2 = ( x 1 + x 2 ) 2 — 2 · x 1 · x 2 = — b a 2 — 2 · c a = b 2 a 2 — 2 · c a = b 2 — 2 · a · c a 2 .


источники:

http://nicknixer.ru/programmirovanie/programma-dlya-resheniya-kvadratnyx-uravnenij-na-c/

http://zaochnik.com/spravochnik/matematika/systems/reshenie-kvadratnyh-uravnenij/